Pie*_*let 17 c# pdfsharp ssrs-2008
我正在尝试将多个PDF组合成一个PDF.PDF来自SSRS,来自我处理的一些LocalReports.我正在使用PDFSharp,因为它已经在整个项目中使用.但是,outputDocument.addPage(page)方法抛出InvalidOperationException("无法更改文档.")异常.我尝试了许多不同的方法,但我无法让它工作......
这是我的方法,其中已经检查了所有输入:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
从我在网上看到的例子来看,这似乎是这样做的正确方法......我对合并我的PDF的其他建议持开放态度,但我宁愿不使用其他第三方库,比如ITextSharp,因为PDFSharp是已经在项目中使用过.
如果重要,我在Win7机器上使用VS2010 Pro.
编辑:从异常调用堆栈:
在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页)
在PdfSharp.Pdf.PdfPages.Add(PdfPage页)
在PdfSharp Something.saveFile的.Pdf.PdfDocument.AddPage(PdfPage页面)
(String fileName,Byte [] [] bytes)
问题是我吗?这不是应该这样做的方式吗?或者有没有其他方法将多个LocalReport组合成一个PDF?
Siw*_*hit 11
我不确定我的答案。请自行阅读。
private static void MergeMultiplePDFIntoSinglePDF(string outputFilePath, string[] pdfFiles)
{
Console.WriteLine("Merging started.....");
PdfDocument outputPDFDocument = new PdfDocument();
foreach (string pdfFile in pdfFiles)
{
PdfDocument inputPDFDocument = PdfReader.Open(pdfFile, PdfDocumentOpenMode.Import);
outputPDFDocument.Version = inputPDFDocument.Version;
foreach (PdfPage page in inputPDFDocument.Pages)
{
outputPDFDocument.AddPage(page);
}
}
outputPDFDocument.Save(outputFilePath);
Console.WriteLine("Merging Completed");
}
Run Code Online (Sandbox Code Playgroud)
我开始相信它可能是PDFSharp损坏或不可读的输入PDF.有几个SSRS PDF的例子不能被PDF库或甚至Adobe的Reader读取.例如这里:
... 和这里:
...最重要的是在PDFSharp论坛上:
http://forum.pdfsharp.net/viewtopic.php?f=2&t=674
我不知道这是否是您遇到的错误 - 消息很奇怪 - 但是当您考虑到您的代码示例与我尝试的任何PDF完美无瑕时,它似乎可能与此有关.虽然我没有尝试任何SQL Server报告
| 归档时间: |
|
| 查看次数: |
21779 次 |
| 最近记录: |