สร้างสารบัญเชื่อมโยงหลายมิติและแทรกลงใน PDF ที่มีอยู่


11

ฉันมี PDF ที่มีอยู่ (ไม่มีไฟล์ต้นฉบับที่สอดคล้องกัน) และไฟล์ข้อความซึ่งเป็นรายการของส่วนที่อ้างอิงในไฟล์ PDF พร้อมกับหมายเลขหน้าสำหรับแต่ละรายการ ฉันต้องการสร้าง PDF ใหม่ซึ่งเริ่มต้นด้วยสารบัญที่สร้างขึ้นตามด้วยเนื้อหาของ PDF ต้นฉบับ ดัชนีที่สร้างขึ้นจะต้องมีการเชื่อมโยงหลายมิติเพื่อให้การคลิกที่รายการใด ๆ จะข้ามไปยังหน้าที่มีส่วนอ้างอิงโดยอัตโนมัติ

ฉันกำลังมองหาชุดเครื่องมือที่เหมาะสม (โดยเฉพาะอย่างยิ่ง CLI-oriented) เพื่อให้บรรลุสิ่งนี้บน Linux; เครื่องมือทั้งหมดที่ฉันเคยดูมาดูเหมือนจะไม่ได้มีทางออก ฉันเป็นโปรแกรมเมอร์ที่มีประสบการณ์และมีความสุขมากกว่าที่จะเขียนโค้ดหากจำเป็น (โดยเฉพาะใน Ruby / Python / Perl / shell) เพื่อแยกวิเคราะห์ไฟล์ข้อความของฉันและแปลงเป็นดัชนีเชื่อมโยงหลายมิติ แต่ฉันไม่พบเครื่องมือที่เหมาะสม เพื่อแก้ปัญหา ฉันคิดว่าส่วนหนึ่งของปัญหาคือการเชื่อมโยงหลายมิติต้องชี้ไปที่ภายในไฟล์เดียวกัน แต่เป้าหมายของพวกเขาจะไม่ปรากฏจนกว่าภายหลังเมื่อ ToC เข้าร่วมกับ PDF ต้นฉบับ

ฉันยังคุ้นเคยกับภาษามาร์กอัปต่างๆเช่น Markdown, reStructuredText, TeX, LaTeX, โหมดองค์กรและทางออกที่ดีที่สุดที่จะใช้หนึ่งในนั้นเป็นขั้นตอนกลางในการสร้าง ToC ไฮเปอร์ลิงก์


6
ลองอ่านคำถามที่คล้ายกันนี้ได้ใน TeX StackExchange: การเพิ่มสารบัญลงใน PDF ที่มีอยู่
rickhg12hs

1
@ rickhg12hs - ทำไมไม่เขียนคำตอบนี้ขึ้นมา?
slm

เขียนคำตอบ หวังว่า @Terdon จะยกเลิกการทำเครื่องหมายว่าจะลบในไม่ช้า
rickhg12hs

ที่จริง @terdon ทำเครื่องหมายไว้เพื่อลบ บางทีเขาอาจยกเลิกการทำเครื่องหมาย
rickhg12hs

สะสมบน @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}

เมื่อคัดลอกคำตอบจากคนอื่น ๆ โปรดทำเครื่องหมายคำถามของคุณเป็นชุมชน wiki
Reinstate Monica - M. Schröder

@ MartinSchröderคุณคิดกฎนี้ที่ไหน
Michael Mrozek

@MichaelMrozek: มันเป็นมาตรฐานของ tex.se: ไม่ใช่คำตอบของคุณดังนั้นคุณไม่ควรได้รับเครดิต
Reinstate Monica - M. Schröder

กระท่อมกรรมสลายฉันขึ้น
rickhg12hs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.