Удаление метаданных PDF с помощью Java

Как удалить метаданные в PDF с помощью Java?

будет ли IText делать или любые другие фреймворки имеют возможность делать это? Я не нашел примеров или классов, которые будут удалять метаданные с помощью IText. Если кто-нибудь делал это раньше или какие-то идеи?

пожалуйста, поделитесь своим мнением.

спасибо заранее.

2 ответов


сначала вам нужно дифференцировать, так как в PDF есть два типа метаданных:

  1. метаданные XMP
  2. 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.