User Tools

Site Tools


doc:appunti:prog:screen2pdf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:prog:screen2pdf [2021/01/09 11:43] – [Come salvare in PDF un libro da Google Libri] niccolodoc:appunti:prog:screen2pdf [2023/01/23 10:32] – [Schermo virtuale] niccolo
Line 1: Line 1:
 ====== Come salvare in PDF un libro da Google Libri ====== ====== Come salvare in PDF un libro da Google Libri ======
  
-Se avete acquistato un libro con **Google Libri** avete **molte meno libertà** di quelle che avete quando acquistate un libro di carta. Tanto per cominciare potete leggerlo **solo con il programma che ha deciso Google**: sul telefonino esiste l'app **Play Libri**, sul desktop potete leggerlo nel browser dal sito Google. Impossibile farne una copia PDF per leggerlo ad esempio in un ebook reader oppure per poterlo stampare. E se il vostro **account Google smette di funzionare**? Il libro scompare. E se volete **lasciare in eredità** i vostri libri ai vostri figli? Scordatevelo.+Se avete acquistato un libro con **Google Libri** avete **molte meno libertà** di quelle che avete quando acquistate un libro di carta. Tanto per cominciare potete leggerlo **solo con il programma che ha deciso Google**: sul telefonino esiste l'app **[[https://play.google.com/store/apps/details?id=com.google.android.apps.books&gl=IT|Google Play Libri]]**, sul desktop potete leggerlo nel browser dal **sito Google**. Impossibile farne una copia PDF per leggerlo ad esempio in un ebook reader oppure per poterlo stampare. E se il vostro **account Google smette di funzionare**? Il libro scompare. E se volete **lasciare in eredità** i vostri libri ai vostri figli? Scordatevelo.
  
-Con questa ricetta è possibile salvare un libro in PDF **catturando le schermate dal computer**È una soluzione di **compromesso** al ribasso: il file risultante conterrà le **immagini delle pagine**, quindi **il testo non è cercabile né esportabile** in qualche formato modificabile. Il file risultante sarà di **dimensioni importanti** (circa 20 Mb per 100 pagine). L'eventuale indice deve essere ricostruito mano.+{{google2pdf.png?512|Da Google Libri PDF}}
  
-La ricetta è eseguibile facilmente su un computer desktop **GNU/Linux**.+Con questa ricetta è possibile salvare un libro in PDF **catturando le schermate dal computer**. È una soluzione di **compromesso al ribasso**: il file risultante conterrà le **immagini delle pagine**, quindi **il testo non è cercabile né esportabile** in qualche formato modificabile. Il file risultante sarà di **dimensioni importanti** (circa 20 Mb per 100 pagine). L'eventuale indice deve essere ricostruito a mano. 
 + 
 +La ricetta un po' **da smanettoni** è eseguibile facilmente su un computer desktop **GNU/Linux**, la sua caratteristica è di poter scegliere la qualità delle immagini (risoluzione in pixel) a piacimento. C'è un po' di **lavoro manuale** da fare (premere due tasti per ogni pagina) e poi da **eseguire degli script** per comporre le singole immagini un un solo documento PDF.
  
   - Impostare una **risoluzione virtuale elevata**. Ciò consente di simulare un monitor ad esempio di 1300x2000 pixel (notare il formato portrait), in modo che il browser visualizzi una pagina intera del libro a risoluzione elevata.   - Impostare una **risoluzione virtuale elevata**. Ciò consente di simulare un monitor ad esempio di 1300x2000 pixel (notare il formato portrait), in modo che il browser visualizzi una pagina intera del libro a risoluzione elevata.
Line 26: Line 28:
  
 Per tornare alla condizione normale è sufficiente ripetere il comando impostando la stessa risoluzione per **%%--mode%%** e **%%--panning%%**. Per tornare alla condizione normale è sufficiente ripetere il comando impostando la stessa risoluzione per **%%--mode%%** e **%%--panning%%**.
 +
 +**ATTENZIONE**: Quando si cambia risoluzione virtuale si deve **riavviare il programma Flameshot** in modo che la cattura della schermata avvenga per intero!
  
 ===== Programma di cattura schermata ===== ===== Programma di cattura schermata =====
Line 65: Line 69:
 mkdir cropped mkdir cropped
 find . -maxdepth 1 -type f -name "*.png" | while read file do; find . -maxdepth 1 -type f -name "*.png" | while read file do;
-    convert $file -crop '1000x1414+120+180' cropped/$file+    convert $file -strip -crop '1000x1414+120+180' cropped/$file
 done done
 </code> </code>
 +
 +Se le immagini sono in bianco e nero (oppure pochi toni di grigio) è possibile risparmiare un po' di spazio usando una codifica a 4 bit (16 toni di grigio), aggiungendo le opzioni **''%%-depth 4 -colorspace gray -define png:color-type=0%%''** al comando **''convert''**. Il **color-type=0** per PNG significa greyscale e supporta il formato a 2, 3, 4, 8 o 16 bit, vedere **[[https://legacy.imagemagick.org/Usage/formats/#png_write|Imagemagick png_write]]**.
 +
 +===== Trasformare le immagini in PDF =====
 +
 +Ho utilizzato il comando **img2pdf** fornito dall'omonimo pacchetto Debian (oppure installabile con il sistema **[[wp>Pip_(package_manager)|pip]]**). Il programma consente di creare il PDF senza alterare le immagini originali, cioè queste vengono inserite nel PDF senza ricodificarle come invece farebbe il tool **convert**.
 +
 +Questa una ricetta molto semplice per creare il PDF, deve essere eseguito nella directory che contiene le immagini ritagliate:
 +
 +<code>
 +img2pdf --pagesize a4 --title "Titolo del libro" --author "Nome Cognome" *.png > libro.pdf
 +</code>
 +
 +===== Creazione di un indice =====
 +
 +Per aggiungere un **indice** al documento PDF è necessario creare un file che aggiunga ai metadati esistenti (titolo, autore, ecc.) un titolo e una pagina per ogni **bookmark**. Ad esempio si crea un file **pdf_info.txt** con:
 +
 +<code>
 +InfoBegin
 +InfoKey: Title
 +InfoValue: Titolo del libro
 +InfoBegin
 +InfoKey: Author
 +InfoValue: Nome Cognome
 +NumberOfPages: 184
 +
 +BookmarkBegin
 +BookmarkTitle: Capitolo 1
 +BookmarkLevel: 1
 +BookmarkPageNumber: 8
 +
 +BookmarkBegin
 +BookmarkTitle: Capitolo 2
 +BookmarkLevel: 1
 +BookmarkPageNumber: 43
 +</code>
 +
 +È possibile definire bookmark di primo livello, di secondo livello, ecc. Con il programma **pdftk** (fornito dal pacchetto Debian **pdftk-java**) è possibile creare un nuovo PDF aggiungendo le informazioni dell'indice:
 +
 +<code>
 +pdftk libro.pdf update_info pdf_info.txt output libro_index.pdf
 +</code>
 +
doc/appunti/prog/screen2pdf.txt · Last modified: 2023/01/23 10:35 by niccolo