створити вміст гіперпосилання з вмістом та вставити у існуючий PDF


11

У мене є існуючий PDF (без відповідного вихідного файлу) та текстовий файл, який є переліком елементів, що посилаються на розділи в PDF-файлі, а також номер сторінки для кожного елемента. Я хотів би створити новий PDF-файл, який починається з генерованого індексу змісту, а потім вмісту оригінального PDF. Згенерований індекс потрібно гіперпосилати, щоб натискання на будь-який елемент автоматично перейшло на сторінку, що містить посилання, на який посилається.

Я шукаю відповідний набір інструментів (бажано, орієнтованих на CLI) для досягнення цього в Linux; всі інструменти, які я переглянув до цього часу, схоже, не пропонують рішення. Я досвідчений програміст, і більше ніж радий написати код, якщо потрібно (бажано в Ruby / Python / Perl / shell), щоб розібрати мій текстовий файл і перетворити його в гіперпосилання, але я не можу знайти потрібні інструменти щоб вирішити це. Я думаю, що частина проблеми полягає в тому, що гіперпосилання повинні вказувати на один і той же файл, але їх цілі існуватимуть лише пізніше, коли ToC приєднається до оригінального PDF.

Я також знайомий з різними мовами розмітки, наприклад, Markdown, reStructuredText, TeX, LaTeX, org-mode, і ідеальне рішення використовуватиме одну з них як проміжний крок для створення гіперпосилання ToC.


6
Ознайомтеся з цим подібним запитанням на TeX StackExchange: Додавання змісту до існуючого PDF
rickhg12hs

1
@ rickhg12hs - чому б не написати це як відповідь тут?
slm

Відповідь письмова. Сподіваємось, @Terdon скоро відмітить його для видалення.
rickhg12hs

Насправді @terdon позначив це для видалення. Можливо, він може
відмітити

Підписався на @terdon. Відповідь повторена нижче.
rickhg12hs

Відповіді:


7

Це в цілому взято з @Herbert, відповідаючи на дуже схоже запитання щодо TeX StackExchange:

Додавання змісту до існуючого PDF

використовувати пакет, pdfpagesа потім:

\documentclass{article}
\usepackage{pdfpages}
\usepackage{hyperref}

\begin{document}

\tableofcontents
\clearpage\phantomsection
\addcontentsline{toc}{section}{The first section name}% or chapter
\includepdf[pages={1-10},linktodoc,linktodocfit=/Fit]{texte/dtk/dtk11-1/komoedie.pdf}
\clearpage\phantomsection
\addcontentsline{toc}{section}{The second section name}% or chapter
\includepdf[pages={11-19},linktodoc,linktodocfit=/Fit]{texte/dtk/dtk11-1/komoedie.pdf}
\clearpage\phantomsection
\addcontentsline{toc}{section}{The third section name}% or chapter
\includepdf[pages={20-29},linktodoc,linktodocfit=/Fit]{texte/dtk/dtk11-1/komoedie.pdf}
\clearpage\phantomsection
\addcontentsline{toc}{section}{The forth section name}% or chapter
\includepdf[pages={21-39},linktodoc,linktodocfit=/Fit]{texte/dtk/dtk11-1/komoedie.pdf}

\end{document}

Коли ви копіюєте відповіді від інших, будь ласка, позначте своє запитання як вікі спільноти .
Відновити Моніку - М. Шредер

@ MartinSchröder Де ви придумали це правило?
Михайло Мрозек

@MichaelMrozek: Це стандартно для tex.se: це не ваша відповідь, тому ви не повинні отримувати кредит.
Відновити Моніку - М. Шредер

Карма Карма зламала мене.
rickhg12hs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.