NOTA 1: la risposta accettata è ancora per lo più corretta, ma presenta alcune lacune. Manca che molti file PDF non siano direttamente modificabili come testo. Anche quando lo sono, tale modifica a volte può danneggiare il PDF rendendolo illeggibile. Una soluzione che funzionerà sia per Unix che per Microsoft Windows è qpdf che può tradurre i file PDF in "QDF", un modulo modificabile dal testo che è ancora un file PDF valido. Il qpdf
pacchetto viene fornito con il fix-qdf
ricalcolo degli offset dopo che un file QDF è stato modificato per correggere eventuali danni.
NOTA 2: a disagio con gli editor di testo? Prova a utilizzare prima un editor GUI come jpdftweak . A volte gli editor PDF della GUI funzionano, nel qual caso, sì, il gioco è fatto. Tuttavia, quando falliscono, come è stato spesso il caso per me, puoi provare questa alternativa più solida. Ad ogni modo, per favore non votare in basso la mia risposta per essere meno elegante.
COME MODIFICARE I NUMERI DI PAGINA PDF usando Qpdf
Sommario:
qpdf -qdf foo.pdf foo.qdf
modifica foo.qdf
0 << >> % No label on first pages
6 << /S /D >> % Start numbering from 7th page.
fix-qdf foo.qdf >bar.qdf
- test bar.qdf
qpdf bar.qdf bar.pdf
Passaggi dettagliati
Passo 1.
Converti il documento nel formato QDF facilmente modificabile. Esegui qpdf dalla riga di comando in questo modo:
qpdf -qdf foo.pdf foo.qdf
Nota: se qpdf non è già installato, gli eseguibili di Microsoft Windows possono essere scaricati da https://github.com/qpdf/qpdf/releases sistemi Unix, come Ubuntu e Debian GNU / Linux, possono installarlo digitandoapt install qpdf
.
Passo 2.
Modifica il documento QDF usando un editor di testo come notepad ++, emacs o gedit. Cerca la parola /Catalog
e osserva le << parentesi angolari >> è all'interno. Nelle vicinanze, troverai l'attuale /PageLabels
( se presente ).
Aggiungeremo ogni sezione che dovrebbe essere numerata in modo diverso al /PageLabels
. Il formato è start-page
<< style
>>. Si noti che gli spazi bianchi non contano e che la prima pagina del documento è 0
. Se non diversamente specificato, una nuova sezione inizia sempre numerando le pagine da 1.
Esempi
Ecco un esempio completo dell'aspetto di PageLabels, con l'aggiunta di commenti:
/Type /Catalog
/PageLabels <<
/Nums [
0 % From the first page of the document,
<<
/S /r % ...use the lowercase roman numeral style.
>>
6 % From seventh page onward,
<<
/S /D % ...use ordinary digits (arabic numerals)
>>
]
>>
Se il file non ha PageLabels, aggiungerli dopo /Type /Catalog
. Ad esempio, si potrebbe cambiare,
1 0 obj
<<
…
/Type /Catalog
>>
endobj
in,
1 0 obj
<<
…
/Type /Catalog
/PageLabels
<< /Nums [
0 << >> % No label for cover
1 << /S /r >> % i, ii for index
3 << /S /D /St 15 >> % 15, 16, 17, ... for article
31 << /S /D /P (A-) >> % A-1, A-2, A-3... for appendix
]
>>
>>
endobj
OPZIONALE: A PARTIRE DA UN DIVERSO NUMERO CON /St
Ogni sezione riavvia la numerazione su 1, a meno che non venga indicato diversamente utilizzando /St
. Notare come nell'esempio sopra, la quarta pagina inizia alle 15.
OPZIONALE: USARE UNO STILE DIVERSO CON /S
L' /S
operatore accetta un argomento che ti consente di scegliere lo stile di numerazione,
- / Cifre D (1, 2, 3 ...)
- / R maiuscolo romano (I, II, III ...)
- / r minuscolo romano (i, ii, iii ...)
- / A alfabetico maiuscolo (A, B, C, ...., X, Y, Z, AA, AB, AC, ...)
- / a alfabetico minuscolo (a, b, c, ...., x, y, z, aa, ab, ac, ...)
Se si omette l' /S
operatore, quella sezione di pagine non avrà numerazione. Per esempio:
0 << >> % No label for cover
OPZIONALE: AGGIUNTA DI UN PREFISSO A OGNI PAGINA CON /P
Puoi mostrare qualsiasi stringa di testo prima del numero di pagina specificando una parola tra parentesi dopo /P
:
31
<<
/S /D
/P (A-) % label appendix pages A-1, A-2, A-3
>>
Se specifichi un prefisso senza uno stile ( /S
), otterrai pagine che contengono solo la parola senza alcun numero. Questo può essere utile, ad esempio, se desideri che una copertina abbia semplicemente l'etichetta "Copertina".
0 << /P (Cover) >> % No number, just "Cover"
Passaggio 3.
Esegui fix-qdf
per rendere le tue modifiche PDF valide e metti l'output in bar.qdf.
fix-qdf foo.qdf > bar.qdf
Passaggio 4.
Apri bar.qdf nel tuo programma di visualizzazione PDF e verifica che sia numerato correttamente.
Passaggio 5.
Converti il file QDF in un normale PDF, in questo modo:
qpdf bar.qdf bar.pdf
Ta da. Hai finito. Ora hai un documento con i numeri di pagina correttamente etichettati in bar.pdf.