doc:appunti:prog:screen2pdf
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:appunti:prog:screen2pdf [2021/01/09 11:23] – [Programma di cattura schermata] niccolo | doc:appunti:prog:screen2pdf [2023/01/23 10:35] (current) – [Ritagliare i bordi inutili] niccolo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Come salvare un libro da Google Libri in PDF ====== | + | ====== Come salvare |
| - | 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**? | + | 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:// |
| - | 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' | + | {{google2pdf.png?512|Da Google Libri a PDF}} |
| - | La ricetta è eseguibile facilmente su un computer desktop **GNU/ | + | 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' |
| + | |||
| + | La ricetta | ||
| - 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. | ||
| - Installare un **programma di cattura schermo** scriptabile; | - Installare un **programma di cattura schermo** scriptabile; | ||
| - Assegnare una **scorciatoia da tastiera** al programma di cattura. | - Assegnare una **scorciatoia da tastiera** al programma di cattura. | ||
| + | - **Acquisire** tutte le pagine. | ||
| - **Ritagliare** le immagini rimuovendo i bordi inutili. | - **Ritagliare** le immagini rimuovendo i bordi inutili. | ||
| - **Trasformare** le singole immagini nel documento PDF. | - **Trasformare** le singole immagini nel documento PDF. | ||
| Line 25: | 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**: | ||
| ===== Programma di cattura schermata ===== | ===== Programma di cattura schermata ===== | ||
| Line 36: | Line 41: | ||
| Nell' | Nell' | ||
| - | * **Filename editor**: | + | * **Filename editor**: |
| * **General**: | * **General**: | ||
| + | |||
| + | Quindi si crea uno script che esegua il cattura schermo, io l'ho salvato in **$HOME/ | ||
| + | |||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | flameshot full -p ~/Pictures | ||
| + | </ | ||
| + | |||
| + | Gli screenshot verranno salvati nella cartella **$HOME/ | ||
| + | |||
| + | ===== Assegnare un tasto scorciatoria ===== | ||
| + | |||
| + | Poiché utilizzo XFCE, ho eseguito **Settings** => **Keyboard** => **Application Shortcuts** ed ho creato un nuovo comando associando lo script al tasto **PrintScreen**. | ||
| + | |||
| + | ===== Acquisire le immagini di tutte le pagine ===== | ||
| + | |||
| + | A questo punto è possibile impostare il **browser a tutto schermo** (virtuale), aprire il libro sulla prima pagina e zoomare a **pagina intera**. Si potrà premere ripetutamente **PrintScreen** e **PagDown** per salvare tutte le pagine del libro. Fate trascorrere **almeno un secondo fra una pagina e l' | ||
| + | |||
| + | ===== Ritagliare i bordi inutili ===== | ||
| + | |||
| + | Utilizzando il comando **convert** fornito dal pacchetto **imagemagick-6.q16** è possibile ritagliare automaticamente i bordi inutili a tutte le immagini create. Ecco uno script facilmente adattabile alle proprie esigenze. Le dimensioni di crop (larghezza x altezza + sinistra + alto) si possono determinare aprendo una immagine in Gimp e utilizzando lo strumento // | ||
| + | |||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | mkdir cropped | ||
| + | find . -maxdepth 1 -type f -name " | ||
| + | convert $file -strip -crop ' | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | 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 **'' | ||
| + | |||
| + | ===== Trasformare le immagini in PDF ===== | ||
| + | |||
| + | Ho utilizzato il comando **img2pdf** fornito dall' | ||
| + | |||
| + | Questa una ricetta molto semplice per creare il PDF, deve essere eseguito nella directory che contiene le immagini ritagliate: | ||
| + | |||
| + | < | ||
| + | img2pdf --pagesize a4 --title " | ||
| + | </ | ||
| + | |||
| + | ===== 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: | ||
| + | |||
| + | < | ||
| + | InfoBegin | ||
| + | InfoKey: Title | ||
| + | InfoValue: Titolo del libro | ||
| + | InfoBegin | ||
| + | InfoKey: Author | ||
| + | InfoValue: Nome Cognome | ||
| + | NumberOfPages: | ||
| + | |||
| + | BookmarkBegin | ||
| + | BookmarkTitle: | ||
| + | BookmarkLevel: | ||
| + | BookmarkPageNumber: | ||
| + | |||
| + | BookmarkBegin | ||
| + | BookmarkTitle: | ||
| + | BookmarkLevel: | ||
| + | BookmarkPageNumber: | ||
| + | </ | ||
| + | |||
| + | È 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' | ||
| + | |||
| + | < | ||
| + | pdftk libro.pdf update_info pdf_info.txt output libro_index.pdf | ||
| + | </ | ||
| + | |||
doc/appunti/prog/screen2pdf.1610187806.txt.gz · Last modified: by niccolo
