Scansione: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
m (categorie)
Nessun oggetto della modifica
(8 versioni intermedie di 2 utenti non mostrate)
Riga 5: Riga 5:


==Scansione==
==Scansione==
Fai un po' di prove di scansioni singole di pagine che rappresentino bene in termini di distribuzione del colore, testo e distribuzione del contenuto quello che andrai a scansionare: se la stampante te lo permette, valuta se è opportuno regolare contrasti e luminosità per ottenere una scansione più nitida. Imposta una buona risoluzione: deve essere sufficientemente alta da rendere nitido e definito il risultato finale, ma non troppo da appesantire eccessivamente ogni fase del lavoro; normalmente 400 ''ppi'' sono un buon compromesso. Imposta infine il formato di scansione: è consigliabile scegliere un formato ben definito anziché la modalità di autorilevamento del formato, in modo da ottenere immagini tutte uguali. Cerca infine di posizionare il documento in modo da farne coincidere il più possibile l'angolo con quello dello scanner.
Per la scansione, se lo scanner ne è provvisto, è consigliabile la modalità PDF multipagina. Normalmente la memoria interna di uno scanner è molto limitata, quindi il lavoro potrà dover essere spezzato su più PDF distinti. In questo caso sarà sufficiente rinominarli con un nome progressivo (''e.g.'' SCAN01.pdf, SCAN02.pdf ''etc''.) e poi riassemblarli in un unico documento:
<code>$ pdftk SCAN*.pdf cat output SCAN_ASS.pdf</code>
A questo punto avrai finalmente un file PDF unico contenente tutte le scansioni ordinate.


==Post-produzione==
==Post-produzione==
Riga 16: Riga 23:
<code>$ pdftk multipage_document.pdf burst</code>
<code>$ pdftk multipage_document.pdf burst</code>


questo genera tanti file quanti sono le pagine nominati come pg_001.pdf, pg_002.pdf, ecc. Questi possono essere convertiti in png usando:
questo genera tanti file quanti sono le pagine nominati come pg_001.pdf, pg_002.pdf, ecc. Questi possono essere convertiti in png usando su zsh:


<code>$ for i in *.pdf; convert -density 300 $i "${i%.pdf}.png";</code>
<code>$ for i in *.pdf; convert -density 300 $i "${i%.pdf}.png";</code>
altrimenti su bash:
<code>$ for i in *.pdf; do convert -density 300 $i "${i%.pdf}.png"; done </code>


Così si ottengono le immagini da dare in pasto a scantailor.  
Così si ottengono le immagini da dare in pasto a scantailor.  
L'output di scantailor sono una serie di immagini tiff che possono essere compattate in un unico .pdf generando prima una .tiff multipagina:
L'output di scantailor sono una serie di immagini tiff che possono essere compattate in un unico .pdf generando prima una .tiff multipagina:


<code>$ tiffcp out_di_scantailor/*.tiff multipage.tiff</code>
<code>$ tiffcp out_di_scantailor/*.tif multipage.tif</code>
 
Probabilmente vorrai dare un'aggiustatina alla dimensione di ogni immagine, in particolare se hai scelto di lavorare su un progetto a risoluzione molto alta. Se vuoi riscalare del 60% le tue immagini puoi dare un comando del genere:
 
<code>$ for i in *.tif; convert -resize 60% $i "${i%.tif}_2.tif";</code>
 
che genererà in output le immagini ridimensionate mettendoci un _2 alla fine.
   
   
e poi convertendola in un pdf:
Puoi infine procedere a creare il tuo pdf:
   
   
<code>$ tiff2pdf megatiff.tiff megapdf.pdf</code>
<code>$ tiff2pdf multipage.tiff megapdf.pdf</code>
 
====Troubleshooting====
Il ciclo for fallisce con l'errore:
 
<code> convert: attempt to perform an operation not allowed by the security policy `PDF' </code>
 
È necessario modificare le regole di policy di Imagemagick 7 nel file <code>/etc/ImageMagick-7/policy.xml</code>, <b>commentando</b> la seguente riga:
 
<code> <policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" /> </code>


===Briss===
===Briss===
Riga 35: Riga 62:


dalla cartella dove si è scompattato il software.
dalla cartella dove si è scompattato il software.
== METADATI ==
è tutto una bozza qui quando ho un attimo di tempo lo metto apposto
pdf -> usa exiftool
djvu -> usa djvused (per djvu non c'è uno standard sui tag da utilizzare)
tips per anonimizzare il tuo file:
usa MAT (Metadata Anonymizer Tool)
oppure per un PDF:
<code>$ exiftool -overwrite_original -t -Creator="" -CreateDate="" -CreatorTool="" -Producer="" -DocumentID="" -InstanceID="" -SigningAuthority="" topsecretsegretissimofile.pdf </code>
mentre per un DJVU:
<code>$ djvused -v topsecretsegretissimofile.djvu -e "remove-meta; save" </code>
== OCR ==
Il passo finale della digitalizzazione è il processo di riconoscimento dei caratteri. Migliore è la qualità della scansione e migliore è stato il loro post-processing e migliore è l'accuratezza che ci si può aspettare da un'operazione OCR.
=== Tesseract OCR ===
È il software più completo, può fare OCR in molte lingue diverse e sono disponibili molti pacchetti di ''trained data'' per varie lingue.
=== OCRopus ===
È un progetto open inizialmente basato su Tesseract e ora dotato di un proprio motore OCR; è in forte crescita.
=== Pypdfocr ===
È uno script in Python che combina l'azione di GhostScript, ImageMagick, Poppler e Tesseract OCR. Prende in input un PDF e scrive in output un PDF identico ma con un layer OCR. L'utilizzo è estremamente semplice e nella maggior parte dei casi basta specificare la lingua e dare:
<code>$ pypdfocr -l eng  mybeautifulbook.pdf</code>
Per rendere più veloce l'operazione, nel caso in cui il documento abbia già subito un processo di post-produzione come quello indicato nella sezione precedente, allora si può dare:
<code>$ pypdfocr -l eng --skip-preprocess mybeautifulbook.pdf </code>
Il processo è estremamente pesante dal punto di vista computazionale: nel caso in cui si stia lavorando con un PC portatile, potrebbe essere necessaria l'alimentazione da rete elettrica. Potrebbe essere inoltre utile monitorare periodicamente la temperatura della CPU e posizionare la macchina in modo che il sistema di raffreddamento massimizzi il flusso d'aria.
=== Pagine Doppie ===
Capita di trovare documenti .pdf che siano scansioni di buona qualità oppure file vettoriali, ma che siano a doppia pagina. Nel caso in cui si tratti di una scansione, è possibile procedere con scantailor, trattanto ogni pagina per l'immagine che è. Nel caso in cui si abbia a che fare con file vettoriali, si vuole normalmente conservare l'informazione vettoriale. Si può procedere con pdfcrop sulle singole pagine. In primo luogo si può individuare la porzione di file che ha le pagine doppie e isolarla, che nell'esempio seguente è tra la pagina 2 e la fine del libro:
<code>$ pdftk libro.pdf cat 2-end output partial.pdf</code>
A questo punto è possibile separare il file in tanti pdf a pagina singola:
<code>$ mkdir workdir && cd workdir && pdftk ../partial.pdf burst</code>
È poi possibile dare su ogni singolo file il seguente comando:
<code>$ pdfcrop --bbox "<left> <bottom> <right> <top>" input.pdf output.pdf</code>
I margini da inserire possono essere ricavati, elencati nello stesso ordine, dando il comando:
<code>$ pdftk input.pdf dump_data | grep PageMediaRect</code>
Se, ad esempio, dopo aver separato il pdf nelle pagine singole l'ultimo comando restituisce:
<code>$ pdftk pg_0001.pdf dump_data | grep PageMediaRect
PageMediaRect: 0 0 935.433 680.315</code>
Per le pagine sinistre si dà:
<code>$ for i in *.pdf; do pdfcrop --bbox "0 0 467.7165 680.315" $i ../"${i%.pdf}_L.pdf"; done</code>
Mentre per le pagine destre si dà:
<code>$ or i in *.pdf; do pdfcrop --bbox "467.7165 0 935.433 680.315" $i ../"${i%.pdf}_R.pdf"; done</code>     
A questo punto si possono riunire le pagine destre e sinistre:
<code>$ mkdir separate && mv *_L.pdf separate/ && mv *_R.pdf separate && mv separate && pdftk *.pdf cat output prefinal.pdf</code>
A questo punto si unisce la prima pagina del file iniziale al file finale:
<code>$ pdftk libro.pdf cat 1 separate/prefinal.pdf cat output completoseparato.pdf </code>


==Condivisione==
==Condivisione==
115

contributi

Menu di navigazione