doc:appunti:prog:pdf
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:appunti:prog:pdf [2016/09/07 17:09] – [Creazione dei bookmark (indice)] niccolo | doc:appunti:prog:pdf [2024/08/19 12:30] (current) – [Rasterizzazione di un PDF] niccolo | ||
|---|---|---|---|
| Line 51: | Line 51: | ||
| < | < | ||
| - | convert -density 150 -quality 100 input.pdf output.jpg | + | convert |
| </ | </ | ||
| + | |||
| + | per rimuovere eventuali trasparenze e sostituirle con uno sfondo bianco e per forzare l' | ||
| + | |||
| + | < | ||
| + | convert -units pixelsperinch -density 300 \ | ||
| + | -background white -alpha remove -define png: | ||
| + | input.pdf output.png | ||
| + | </ | ||
| + | |||
| + | Potrebbe capitare l' | ||
| + | |||
| + | < | ||
| + | convert: attempt to perform an operation not allowed by the security | ||
| + | policy `PDF' @ error/ | ||
| + | </ | ||
| + | |||
| + | In tal caso è necessario rimuovere queste righe dal file **/ | ||
| + | |||
| + | < | ||
| + | <!-- disable ghostscript format types --> | ||
| + | <policy domain=" | ||
| + | <policy domain=" | ||
| + | <policy domain=" | ||
| + | <policy domain=" | ||
| + | <policy domain=" | ||
| + | <policy domain=" | ||
| + | </ | ||
| + | |||
| ===== Estrazione di alcune pagine ===== | ===== Estrazione di alcune pagine ===== | ||
| Line 60: | Line 88: | ||
| pdftk A=document.pdf cat A6-14 output document_p6-14.pdf | pdftk A=document.pdf cat A6-14 output document_p6-14.pdf | ||
| </ | </ | ||
| + | |||
| + | È possibile estrarre intervalli diversi con una sola riga di comando indicandoli in successione, | ||
| + | |||
| ===== Unione di più documenti ===== | ===== Unione di più documenti ===== | ||
| - | Il comando **'' | + | Si utilizza il **'' |
| + | |||
| + | < | ||
| + | pdftk " | ||
| + | </ | ||
| + | |||
| + | Un sistema più lento, ma più efficiente (impiega più tempo, ma può produrre documenti PDF più piccoli) è utilizzare direttamente **gs**: | ||
| + | |||
| + | < | ||
| + | gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=output.pdf doc1.pdf doc2.pdf ... | ||
| + | </ | ||
| + | |||
| + | In alternativa esiste il comando **'' | ||
| < | < | ||
| Line 69: | Line 112: | ||
| </ | </ | ||
| - | oppure si utilizza | + | ATTENZIONE: Il comando pdfunite (almeno con Debian 11 Bullseye) produce un PDF con problemi, per cui risulta impossibile **manipolare i metadati**. Ad esempio utilizzando |
| < | < | ||
| - | pdftk " | + | pdftk Error in UpdateInfo(): |
| + | Warning: no Info added to output | ||
| </ | </ | ||
| + | |||
| + | Anche il tool **exiftool** ha problemi a modificare i metadati su un file prodotto da **pdfunite**: | ||
| + | |||
| + | < | ||
| + | exiftool -Title=" | ||
| + | Error: Objects in xref table (367) exceed trailer dictionary Size (358) - united-pdfunite.pdf | ||
| + | 0 image files updated | ||
| + | 1 files weren' | ||
| + | </ | ||
| + | |||
| ===== Conversione di raster in PDF ===== | ===== Conversione di raster in PDF ===== | ||
| Line 85: | Line 139: | ||
| pdfjam --outfile document-a4.pdf --paper a4paper document.pdf | pdfjam --outfile document-a4.pdf --paper a4paper document.pdf | ||
| </ | </ | ||
| + | |||
| + | È possibile specificare le dimensioni esatte della pagina, ad esempio in punti tipografici: | ||
| + | |||
| + | < | ||
| + | pdfjam --papersize ' | ||
| + | </ | ||
| + | |||
| + | ===== Raggruppare pagine pari e dispari ===== | ||
| + | |||
| + | È possibile reimpaginare un documento in modo che una singola pagina contenga due o più pagine dell' | ||
| + | |||
| + | < | ||
| + | pdfjam --nup 2x1 --landscape --outfile facing-pages.pdf document.pdf | ||
| + | </ | ||
| + | |||
| + | ===== Dividere le pagine in due o più pagine ===== | ||
| + | |||
| + | Esempio: un documento contiene le pagine pari e dispari affiancate in una singola pagina e si desidera separarle. Si utilizza il comando **mutool** contenuto nel pacchetto Debian **mupdf-tools**: | ||
| + | |||
| + | < | ||
| + | mutool poster -x 2 doc-facing-pages.pdf output.pdf | ||
| + | </ | ||
| + | |||
| + | **ATTENZIONE**: | ||
| + | |||
| + | < | ||
| + | gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=output.pdf \ | ||
| + | -dDetectDuplicateImages=true document.pdf | ||
| + | </ | ||
| + | |||
| + | **ATTENZIONE**: | ||
| ===== Creazione dei bookmark (indice) ===== | ===== Creazione dei bookmark (indice) ===== | ||
| Line 91: | Line 176: | ||
| < | < | ||
| - | pdftk document.pdf dump_data output | + | pdftk document.pdf dump_data output |
| </ | </ | ||
| - | nel file **pdf_data.txt** che viene generato è possibile aggiungere sezioni del tipo: | + | nel file **metadata.txt** che viene generato è possibile aggiungere sezioni del tipo: |
| < | < | ||
| Line 106: | Line 191: | ||
| < | < | ||
| - | pdftk document.pdf update_info | + | pdftk document.pdf update_info |
| </ | </ | ||
| + | |||
| + | ===== Conversione da epub a PDF per smartphone ===== | ||
| + | |||
| + | Il formato epub è sicuramente più flessibile perché si adatta automaticamente alle dimensioni dello schermo del viewer, ecc., ma non tutti hanno un visualizzatore epub sul telefonino, mentre un visualizzatore PDF è molto più comune. | ||
| + | |||
| + | Ecco quindi come convertire nel formato PDF ingrandendo il testo in modo che sia leggibile in modalità pagina intera senza dover effettuare zoom. Inoltre la dimensione della pagina è stata impostata con un rapporto larghezza: | ||
| + | |||
| + | < | ||
| + | ebook-convert input_file.epub output_file.pdf --unit point --custom-size 594x992 --base-font-size 19 | ||
| + | </ | ||
| + | |||
| + | Il comando **ebook-convert** viene installato con il pacchetto Debian **calibre**. | ||
| + | |||
| + | ===== Creazione PDF da pagine SVG ===== | ||
| + | |||
| + | Se si dispone di diverse pagine in formato SVG è possibile creare un unico PDF utilizzando il tool rsvg-convert (dal pacchetto Debian **librsvg2-bin**). Questa la riga di comando: | ||
| + | |||
| + | < | ||
| + | rsvg-convert --format pdf --keep-aspect-ratio --output output.pdf page*.svgz | ||
| + | </ | ||
| + | |||
doc/appunti/prog/pdf.1473260962.txt.gz · Last modified: by niccolo
