PDFsharp合并PDF时版本号无效报错问题求助
问题解决:PDFsharp合并PDF时版本号无效报错
错误原因
你替换的现成PDF版本高于当前PDFsharp支持的最高版本(PDF 1.4,对应数值14),比如PDF 1.5对应数值15,而旧版PDFsharp的PdfDocument.Version属性只允许设置12、13、14这三个值,所以执行outputPDFDocument.Version = HowToPayPdf.Version;时触发参数错误,导致合并失败。
解决方案
方案1:直接移除版本设置语句(最快捷)
不需要强制将目标文档版本和源PDF保持一致,PDFsharp会自动处理兼容的页面内容,直接删除那行版本赋值代码即可正常合并:
try { Byte[] howToPay = File.ReadAllBytes(Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, howToPayPath)); PdfDocument HowToPayPdf = PdfReader.Open(new MemoryStream(howToPay), PdfDocumentOpenMode.Import); // 移除引发错误的版本设置代码 // outputPDFDocument.Version = HowToPayPdf.Version; foreach (PdfPage page in HowToPayPdf.Pages) { outputPDFDocument.AddPage(page); } } catch (Exception ex) { log.ErrorFormat("GenerateInvoice() Add How To Pay - Error : {0}", ex.Message); }
方案2:升级PDFsharp版本
如果必须保留PDF版本兼容性,可以升级到PDFsharp 1.5或更高版本,这些版本支持PDF 1.5及以上的版本号设置,能直接处理高版本PDF的合并。
方案3:转换现成PDF版本
将新替换的现成PDF用工具转存为PDF 1.4或更低版本,再进行合并操作。
内容的提问来源于stack exchange,提问作者christian siagian
相关产品推荐
相关产品推荐

