gera um índice com hiperlink e insere em PDF existente

11

Eu tenho um PDF existente (sem qualquer arquivo de origem correspondente) e um arquivo de texto que é uma lista de itens que fazem referência a seções dentro do arquivo PDF, juntamente com um número de página para cada item. Eu gostaria de gerar um novo PDF que começa com um índice de tabela de conteúdos gerado, seguido pelo conteúdo do PDF original. O índice gerado precisa ser hyperlinkado para que clicar em qualquer item pule automaticamente para a página que contém a seção referenciada.

Estou procurando um conjunto adequado de ferramentas (preferencialmente orientado a CLI) para realizar isso no Linux; Todas as ferramentas que eu vi até agora não parecem oferecer uma solução. Eu sou um programador experiente, e estou mais do que feliz em escrever código, se necessário (de preferência em Ruby / Python / Perl / shell) para analisar meu arquivo de texto e convertê-lo em um índice de hiperlink, mas não consigo encontrar as ferramentas certas para resolvê-lo. Eu acho que parte do problema é que os hiperlinks precisam apontar para dentro do mesmo arquivo, mas seus alvos não existirão até mais tarde, quando o ToC for associado ao PDF original.

Também estou familiarizado com várias linguagens de marcação, por exemplo, Markdown, reStructuredText, TeX, LaTeX, org-mode e uma solução ideal usariam um deles como uma etapa intermediária para gerar o ToC com hiperlink.

    
por Adam Spiers 26.10.2013 / 15:30

1 resposta

7

Isso foi tirado na íntegra de @Herbert, respondendo a uma pergunta muito semelhante no TeX StackExchange:

Adicionando o sumário ao PDF existente

use o pacote pdfpages e, em seguida:

\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}
    
por 13.04.2017 / 14:34