如何利用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