PDFTK: PDF-файлы, которые отображаются с открытой панелью закладок

595
Matt Murphy

Можно ли с помощью pdftk создать PDF-файл с закладками, который открывается с отображением закладок? Я был в состоянии установить это как опцию с различными инструментами GUI в течение многих лет (Ipro +, PDFDocs и т. Д.), Но я не смог найти документацию, которая указывает, что pdftk «знает» (так сказать), как установить этот флаг, и я не смог найти вероятное значение после сравнения дампов

pdftk input.pdf output_data output data.txt 

из файлов с закладками, которые отображаются по умолчанию против дампов тех, которые этого не делают.

2

2 ответа на вопрос

2
Pimp Juice IT

Можно ли с помощью pdftk создать PDF-файл с закладками, который открывается с отображением закладок?

Я провел небольшое исследование по этой теме и хотел составить ответ со ссылками.

  1. По словам этого парня из этого поста, утверждающего, что он pdftkсопровождающий, заявлено, что:

    При использовании pdftk для сборки нового PDF из страниц PDF или документов (с помощью операции cat) новый PDF не имеет настроек отображения. Таким образом, полученный PDF отображается с использованием значений по умолчанию, установленных в настройках вашего зрителя.

    источник

Поэтому я думаю, что это означает, что если вы создали новый PDF-документ, или создали новый PDF-документ с catоперациями, или начали с PDF-документа, в котором еще не было свойств этого начального представления метаданных, то PDFtk будет откройте в «представлении», которое настроено на открытие, однако программное обеспечение для просмотра PDF по умолчанию сообщает об этом. Если в документе нет метаданных, относящихся к представлению панели закладок, то, очевидно, он не сможет их использовать независимо.


  1. Согласно справочной странице PDFtk, есть две опции, которые связаны с метаданными и закладками, и еще одна инструкция, связанная с закладками.

    dump_data

    Считывает один входной файл PDF и сообщает его метаданные, закладки (контуры a / k / a), метрики страниц (медиа, ротация и метки) и другие данные в заданное имя выходного файла или (если выход не указан) в стандартный вывод. Не-ASCII символы кодируются как числовые объекты XML. Не создает новый PDF.

    update_info <info data filename | - | ПОДСКАЗКА>

    Изменяет закладки и метаданные в информационном словаре отдельного PDF-файла в соответствии с файлом входных данных. Файл входных данных использует тот же синтаксис, что и выходные данные из dump_data. Не-ASCII символы должны быть закодированы в виде числовых объектов XML. Это не меняет метаданные, хранящиеся в потоке XMP PDF, если они есть. Например:

    pdftk in.pdf update_info in.info output out.pdf 

    Если задан дескриптор PDF, но страницы не указаны, используется весь PDF. Если ни для одного из входных PDF-файлов не указаны страницы, закладки входных PDF-файлов также объединяются и включаются в выходные данные.

    источник

Поэтому я думаю, что это означает, что если у вас есть документ PDF с метаданными закладок, вам необходимо dump_dataсначала использовать эту опцию, чтобы экспортировать эти метаданные в плоский файл. Затем вы будете использовать плоский файл с этими метаданными с update_infoвозможностью поместить коррелированные метаданные из этого файла в создаваемый вами файл PDF и т. Д.

Кроме того, если catв операции PDFtk не указаны страницы (например, опция), то это звучит как весь документ PDF, и его коррелированные метаданные, включая настройки «просмотра» по умолчанию, будут объединены с выходным файлом.

0
carbontracking

У меня был тот же вопрос, прежде чем я увидел ваш. Проблема с dump_data и update_info заключается в том, что искомое свойство, которое является PageMode, не включено в выходные данные dump_data.

Если вы посмотрите мой вопрос https://unix.stackexchange.com/questions/398806/how-to-display-bookmarks-in-the-initial-view-when-opening-a-pdf-file/399144#399144 вы Вы увидите, что я использовал (evermap.com/autometadata.asp), чтобы предоставить промежуточное решение, а затем сравните измененные / оригинальные файлы, чтобы увидеть разницу.

По-прежнему нет чистого решения командной строки

С наилучшими пожеланиями / Colm

Похожие вопросы