registro o giornale provvisorio per operazioni contabili, annotazioni di dati ecc.
pdftotext per convertire un file formato PDF in ODS Calc LibreOffice
pdftotext per convertire un file formato PDF in ODS Calc LibreOffice

pdftotext per convertire un file formato PDF in ODS Calc LibreOffice

Discutendone con Bart, siamo inciampati in un file che, nonostante l’uso di pdfcrop, non produceva le righe/colonne che ci aspettavamo: siamo saltati direttamente a pdftotext che è più veloce ed efficace.

$ pdftotext -x 54 -y 100  -W 70 -H 686 input.pdf otput.txt

Dove: -x indica il numero di pixel dalla sinistra della pagina, -y  indica il numero di pixel dall’alto della pagina, -W e -H rispettivalemte la largezza e l’altezza in pixel del box da ritagliare, a partire dalla posizione -x -y già indicata.

Naturalmente l’output.txt è già in formato ASCII, quindi, a seconda dell’impostazione del suo contenuto, potrebbe essere necessario elaborare ancora con vim oppure semplicemente incollare in Calc LibreOffice.

Un esempio di regexp
/euro ([a-z]*\/[[0-9]*)
<die_z> :%s/.[0-9]./ciaociao/gc
<die_z> (la c fa sì che vim chieda conferma a ogni sostituzione)
<die_z> giuserpe: il ‘.’ che hai scritto è un ‘.’ letterale o sta per “qualsiasi carattere”?
<giuserpe> die_z: letterale
<die_z> giuserpe: allora intanto “escappalo” \.[0-9]\.
<die_z> altrimenti ti trova anche ?4_ con quella regex
<die_z> giuserpe: poi cosa devi fare?
<giuserpe> io faccio :%s\.[0-9]\./connonsocosa/g
<giuserpe> die_z: devo aggiungere uno ZERO
<giuserpe> \.ZERO[0-9]\.
<die_z> giuserpe: nelle regex puoi “marcare” parti del match tra () e poi “riusarle” con \1 \2 \3
<giuserpe> die_z: tradotto?
<die_z> giuserpe: quindi la regex di ricerca diventa \.\([0-9]\)\. e quella di sostituzione diventa \.0\1\.
<die_z> giuserpe: :%s/\.\([0-9]\)\./\.0\1\./gc (se non ho cannato a scrivere)
<giuserpe> fatto

Un commento

  1. giuserpe

    Per isolare le voci cerco una match string tipo: “Diconsi Euro Ventiquattrovirgolanovantasei a corpo”.
    Uso questo comando per sostituire tutta la riga ad escluzione dell’ultima parola, che isolo con un TAB, con la match string “GIUSERPE”:
    :%s/Diconsi Euro .* \(.*\)$/\t\1GIUSERPE/g
    elimino gli a capo con:
    :%s/\n/ /g
    ottenendo una sola riga di tutto il documento.
    Inserisco gli a capo con:
    :%s/GIUSERPE /\r/g

Rispondi a giuserpe Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *