我正在尝试删除iText 7中的所有XMP MetaData。它看起来应该删除,但当我写回它时,所有旧数据仍然在那里。我试过这个:
var pdfDoc = new PdfDocument(new PdfReader("document.pdf"), new PdfWriter("document-new.pdf"));
pdfDoc.SetXmpMetadata(XMPMetaFactory.Create());
pdfDoc.Close();我们只想确保所有可能的元数据都被删除,因为这些元数据是用于论文的,我们不想让审稿人知道谁的论文隐藏了一些元数据。
谢谢
发布于 2018-06-11 21:42:42
我的回答是远离电脑。我不确定这是不是缓存问题,但我在周末重新启动了我的计算机,用同样的代码打开Visual Studio,它开始工作了。是啊,为了周末!
发布于 2018-06-11 02:48:58
首先,我想提到的是,在PDF文件中隐藏信息的方法有很多,而且您不能保证通过删除元数据就可以删除所有的痕迹。然而,这确实是一个必要的预防措施。
元数据不随代码一起删除的原因是,关于作者、标题和类似内容的信息可以存储在元数据中,也可以存储在所谓的Info dictionary中。此外,info字典和元数据中的信息应该保持同步-这是iText为您处理的。
因此,为了确保删除作者、标题等信息,也要从信息字典中删除这些信息(我在这里使用的是N/A,如果愿意,您可以使用空字符串):
pdfDocument.getDocumentInfo().setAuthor("N/A");
pdfDocument.getDocumentInfo().setCreator("N/A");
pdfDocument.getDocumentInfo().setKeywords("N/A");
pdfDocument.getDocumentInfo().setSubject("N/A");
pdfDocument.getDocumentInfo().setTitle("N/A");
pdfDocument.setXmpMetadata(XMPMetaFactory.create());https://stackoverflow.com/questions/50768263
复制相似问题