从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和PDFProducer 在打开时更改为“我自己” Adobe Reader中的文件(文件,属性)。这就是我的期望
使用itext 2.1.7时, Application 属性不会更改,并且 PDFProducer 属性的文本“使用iText 2.1.7 by ...”进行了修改。
使用iText 5.4.5,应用程序属性已更改,但 PDFProducer 更新的行为与2.1.7中的相同
知道发生了什么,以及我能做些什么来解决这个问题?
感谢 克里斯蒂安