相关疑难解决方法(0)

打开PDF文件时,"PDFsharp无法处理随Acrobat 6引入的PDF功能"错误

我使用PDFsharp(v1.32)合并多个PDF文件.我使用以下代码打开文档:

PdfDocument inputDocument = PdfReader.Open(pdfFilePath, PdfDocumentOpenMode.Import);
Run Code Online (Sandbox Code Playgroud)

在打开一个文档(PDF版本1.5(Acrobat 6.x))时,我收到一个例外:

PdfSharp.dll中发生未处理的"PdfSharp.Pdf.IO.PdfReaderException"类型的异常附加信息:无法处理iref流.PDFsharp的当前实现无法处理Acrobat 6中引入的此PDF功能.

我该怎么办?我需要合并所有文件,我不能跳过它.我试图找到解决方案,但发现没有回答,或者只是来自PDFsharp团队的非常老的反馈意见,他们将"修复它".

.net c# pdf pdfsharp

17
推荐指数
2
解决办法
2万
查看次数

无法使用MemoryStream合并2个PDF

我有一个ac#类,它接受HTML并使用wkhtmltopdf将其转换为PDF。
正如您将在下面看到的,我正在生成3个PDF-横向,纵向和两者结合。

properties对象包含html作为字符串,以及landscape / portrait的参数。

System.IO.MemoryStream PDF = new WkHtmlToPdfConverter().GetPdfStream(properties);
System.IO.FileStream file = new System.IO.FileStream("abc_landscape.pdf", System.IO.FileMode.Create);
PDF.Position = 0;

properties.IsHorizontalOrientation = false;
System.IO.MemoryStream PDF_portrait = new WkHtmlToPdfConverter().GetPdfStream(properties);
System.IO.FileStream file_portrait = new System.IO.FileStream("abc_portrait.pdf", System.IO.FileMode.Create);
PDF_portrait.Position = 0;

System.IO.MemoryStream finalStream = new System.IO.MemoryStream();
PDF.CopyTo(finalStream);
PDF_portrait.CopyTo(finalStream);
System.IO.FileStream file_combined = new System.IO.FileStream("abc_combined.pdf", System.IO.FileMode.Create);

try
{
    PDF.WriteTo(file);
    PDF.Flush();

    PDF_portrait.WriteTo(file_portrait);
    PDF_portrait.Flush();

    finalStream.WriteTo(file_combined);
    finalStream.Flush();
}
catch (Exception)
{
    throw;
}
finally
{
    PDF.Close();
    file.Close();

    PDF_portrait.Close();
    file_portrait.Close();

    finalStream.Close();
    file_combined.Close();
}
Run Code Online (Sandbox Code Playgroud)

PDF“ abc_landscape.pdf”和“ abc_portrait.pdf”如预期那样正确生成,但是当我尝试将两者合并为第三个pdf(abc_combined.pdf)时,该操作失败。

我正在MemoryStream执行合并,在调试时,我可以看到 …

c# wkhtmltopdf

12
推荐指数
3
解决办法
285
查看次数

标签 统计

c# ×2

.net ×1

pdf ×1

pdfsharp ×1

wkhtmltopdf ×1