多个PDF我尝试多个PDF合并成单一的PDF。 PDFs来自SSRS,来自我处理的一些LocalReports。我正在使用PDFSharp,因为它已在整个项目中使用。但是,outputDocument.addPage(page)方法会引发InvalidOperationException(“无法更改文档”)异常。我试图做的许多不同的方式,但我不能得到它的工作...结合使用PDFSharp
这里我的方法,所有的投入都已经被检查:
private static void saveFile(string fileName, params byte[][] bytes)
{
try
{
PdfDocument outputDocument = new PdfDocument();
for (int i = 0; i < bytes.Length; i++)
{
using (MemoryStream stream = new MemoryStream(bytes[i]))
{
PdfDocument inputDocument = PdfReader.Open(stream, PdfDocumentOpenMode.Import);
foreach (PdfPage page in inputDocument.Pages)
{
outputDocument.AddPage(page); //throws the exception !!!
}
}
}
outputDocument.Save(fileName);
}
catch (Exception ex)
{
throw new Exception("Erreur lors de l'enregistrement du fichier", ex);
}
}
从我的例子看到在网络上,这似乎是这样做的正确的方式... 我打开其他建议合并我的PDF文件,但我宁可不使用其他第三方的lib,就像iTextSharp的,因为PDFSharp在已经使用该项目。
如果它的事项,我使用的是Win7的机器上VS2010专业版。
编辑:
在PdfSharp.Pdf.PdfObject.set_Document(PdfDocument值)
在PdfSharp.Pdf.PdfObject.ImportClosure(PdfImportedObjectTable importedObjectTable,PdfDocument所有者,PdfObject externalObject)
:从异常调用堆栈在PdfSharp.Pdf.PdfPages.CloneElement(PdfPage页,PdfPage importPage,串键,布尔deepcopy的)
在PdfSharp.Pdf.PdfPages.ImportExternalPage(PdfPage importPage)
在PdfSharp.Pdf.PdfPages.Insert(的Int32指数,PdfPage页)
a吨PdfSharp.Pdf.PdfPages.Add(PdfPage页)
在PdfSharp.Pdf.PdfDocument.AddPage(PdfPage页)
在Something.saveFile(字符串文件名,字节[] []字节)
问题是可我 ?这是不是应该这样做? 或者是否有其他方式将多个LocalReport合并到一个PDF中?
出现InvalidOperationException – 2011-02-14 18:44:35
能否请您提供从Exception调用堆栈? – asgerhallas 2011-02-14 18:58:47