Complicazioni informatiche
Ho trovato online in download gratuito un pdf con il testo in inglese di un libro scritto intorno al 1188.
Volevo darci una letta a tempo perso, ma il testo risulta troppo piccolo sullo schermo. Ci sono fino a 18 parole per riga, che va bene in formato A4, ma non va bene su un lettore di e-book, dove bisognerebbe spostare l'inquadratura a destra e a sinistra ogni volta che si va a capo. Eh già, perché essendo il file in formato Pdf, il testo delle righe non si riadatta aumentando la dimensione. Le parole non vengono smistate alla riga successiva, ma finiscono semplicemente fuori dallo schermo quando si aumenta la grandezza.
Penso: poco male, posso copiare il testo, incollarlo dentro Blocco Note. Perderei la formattazione ma avrei un testo in grado di adattarsi allo schermo.
E invece no, perché il pdf è protetto dall'operazione di copiatura. E' vero che l'autore non può lamentarsi per i suoi diritti d'autore, essendo morto 803 anni fa, ma il suo traduttore sì: il file digitale in inglese non risale mica a un millennio fa!
Provo ad approfondire un po': in pratica all'interno del file pdf si possono aggiungere varie protezioni. Se lo si apre con Blocco Note si può vedere che c'è la parola "Encrypt" e nella sezione "/Filter /Standard" una "/P" seguita da un numero. Quel numero va immaginato come una serie di bit, ognuno dei quali gestisce una diversa autorizzazione. Il browser con cui sto aprendo il file mi dice che posso stampare e salvare, ma non posso copiare, modificare, compilare moduli, aggiungere commenti, firmare.
Poco male, penso: basta cambiare questo numero per dire al browser che sono autorizzato... Invece no, perché comunque in tutto ciò sono coinvolte tecniche crittografiche, per cui cambiare un bit cambia tutti quanti i totali e il browser non riesce più a decriptare il testo.
Per capirci qualcosa faccio parecchie domande all'intelligenza artificiale di Google, che mi spiega che il testo non è inaccessibile a qualsiasi software: i normali programmi non lo lasciano copiare solo per correttezza, sulla base delle impostazioni decise dall'autore, ma chiaramente riescono ad accedere alle informazioni contenute, altrimenti non sarebbero in grado neanche di visualizzare il testo. Quindi se uno avesse un software che non rispetta queste regole, o agisse da linea di comando, potrebbe aggirare il divieto.
Mi sembra che da cellulare ad esempio non ci siano limitazioni alla copia: posso prendere una porzione di testo e incollarla nel Blocco Note. Ma questo software può memorizzare soltanto testi brevi, nel mio caso. Forse potrei inserirlo in una mail e inviarlo al computer.
E se intervenissi con un po' di programmazione? Si può scaricare una libreria Python, PdfReader, da cui si riesce ad estrarre il testo di ciascuna pagina, concatenarlo con quello delle altre, e salvarlo in un file .txt.
Problema risolto? Non proprio, perché trovo varie O accentate che non ci dovrebbero stare.
Controllo sull'originale: sono le virgolette alte orientate. In pratica c'è un pasticcio con la codifica dei caratteri: lo stesso byte viene interpretato come una O accentata o come una virgoletta a seconda del tipo di codifica specificato. E con altri caratteri particolari si viene a creare un problema simile.
Bombardo di domande l'IA e alla fine riesco ad ottenere uno script che mi risolve il problema. Codifico il testo in cp1252 e lo decodifico in macroman. Una sola riga di istruzioni. Poi mi pare che devo codificarlo in utf-8 prima di salvarlo nel file txt.
Tecnicamente ci siamo. Bisogna dare solo qualche ritocco all'impaginazione: eh già, perché dal pdf sono stati estratti tutti gli a capo a fine riga, cioè a metà frase. Serve qualche altro intervento di programmazione per togliere gli a capo, a meno che non vengano dopo un punto. Già che ci sono, aggiungo uno spazio per rientrare la riga successiva, e un paio di invii prima della parola "Chapter", per separare i capitoli uno dall'altro.
Nel file txt infatti non ci sono più le informazioni sulla dimensione del testo o sul grassetto, quindi il risultato dal punto di vista tipografico non è l'ideale. Tanto mica lo devo pubblicare, mi basta riuscire a leggerlo sul mio dispositivo. (Servirebbe qualche altro intervento per togliere i numeri di note e versetti che ora sono grandi quanto il testo e appiccicati alle parole, ma ho già perso troppo tempo).
*
A proposito di libri, ne ho trovato un altro, sempre in inglese, che parla dell'invenzione della stampa. Questo si trova su Wikisource, suddiviso in varie pagine web.
E se lo volessi scaricare?
Poco male, esiste già un servizio che automatizza il tutto: basta andare su ws-export.wmcloud.org e digitare titolo, formato, ed eventualmente anche il font, a scelta tra i 230 a disposizione.
In realtà i font disponibili sono ben pochi, il numero è gonfiato da tutte le versioni del Noto che supportano le lingue più impensate.
La scelta di default è "None": ogni dispositivo visualizza il testo col suo font di default. Mi sta bene.
Scarico il libro in formato Epub 3, senonché non funziona sul mio reader che è molto vecchio.
Poco male: si può scegliere un altro formato: il Pdf, specificando anche la dimensione del foglio.
Procedo, il sito carica a lungo e poi mi dà un messaggio di errore: "Service Unavailable. The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later". Fatto sta che non riesco ad ottenere il file, né da cellulare né da computer, provando in diversi momenti della giornata.
Ma qualcosa ce l'ho: l'Epub! E se lo convertissi in in Pdf?
Facile a dirsi. Ricerca sul web, riesco a trovare la libreria epub2pdf per Python, la installo, eseguo, operazione riuscita.
Senonché... questo software è stato scritto per convertire i fumetti, non i libri. Quindi che fa? Prende solo le foto che sono presenti nel file e me le mette una dietro l'altra, senza neanche le didascalie. Nessun testo, zero.
Le foto sono fantastiche, incunaboli a volontà, mi sto già leccando i baffi...
Ma come si fa a estrarre il testo?
Continuo a scavare nel web e viene fuori un'altra libreria Python: epub-to-text.
Installo ed eseguo anche questa, ed ecco un file txt bello e pronto in una cartellina creata apposta.
Qualità del testo? Non lo so, proverò a leggere il libro e vedere com'è venuto. Certo è una seccatura, perché tutte le belle immagini presenti nel file non ci sono. Posso vederle nel Pdf, ma a quali parti del testo si riferiscono?
Forse l'ideale sarebbe avere il file Epub 2, che Wikisoruce Book Export riesce a generare, con la dicitura "deprecated, may be useful for some very old ereaders". Ma così come il sito non riesce a produrre Pdf, non riesce nemmeno a produrre altri Epub, al momento.
Dovrei cercare istruzioni per effettuare la conversione per conto mio, ma per oggi ne ho abbastanza. Ho avuto fin troppi passatempi non richiesti, e comunque i testi che mi servivano li ho estratti.
*
A proposito di conversioni da un formato all'altro, alcuni mesi fa uno youtuber, The Prime Time, ha dedicato un video alle e-mail di Epstein. Non un video come i tanti che analizzano i contenuti cercando tracce di reati e nomi. In questo caso la domanda era: come mai in queste e-mail compare così tante volte il segno "="? E perché compare al posto di lettere mancanti?
La spiegazione è dettagliata e specialistica. In questo caso però il problema non deriva dalle codifiche dei caratteri, bensì da convenzioni imposte con lo scopo di evitare che nelle mail ci siano righe di testo troppo lunghe, che potrebbero creare difficoltà ad alcuni software.
Per dividere le righe lunghe i software aggiungono il simbolo "=" seguito dai due byte che indicano di andare a capo, "\n" e "\t".
Senonché il software con cui sono state elaborate quelle mail prima di diffonderle ha prima accorpato i due byte in un solo byte per andare a capo, e poi durante un secondo passaggio è rimasto confuso dalla presenza di una lettera successiva che dal punto di vista informatico non vuol dire niente.
Così ha scelto di ignorare l'insieme, facendo sparire tutti e due i byte che non riesce a interpretare. Ho fatto qualcosa del genere anche io nella conversione di cui ho parlato prima, aggiungendo il parametro "ignore" per evitare che un carattere imprevisto facesse crashare il programma.
Quindi i due byte scompaiono (quello che manda a capo e la prima lettera della nuova riga), ma rimane il simbolo =, che non fa altro che confondere le idee di chi legge.
Lo youtuber si mette a deridere quelli che immaginano che dietro ci sia chissà quale diabolico mistero o complotto dei servizi segreti. Invece è solo un problema di passaggio dei byte da un software all'altro.





Commenti
Posta un commento