有谁知道如何使用iTextSharp以编程方式将PDF保存为较低的PDF版本,以便您可以使用某些要求PDF版本为5或更低的iTextSharp功能?
我正在尝试将两个PDF版本7文档合并在一起,但它坚持要求它们是版本5或更低版本。
发布于 2011-06-09 01:14:00
太奇怪了。PDF版本主要是一种建议。PDF必须以以下内容开头:
%PDF-1.x其中X是0,1,2,...
这只是阅读PDF的应用程序的一个线索。唯一的线索。我从不同的客户那里看到的大多数“我需要X版本”的请求都是假的。我的iText程序员同事知道这一点,所以iText要求一个不同的版本让我感到奇怪。
您确定这是iText请求v5吗?
无论如何,回答你的问题:
可以,iText可以更改版本号。遗憾的是,它只能在写出PDF时完成,而不能在读入时完成。您必须打开PDF,更改其版本,然后再次保存。
你可能会作弊。将PDF读取到字节数组和pdfBytes[7] = 4;中,然后将这些字节传递给PdfReader。
PDF规范的版本1是1.0,版本2是1.1 ...
所以如果你想要pdf版本5,你需要写成"1.4",而不是"1.5“。
如果你不习惯这样戳一个字节,你可以解析整个PDF,更改版本,然后再写出来:
PdfReader reader = new PdfReader(pdfPath);
PdfStamper stamper = new PdfStamper(reader, outputStream);
stamper.setPdfVersion(PdfWriter.PDF_VERSION_1_4);
stamper.close();然后你再读一遍,然后像以前一样组合起来。
发布于 2013-09-30 20:38:39
///for itextSharp 5.4.4
PdfReader reader = new PdfReader(pdfPath);
PdfStamper stamper = new PdfStamper(reader, outputStream);
stamper.Writer.setPdfVersion(PdfWriter.PDF_VERSION_1_4);
stamper.close(); 发布于 2013-05-04 00:12:01
看起来这已经不再有效了,至少对我来说它不起作用。然而,我发现了这一点,它对我很有效:http://itext-general.2136553.n4.nabble.com/iTextSharp-PDF-version-td3477631.html。
https://stackoverflow.com/questions/6273676
复制相似问题