从iText 2.1.3升级到iText 2.1.7时,我注意到行为发生了变化 . 输入的PDF文件来自Adobe Indesign,目标是将Application和PDFProducer属性更改为我想要的内容 .

下面是相关的代码:PdfStamper pdfStamper = null; PdfReader pdfReader = null;

pdfReader = new PdfReader(new RandomAccessFileOrArray(source), null);
        HashMap info = pdfReader.getInfo();

        info.put( "Producer", "Myself");
        info.put( "Creator", "Myself");

        OutputStream outputStream = new FileOutputStream(source+"stamped.pdf");

        pdfStamper = new PdfStamper(pdfReader, outputStream, '\0', true);  // append mode
        pdfStamper.close();
        pdfReader.close();

所以,之前,使用itext 2.1.3,在通过上面的代码运行pdf之后,我会看到 Application and PDFProducer 在Adobe Reader(文件,属性)中打开文件时更改为"Myself" . 这就是我的期望

使用itext 2.1.7, Application 属性不会更改, PDFProducer 属性附加了文本"modified using iText 2.1.7 by ..." .

使用iText 5.4.5, Application 属性已更改,但 PDFProducer 更新的行为与2.1.7中的相同

知道发生了什么,如果有什么我可以做的来解决这个问题?

谢谢Cristian