Удаление метаданных PDF с помощью Java
Как удалить метаданные в PDF с помощью Java?
будет ли IText делать или любые другие фреймворки имеют возможность делать это? Я не нашел примеров или классов, которые будут удалять метаданные с помощью IText. Если кто-нибудь делал это раньше или какие-то идеи?
пожалуйста, поделитесь своим мнением.
спасибо заранее.
2 ответов
сначала вам нужно дифференцировать, так как в PDF есть два типа метаданных:
- метаданные XMP
- DID (информационный словарь документов, старый способ)
первый вы удалите, как следующее:
PdfReader reader = stamper.getReader();
reader.getCatalog().remove(PdfName.METADATA);
reader.removeUnusedObjects();
2nd вы удалите, как sann3 упомянул:
HashMap<String, String> info = super.reader.getInfo();
info.put("Title", null);
info.put("Author", null);
info.put("Subject", null);
info.put("Keywords", null);
info.put("Creator", null);
info.put("Producer", null;
info.put("CreationDate", null);
info.put("ModDate", null);
info.put("Trapped", null);
stamper.setMoreInfo(info);
Если вы затем выполните поиск в PDF с помощью текстового редактора, вы не найдете словарь /INFO или метаданные XMP...
попробуйте этот код
PdfReader readInputPDF = new PdfReader("sample.pdf");
HashMap<String, String> hMap = readInputPDF.getInfo();
PdfStamper stamper = new PdfStamper(readInputPDF, new FileOutputStream("sample1.pdf"));
hMap.put("Author", null);
stamper.setMoreInfo(hMap);
stamper.close();
добавьте свойства метаданных на карту,которую вы хотите удалить из PDF.