Ok, ecco un modo frettoloso e approssimativo di fare tre lavori contemporaneamente:
- unire i 400 file PDF a pagina singola.
- Creare un documento di livello superiore ToC (Table of Contents).
- Creare un segnalibro PDF per ogni pagina.
Comprende l'installazione di LaTeX.
Si inizia con un modello di LaTeX vuoto come la seguente:
\documentclass[]{article}
\usepackage{pdfpages}
\usepackage{hyperref}
\hypersetup{breaklinks=true,
bookmarks=true,
pdfauthor={},
pdftitle={},
colorlinks=true,
citecolor=blue,
urlcolor=blue,
linkcolor=magenta,
pdfborder={0 0 0}}
\begin{document}
{
\hypersetup{linkcolor=black}
\setcounter{tocdepth}{3}
% Comment next line in or out if you want a ToC or not:
\tableofcontents
}
%% Here goes your additional code:
%% 1 line per included PDF!
\end{document}
Ora appena prima l'ultima linea di questo modello, si inserisce una riga per file PDF esterno che si desidera includere.
Nel caso in cui si desidera generare un indice, deve essere formattato in questo modo:
\includepdf[pages={<pagenumber>},addtotoc{<pagenumber>,<section>,<level>,\
<heading>,<label>}]{pdffilename.pdf}
Nel caso in cui si è certi che tutti e ciascuno compreso PDF è un documento di 1 pagina, semplifica a questo:
\includepdf[addtotoc{<pagenumber>,<section>,<level>,\
<heading>,<label>}]]{pdffilename.pdf}
Qui tutto dei seguenti cinque parametri per addtotoc
, nell'ordine in cui i file vengono visualizzati nei segnalibri e nel ToC. Vedere più sotto per un esempio specifico:
<pagenumber>
: numero della pagina del documento inserito per essere collegati a. (Nel tuo caso sempre "1", perché inserisci solo documenti di una sola pagina, però puoi inserire un documento di 5 pagine e collegarti alla pagina 3 del PDF inserito).
<section>
: il nome di sezione LaTeX. Potrebbe essere section
, subsection
, subsubsection
... Nel tuo caso "sezione".
<level>
: il livello della sezione LaTeX. Nel tuo caso "1".
<heading>
: Questa è una stringa. Utilizzato per il testo del segnalibro
<label>
: deve essere univoco per ciascun segnalibro. Utilizzato nel PDF internamente per saltare alla pagina corretta quando si fa clic sul segnalibro.
Per verificare questa fretta, ho usato Ghostscript per generare 20 documenti PDF di 1 pagina:
for i in {1..20}; do
gs -o p${i}.pdf -sDEVICE=pdfwrite \
-c "/Helvetica findfont 30 scalefont setfont \
100 600 moveto \
(Page ${i}) show \
showpage";
done
Con questi file di test ho potuto fare le linee per inserire nel look modello di come questi:
\includepdf[addtotoc={1,section,1,Page 1 (First),p1}]{p1.pdf}
\includepdf[addtotoc={1,section,1,Page 2,p2}]{p2.pdf}
\includepdf[addtotoc={1,section,1,Page 3,p3}]{p3.pdf}
[...]
\includepdf[addtotoc={1,section,1,Page 11 (In the Middle),p11}]{p11.pdf}
[...]
\includepdf[addtotoc={1,section,1,Page 20 (Last),p20}]{p20.pdf}
Salvare il modello con le linee inserite, quindi eseguire il seguente comando due volte:
pdflatex template.tex
pdflatex template.tex
Il file risultante avrà i segnalibri, guardando come questo in Preview.app:
Nota: LaTeX è disponibile per OSX attraverso due metodi:
io aggiungo uno o due altri metodi per inserire i segnalibri sulla riga di comando troppo tardi o nei prossimi giorni, se ho più tempo.
Per ora questo si deve fare, perché non ho mai mostrato qui su SO, AFAICR.
Ma ho pensato, perché hai dato lo sfondo "Sto Merging PDF 1 pagine, ed è lento, ora voglio aggiungere segnalibri troppo ...", ho potuto mostrare come farlo con un solo metodo.
SUGGERIMENTO: Uno degli altri metodi sarà quello di utilizzare pdftk
che IS disponibile per Mac OS X!
Non sono sicuro se si dispone del codice per produrre un PDF o solo il file PDF stesso. Se il primo, avremmo bisogno di molti più dettagli. – Roland
Grazie a @Roland, ho aggiunto le informazioni sul tomo. – drmariod
[pdftk] (https://www.pdflabs.com/docs/pdftk-version-history/) può aggiornare/inserire segnalibri. Inoltre, ecco una discussione potenzialmente utile su [stats.SO] (http://unix.stackexchange.com/questions/17065/add-and-edit-bookmarks-to-pdf) – hrbrmstr