如何使用iTextsharp设置PDF版本

本文关键字:PDF 版本 设置 iTextsharp 何使用 | 更新日期: 2023-09-27 17:58:36

我需要将pdf版本从1.5设置为1.4,但在iTextSharp的帮助下我无法做到这一点。这是我的代码

  char ch = '4';
        string pdfFile = @"C:'Users'p.kulkarni'Desktop'PDF_Files'OCR.pdf";
        using (PdfReader reader = new PdfReader(pdfFile))
        {
            using (PdfStamper stamper = new PdfStamper(reader, new FileStream(@"D:'KK_T.pdf", FileMode.Create),'4'))
            {
                stamper.FormFlattening = true;
                stamper.Writer.PdfVersion = '4';
                stamper.Writer.SetAtLeastPdfVersion('4');
                stamper.Writer.SetFullCompression();
                stamper.Writer.CompressionLevel = PdfStream.BEST_COMPRESSION;
                //stamper.CompressionLevel = PdfStream.BEST_COMPRESSION;
                stamper.SetFullCompression();
            }
        }

但我仍然取得了任何成功。你能帮我设置PDF版本吗?PDF版本不更改以上代码

这是我附上的PDF。。。演示PDF提前感谢koolprasad2003

如何使用iTextsharp设置PDF版本

请看一下我做的ChangeVersion示例:

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest), '4');
    stamper.close();
    reader.close();
}

在本例中,我创建了一个PdfReader和一个PdfStamper。在PdfStamper中,我告诉iText,我希望文件的版本更改为版本4。

一旦我合上结结巴巴,魔术就完成了。请检查文件other_version.pdf以说服自己这是有效的。

一个观察结果是:你的原始文件OCR.pdf有一个压缩的对照表。如果您在文本编辑器中打开此文件,并手动将版本号从1.6更改为1.4,Adobe Reader会告诉您该文件是1.5文件,因为PDF 1.4中不存在压缩的交叉引用表。它们是在PDF 1.5中介绍的。

在这种情况下,iText将解压缩交叉引用表,从而生成有效的1.4 PDF文件。但是:iText不会自动降级所有新功能。如果特定的PDF包含更新的功能(例如OCG),那么如果您将PDF版本更改为OCG引入之前的版本,iText将不会删除这些OCG。