如何利用iText

删除PDF信息地图的特定值

很容易使用iText获取这些信息的标题,作者一个PDF文件等:如何利用iText

Map<String, String> info = pdfReader.getInfo(); 

但我怎么删除和修改某些键/值的地图?

例如,info.remove("Title")没有办法。

回答:

我假设您在PdfStamper实例上使用setMoreInfo()方法。此方法循环使用您提供的Map的条目,并根据存储在Map中的密钥更改现有元数据。如果你删除了一个键,没有任何反应(这是你注意到的)。

诀窍删除条目,是设置进入null

PdfReader reader = new PdfReader(src); 

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));

Map<String, String> info = reader.getInfo();

info.put("Title", null);

stamper.setMoreInfo(info);

stamper.close();

reader.close();

你甚至都不需要检索从PdfReader原来的元数据;您可以创建一个new HashMap<String, String>()并为"Title"添加一个null条目;这将有同样的效果:

PdfReader reader = new PdfReader(src); 

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));

Map<String, String> info = new HashMap<String, String>();

info.put("Title", null);

stamper.setMoreInfo(info);

stamper.close();

reader.close();

正如你所看到的,使用空Map下手不会删除(除非你添加具有价值当然null一进入)任何元数据项。

以上是 如何利用iText 的全部内容, 来源链接: utcz.com/qa/257333.html

回到顶部