如何使用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
请看一下我做的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。