#java #pdf #pdfbox
#java #PDF #pdfbox
Вопрос:
Я хочу иметь возможность заменять закладки (содержимое) в документах PDF, таких как «1. Запустите » to «< 1. Пуск >» и сохраните замененный PDF в текстовых файлах.
Я использовал библиотеку pdfbox Java для завершения преобразования из PDF в txt. Затем я завершил извлечение закладок (содержимого) и сохранил все закладки со строкой, которая была успешно записана в текстовый файл. Но после того, как я преобразовал закладку (содержимое), я не смог успешно сохранить PDF, который преобразовал закладку.
// Used to save bookmark strings
private static String res = "";
// Recursive calls to get bookmark
private static void printBookmark(PDOutlineNode bookmark, int indentation) throws IOException {
PDOutlineItem current = bookmark.getFirstChild();
while (current != null) {
res = "<" indentation ">" current.getTitle() "n";
// Can I add some code here to change the bookmark of the loaded PDDocument?
// I tried to define temp_current, temp_bookmark to store the desired value and
// finally assign it to the PDDocument object, but it failed.
printBookmark(current, indentation 1);
current = current.getNextSibling();
}
}
Любые изменения в моих закладках не повлияли на файлы, которые я сохранил из PDF в txt.
Комментарии:
1. Вы имеете в виду оглавление на странице или закладки (контуры), которые Adobe показывает слева? Если позже, вы можете изменить их с помощью
PDOutlineItem.setTitle()
.2. Да, я попробовал «current.setTitle («<» отступ «>» current.getTitle() «\ n»)»с его изменениями; но я не знал, как сохранить изменения в pdf, поэтому я не смог преобразовать измененный PDF в TXT.
3. Я только что попробовал, и это работает, контуры изменены. Вам нужно сохранить файл с помощью document.save(). Но имейте в виду, что оглавление на странице не связано. Это просто текст. Это не изменится «автоматически». imgur.com/a/RvAxiRk
4. Большое вам спасибо. Позвольте мне сначала попробовать.
5. Как создать текстовый файл?