C# 如何使用iTextsharp设置PDF版本

C# 如何使用iTextsharp设置PDF版本,c#,pdf,itextsharp,C#,Pdf,Itextsharp,我需要将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 stam

我需要将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。。。 提前谢谢 koolprasad2003

请看一看我举的例子:

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

一旦我合上压模,魔术就完成了。请检查文件,让自己相信这是有效的

注意:原始文件有一个压缩的交叉引用表。如果您在文本编辑器中打开此文件,并手动将版本号从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。

SetFullCompression
表示您希望使用对象流和压缩的交叉引用表。这在PDF 1.4中不受支持。只有符合PDF 1.5的软件才能读取此类文件,因此,您实际上正在尝试执行一些操作,这些操作将破坏您的PDF文件中关于1.4 PDF参考的内容。我已尝试删除“SetFullCompression”,但它仍将其转换为1.5版本,但我想要1.4我还应该遵循哪些步骤来完成我的任务您在每个级别都删除了它吗<代码>stamper.Writer.SetFullCompression()以及
stamper.SetFullCompression()?基本上我需要将版本1.4设置为我的pdf,但我无法做到,您有任何代码示例吗?为了完成我的任务,您的示例应该可以工作(假设您删除了所有完整的压缩内容)。如果没有:向我们显示PDF。感谢您的帮助Bruno Lowagie,现在我可以用1.4版创建文件了,但是如何将其fastwebview属性设置为true,如何使用ItextSharp设置使PDF线性化ItextSharp不支持线性化(也称为fastwebview)。