Newsgroup: it.comp.os.linux.iniziare
Titolo: Estrarre pagine singole da un PDF

Ciao, ho un documento PDF con scansioni di circa 50 pagine. Ho l'esigenza 
di dover estrarre, senza perdita di qualità ed informazioni, tutte le 
pagine per poterle riordinare.  Ho provato PDFSam ma senza successo. 
Esiste un modo / programma per poterlo fare rapidamente?
Grazie.

 Ho provato PDFSam ma senza successo.
 
hai provato male, io lo faccio spesso (in ambiente windows)
 
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

 
 
...e comunque, puoi sempre stampare il PDF su un nuovo PDF, indicando la 
sequenza personalizzata delle pagine :)
 
non posso fornire garanzie sulla qualitą finale, perņ puoi controllare ed 
eventualmente modificare i parametri


pdftk e' il tuo amico ;-)
 
------> "cat" estrae pagine mantenendo la stessa qualita' dell'originale
pdftk filecompeto.pdf cat 5-12 output daPag5aPag12.pdf
-----> "burst" splitta tutte le singole pagine con contatore finale
pdftk filecompeto.pdf burst output paginaNro%02d.pdf
 
ha anche la funzione di risequenziare le pagine "burstate" ...
affidati al tuo motore di ricerca preferito con "pdftk"
 
credo che ci siano anche delle GUI, ma non le ho mai usate.


se vuoi la vita facile puoi andare qui
https://www.ilovepdf.com/it
 
la funzione "organizza pdf" dovrebbe fare al caso tuo
(not tested)


 hai provato male, io lo faccio spesso (in ambiente windows)
 
Ho fatto altre prove ma con Linux crea sempre un file unico delle pagine 
selezionate, utilizzo l'opzione dividi. A me servirebbero i singoli file. 
Non so se sbaglio io o è un limite della versione Linux.

 On 7/8/21 9:02 AM, Anony Mous wrote:
 
Purtroppo non mi sembra ci sia la versione per Linux.

 sequenza personalizzata delle pagine :)
 
Generalmente in questo modo si perde qualità, io l'ho fatto spesso
in passato per ridurre il peso di PDF ingombranti da mandare via
mail in casi in cui non serviva qualità, che di fatto a video il PDF
sembrava uguale e il degrado si vedeva solo ingrandendo parecchio
un certo dettaglio. D'altro canto il peso del file in quel modo
si riduceva davvero parecchio, tipo un file di 100 MB saltava fuori
di 10 MB o anche meno, pronto per allagarlo o caricarlo rapidamente
e condividerlo.
 
Nella fattipecie ho usato banalmente Okular.
- Apro il PDF
- Stampa su file
- e via
 
Poi per far prima alla fine mi ero buttatto giù un piccolo script
molto rudimentale ma funziona:
 
$ pdfshrink.sh -h
USAGE:
pdfshrink.sh input-large.pdf output-tiny.pdf
 
 
Che poi alla fine utilizza ghostscript nel modo seguente:
----------------------
gs -sDEVICE=pdfwrite \
	-dCompatibilityLevel=1.4 \
	-dPDFSETTINGS=/ebook \
	-dNOPAUSE \
	-dQUIET \
	-dBATCH \
	-sOutputFile="$2" "$1"
------------------------------
 
Il punto importante è l'opzione -dPDFSETTING con cui può essere
calibrata la qualità del risultato finale, nel mio caso ho scelto
ebook, ma mi pare si potesse scegliere anche qualcosa di più
spinto in modo da comprimere ancor più il file, perdendo ancora
più qualità ovviamente. Insomma si può adattare alle esigenze.
 
Vedere il file Use.htm della documentazione di ghostscript per
i dettagli, io lo ritrovo anche in locale sotto:
 
/usr/doc/ghostcript-eccecc
 
 
Tornando alla domanda dell'OP, stampare 50 pagine di pdf su
50 PDF a pagina singola è parecchio dispendioso, ci muori...
Per queste cose c'era:
 
pdftk
 
In rete si trovano un miliardo di esempi sul comando corretto
per creare N pdf a pagina singola da un PDF multipagina.
 
Anche ghostscript può produrre la stessa cosa, anche stampando
le N pagine del PDF originale su N immagini JPG volendo, ma
restando sul formato PDF:
 
gs -sDEVICE=pdfwrite -dSAFER -o outname.%d.pdf input.pdf
 
https://stackoverflow.com/questions/10228592/splitting-a-pdf-with-ghostscript
 
 
Il "trucco" sta in "%d" che numera i file in uscita col numero della
pagina. Si può poi modificare la numerazione diversamente, ad esempio
in modo che usi 3 cifre, 001, 002, ecc...
 
Con pdftk la cosa è molto simile, basta usare il comando "burst" e
specificare in output anche qui "%d".
 
pdftk foobar.pdf burst output foobar-%d.pdf
 
Si può fare anche lo script che fa tutto da solo da lanciare tipo:
 
splitpdf pippo.pdf
 
e genera N files del tipo pippo-1.pdf, pippo-2.pdf, ecc...
 
-----------
#!/bin/bash
pdftk $1 burst output $1-%d.pdf
-------------------------------
 
È da provare un attimo per escludere che faccia casini coi nomi dei
files contenenti spazi e mettere eventuali virgolette a protezione.
Genera file nominati male del tipo:
- pippo.pdf-1.pdf
- pippo.pdf-2.pdf
- ecc
 
Non è n grosso problema tanto più se devi poi riorganizzarle e
creare alla fine un nuovo pdf multipagina.
 
Per riassemblarle puoi utilizzare di nuovo pdftk e fare il merge
dei singoli files.
 
Con pdftk, volendo puoi fare tutto anche in una botta sola, cioè
prendi dall'originale le pagine che ti servono e le riassembli
direttamente riordinate come vuoi usando un unico comando di pdftk.
Del tipo, voglio che le pagine da 3 a pagina 10 vengano spostate
dopo pagina 22... Insomma non so al volo il comando ma si può anche
fare.
 
In certi casi può essere più facile utilizzare qualcosa di grafico,
perché invece dell'automazione può essere più utile vedere ad occhio
quello che va spostato dove e come... In questo caso non saprei,
forse con Scribus riesci a fare una cosa simile:
 
- importi l'intero PDF
 
- ciascuna pagina del documento importato corrisponderà a ciascuna
  pagina del PDF originale
 
- poi da lì sposti le pagine come desideri vedendo ad occhio quello
  che stai facendo
 
- infine ricrei il PDF finale
 
Credo che sul discorso qualità in questo modo non ci siano problemi,
puoi decidere la qualità in uscita... anche se forse si può gonfiare
un po' in termini di dimensioni rispetto all'originale.

Anony Mous ha pensato forte :

apri il pdf con GIMP, e salva in pdf la pagina che ti interessa.
Saluti
fl
 
-- 
"il vero significato essenziale di un'esperienza può essere totalmente 
diverso da come la nostra mente la giudica"
Fabio Marchesi-La fisica dell'anima

 Purtroppo non mi sembra ci sia la versione per Linux.
 
Preciso: intendo con la GUI nativa. ;)

 fl
 
Serve qualcosa di automatico, per pochi fogli è utile altrimenti 
mooooltooooo noioso.
Grazie lo stesso.

 Esiste un modo / programma per poterlo fare rapidamente?
macOS. Con Anteprima (lettore di sistema per PDF e immagini in vari
formati), si riorganizzano e/o estraggono le pagine con un drag&drop.
Per eliminarle tocca pigiare un tasto sulla tastiera o  usare il comando
da menu.
Mi meraviglio che nel mondo Linux (e in parte anche Windows) ci si
complichi ancora la vita per cose del genere... Su macOS è una cosa che
si può fare da anni. Probabilmente dalle prime versioni di Mac OS X
(2001), ma certamente almeno da Mac OS X 10.6.x (2008). Se poi uno vuole
smanetttare, può comunque installarsi pdftk ;-)
 
 
-- 
Per contattarmi, togliere -NOSPAM- dall'indirizzo.
To contact me, remove -NOSPAM- from address.

 
 
uhm, non saprei, a casa (linux) non lo uso.


 smanetttare, può comunque installarsi pdftk ;-)
 
MacOS è differente, ma qui stiamo parlando di altro. ;)


 
angelo
 


Architecture: amd64
Replaces: pdftohtml, xpdf-reader, xpdf-utils (<< 3.02-2~)
Provides: pdftohtml, xpdf-utils
Depends: libpoppler82 (= 0.71.0-5), libc6 (>= 2.14), libcairo2 (>= 1.12.0),
 libfreetype6 (>= 2.2.1), liblcms2-2 (>= 2.2+git20110628), libstdc++6 (>= 5.2)
Conflicts: pdftohtml
Breaks: xpdf-common, xpdf-utils (<< 1:0)
Description-it: utilità PDF (basate su Poppler)
 Poppler è una libreria per rendering di PDF basata sul visualizzatore di
 PDF Xpdf.
 .
 Questo pacchetto contiene utilità a riga di comando (basate su Poppler) per
 recuperare informazioni su documenti PDF, convertirli in altri formati o
 manipolarli:
  * pdfdetach -- elenca o estrae file inclusi (allegati),
  * pdffonts -- analizzatore di tipi di carattere,
  * pdfimages -- estrattore di immagini,
  * pdfinfo -- informazioni su documenti,
  * pdfseparate -- strumento di estrazione di pagine,
  * pdfsig -- verifica firme digitali,
  * pdftocairo -- convertitore da PDF a PNG/JPEG/PDF/PS/EPS/SVG che usa
    Cairo,
  * pdftohtml -- convertitore da PDF a HTML,
  * pdftoppm -- convertitore di PDF in immagini PPM/PNG/JPEG,
  * pdftops -- convertitore da PDF a PostScript (PS),
  * pdftotext -- estrattore di testo,
  * pdfunite -- strumento di unione di documenti.
Description-md5: c82ab1c01fb88c7aab560b4a6154c69f
Multi-Arch: foreign
Homepage: 
http://poppler.freedesktop.org/
 
-/cite-
 
-- 
Yoda
 

Il 08/07/21 09:02, Anony Mous ha scritto:

Su Arch uso PDF Arranger.

 Su Arch uso PDF Arranger.
 
Confermo, stavo per dare lo stesso suggerimento :)
 
-- 
Tilt


pdftk lavora bene da riga di comando, anche perché
così ci fai quello che vuoi anche includendolo in
script.
 
C'è PDF Chain che ne mmette a disposizione un'interfaccia
grafica. Mai provato quindi non ti so dire come funziona.
 
https://opensource.com/article/19/2/manipulating-pdfs-linux
 
https://pdfchain.sourceforge.io/
 

 smanetttare, può comunque installarsi pdftk ;-)
 
Dipende da cosa serva fare. Se sai già le pagine che devi estrarre e
riassemblare fai prima con pdftk digitando una riga di comando.
Se si vuole smanettare e trascinare 50 volte le pagine a destra e a
manca allora andate di macos, mouse e olio di gomito. Scherzi a parte,
con scribus si può fare più o meno quello che dicevi, sicuramente non
così "al volo"... e sicuramente non è il tool più adatto per lo scopo.
 
Ad esempio probabilmente meglio questo:
 
https://askubuntu.com/questions/138592/what-is-the-easiest-way-to-rearrange-pages-in-a-pdf-document
 
 
Oppure quest'altro che è un fork del primo:
 
https://www.linuxuprising.com/2018/12/pdfarranger-merge-split-rotate-crop-or.html
 
https://github.com/pdfarranger/pdfarranger
 
 
Meravigliarsi è bene... Informarsi per davvero, non ha prezzo!  ;)

 script.
 
Ciao io uso le utility di poppler, tutte da riga di comando, e vanno
perfettamente, ma adesso, vista questa tua risposta, sono curioso di
provare pdftk.
Sapresti dirmi se questo pdftk che dici e' in java? Perche' per la
Debian hanno fatto questo:
 
-cite-
Description-it: pacchetto di transizione per pdftk, uno strumento per
manipolare documenti PDF
 PDFtk non è più disponibile in Debian. Questo pacchetto consente un
 aggiornamento a pdftk-java, un port di PDFtk in Java. Questo pacchetto
 può essere rimosso senza problemi.
-/cite-
 
Cioe' c'e' solo pdftk-java, il pdftk e' fasullo (metapacchetto) ciao
 
-- 
Yoda
 

 manca allora andate di macos, mouse e olio di gomito. Scherzi a parte,
Comunque le pagine si possono trascinare anche a gruppi... click sulla
prima, shift-click sull'ultima da selezionare e si sposta la selezione
(anche trascinandola sulla scrivania e facendo di conseguenza un nuovo
PDF con le pagine selezionate.  Command click per aggiungerle alla
selezione singolarmente.
Non so se ritenerlo un pregio di macOS o una mancanza di Linux e/o
Windows, fatto sta che la gestione basilare dei PDF dovrebbe essere più
semplice su tutti i sistemi moderni.
P.S. so che anche macOS ha i suoi difetti. Non voglio vantare il sistema
tout-curt, però su sta cosa dei PDF è sicuramente avanti.wwwwwwwwww
 
 
-- 
Per rispondere, togliere -NOSPAM- dall'indirizzo.


Sì credo che ti debba affidare a quel fork.
pdftk originale si basa su un componente del compilatore gcc chiamato gcj,
che è deprecato da anni. Per risolvere hanno "forcato" l'intero progetto
e portanto in java.
 
https://en.wikipedia.org/wiki/GNU_Compiler_for_Java
 
https://gitlab.com/pdftk-java/pdftk
 
https://en.wikipedia.org/wiki/PDFtk
 


Come mostrato, sei tu che dimostri di "essere indietro" piuttosto, dal
momento che sono stati annoverati in questa discussione svariati tools
per fare quello che serve all'OP. Strumenti che ci sono sia su linux
che su MacOs. Avanti è il sistema operativo che monta tra le orecchie
chi ha letto le risposte!

Addi' 09 lug 2021 11:33:51, Joe scrive:

Questi link grazie li guardo dopo, ho installato pdftk-java e son
rimasto di stucco quando ho visto che la Debian l'ha preso da
Ubuntu, questo e' l'eseguibile (unico) in /usr/bin:
-cite-
#!/usr/bin/env sh
 
UBUNTUCP=/usr/share/java/bcprov.jar:/usr/share/java/commons-lang3.jar
 
java -cp $UBUNTUCP:/usr/share/pdftk/pdftk.jar com.gitlab.pdftk_java.pdftk "$@"
-/cite-
 
Mi sembra che faccia tutto, ma bisogna farci la pratica con le righe
di comando (ma personalmente preferisco la filosofia UNIX).
Pero' non ho trovato (manpagina e --help) il modo per convertire da
pdf a testo, potresti darmela la riga se la usi grazie ciao?
 
Postilla. Sai se per caso converte in testo, magari con OCR
incorporato, anche i pdf che contengono solo pagine in immagine?
 
-- 
Yoda
 


No per convetire da pdf a testo non credo che pdftk sia il programma
giusto. Pdftk prende un pdf in input ed è in grado di riorganizzarne
le pagine, selezionarne un tot, prendere due o anche N pdf e unirli in
modo molto "granulare", del tipo prendi da pag 1 a 3 del primo file,
da pag 4 a 29 del secondo, e così via e alla fine produrre magari un
pdf in uscita che sia l'unione di tutte le "selezioni".
Quindi pdftk lavora solo in ambito PDF, almeno che io sappia.
 
Per trasformare in testo semplice o anche in html ci sono altri
programmi. Visto che preferisci la filosofia unix, tieni conto che uno
dei suoi cavalli di battaglia era: "fai poche cose ma falle bene".
 
Ad ogni devi farti una bella ricerca in rete perché non sono operazioni
che ho mai fatto spesso, ricordo pdftotext, forse anche calibre ha
qualche funzionalità di quel tipo. Per l'OCR tesseract potrebbe essere
sempre utile conoscerlo.
Avevo provato tempo addietro a convertire un pdf in formato ebook, ma
calibre dava problemi con i ritorni a capo, nel senso che aggiungeva i
ritorni a capo così come li trovava nel PDF, e giustamente dal suo punto
di vista, non credo fosse ingrado di stabilire automaticamente quando
un a-capo è una fine paragrafo oppure un fine riga semplice. Fatto sta
che avrei dovuto poi editare il testo... non è una cosa infattibile
e si può anche tentare di automatizzarla un attimo. Ma non è proprio
banale ottenere una procedura del tutto pulita senza dover intervenire
poi a amano. Ci sarà bene qualche sistema già pronto ma non te ne so
indicare... dipende anche da cosa devi convertire, un conto è se parliamo
di una pagina, un altro se parliamo di un libro.

 incorporato, anche i pdf che contengono solo pagine in immagine?
 
C'e` "pdf2txt" che e` un programma python,
credo "pdfminer" sia il tool completo.
 
bye,
 
-- 
 
piergiorgio

 giusto.
 
Ok grazie son contento che non ero io a non trovarlo nella
manpagina.
Il pdftotext (che mi indichi dopo) e' quello del pacchetto
poppler-utils che uso io; e' perfetto, ma non con pdf con pagine
in fotocopia. Anche come OCR ho tesseract, speravo che pdftk
facesse qualcosa di meglio-nuovo ciao
 
-- 
Yoda
 

Addi' 09 lug 2021 16:30:15, Piergiorgio Sartor scrive:

Molto interessante questo python3-miner che dici, di solito python
lo evito come la peste, perche' e' troppo invasivo, ma questo mi fa
mettere solo altri due file:
-cite-
I seguenti pacchetti aggiuntivi saranno inoltre installati:
  python3-crypto python3-sortedcontainers
-/cite-
 
ed allora poi me lo provo ciao e grazie
 
-- 
Yoda
 

 ed allora poi me lo provo ciao e grazie
 
io uso da consol gm convert
credo faccia parte di immagemagik
che su fedora non ho ..
ho preso solo lui .
 

 angelo
 
Grazie mille, molto utile. Peccato che le ultime versioni non siano free.

 Grazie.
 
http://qpdf.sourceforge.net
 
 
Software libero, disponibile in tutte le principali distribuzioni.
Può separare le pagine di un pdf in input o combinare diverse pagine di 
file separati per comporre un documento PDF nuovo; sa eseguire vari 
lavori e trattamenti del contenuto in un'unica riga di comando.
 
Lo svantaggio è che va imparato: il grosso numero di opzioni e sintassi 
di composizione delle varie opzioni nell'ordine corretto può necessitare 
di più prove prima di ottenere il risultato desiderato.
 
Il manuale è ben fatto:
 
http://qpdf.sourceforge.net/files/qpdf-manual.html#ref.page-selection
 
 
Ad esempio, per separare il file di n pagine $FILE.pdf in n file 
distinti dal nome n-$FILE.pdf, si esegue il comando:
 
qpdf --split-pages "$FILE.pdf" "%d-$FILE.pdf"
 
dove %d è espanso in un numero decimale con aggiunta di zeri iniziali.
 
 
   Ciao,
 
 
Alessandro
 


Ho verificato che l'MD5 coincida con quella ufficiale che ho in archivio.
 
angelo

Addi' 10 lug 2021 05:42:55, Boogyman scrive:

Scusa io ho imagemagik, suo e' "convert" che serve per manipolare
immagini, pero' un comando che inizia con "gm" non c'e'.
Puoi dirmi cosa scrivi come riga di comando ciao e grazie?
 
-- 
Yoda
 

 Puoi dirmi cosa scrivi come riga di comando ciao e grazie?
 
esempio da jpg a pdf
 
roberto@ughettolinuxbox foto ]$ gm convert Ping.jpg Ping.pdf
[roberto@ughettolinuxbox foto ]$ ls
'Dun Dun 2.jpg'   Life.jpg   Ping.jpg   Ping.pdf   Sun.jpg
[roberto@ughettolinuxbox foto ]$
 
ovviamente Ping e' uno dei miei labrador ... :-))


(il condizionale è d'obbligo) Dovresti già conoscerlo:
 
man pdfimages

 man pdfimages
 
Si', lo conosco si', fa parte del pacchetto poppler-utils e ce l'ho
in linea grazie. Pero' non lo uso e adesso che me l'hai indicato non
riesco a ricordare per qual motivo uso invece pdftocairo, che fa
parte anche lui delle poppler-utils.. anche dalle manpagine non si
capisce qual e' la differenza, che pero' ci dovrebbe essere ciao
 
-- 
Yoda