Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Problemi nel copiare/incollare parte di testo da un PDF

Maggio 21st, 2008 by Giovanni Caputo

Se volete copiare parti di testo da documenti pdf ma avete dei problemi ottenendo dei simboli strani, potete:

Recatevi su Scribd
– Registratevi o effettuate il login tramite questi account
– Cliccate su Upload Documents e selezionate il vostro file PDF
– Caricatelo e attendete la fine del processo e il redirect
– Cliccate su Publish
– Cliccate ora su Download e selezionate “Text”

Avrete ora esportato correttamente il vostro file PDF in un file di testo. Ci può essere qualche errore per quanto riguarda le lettere accentate.

Upload_promo Promo_share

Scribd vi consente di caricare online tutti i vostri documenti (Dai file testo alle immagini) per poter condividerli con una comunità veramente vasta. Non avrete problemi di spazio e l’iscrizione è gratuita. Tutti potranno scaricare i documenti degli altri utenti, commentarli, visualizzarli, inviarli via email ed implementarli in siti web o blog.

Read the rest of this entry »

Category: Curiosità, Siti Web | No Comments »

Linux bash ed il testo

Aprile 5th, 2008 by Giovanni Caputo

In Linux esistono moltissime utility per manipolare del testo, con questo post voglio inaugurare una serie di mini guide ai programmi più utilizzati per gestire i nostri file e/o stream di testo.

Text

Iniziamo con la visualizzazione: ci sono modi e modi per visualizzare del testo, e per ogni occasione esiste almeno un programma adatto allo scopo.

less /more /most

questi 3 programmi permettono di scorrere un testo (sia file che stream) riga per riga o pagina per pagina.

  • more: permette di scorrere il testo solo in avanti, riga per riga [premendo Invio] e pagina per pagina [premendo la barra]
  • less: (nome in puro stile *nix) permette di scorrere il testo sia in avanti sia all’indietro [usando le frecce oppure PagUp e PagDown]
  • most: ancora più potente di less, supporta i colori (ad esempio colora le pagine man)

–edit–

pg

questo programma è simile ai 3 di sopra, permette infatti di scorrere file di testo

–edit–

cat

cat permette di concatenare più file, anche non di testo (per esempio per rimontare file suddivisi in più parti con split), però può essere usato anche come semplice visualizzatore di file, ecco alcuni esempi:

cat nomefile //stampa a terminale il contenuto del file

cat nomefile1 nomefile2 //stampa a terminale il contenuto del primo file seguito dal contenuto del secondo

cat nomefile1 nomefile2 > nomefile3 //concatena il contenuto del primo file con il contenuto del secondo e li scrive nel terzo file

head / tail

questi due programmi stampano a terminale rispettivamente l’inizio e la fine del file che viene specificato. Per default stampano solamente 10 righe, per cambiare questo numero basta utilizzare l’opzione -n

vediamo ora come compiere delle ricerche all’interno del testo.

Per questo compito ci basterà un solo programma: grep

Testo

Grep permette di cercare sia in un singolo file (o uno stream), sia in un insieme di file che possono essere elencati in coda al comando. È possibile anche ricercare all’interno di tutti i file presenti in una directory (basta specificare il percorso con *).

Inoltre, grep supporta sia la ricerca di stringhe costanti, sia la ricerca di pattern di stringhe (tramite l’uso di espressioni regolari).

Vediamo un po’ di esempi:

grep ‘parole da cercare’ nomefile1 nomefile2 //cerca ‘parole da cercare’ nei 2 file e stampa a video le righe che le contengono

grep -n -i ‘paRoLe dA cerCAre’ /home/user/books/* //cerca ‘parole da cercare’ ignorando se si tratta di maiuscole o minuscole (-i) in tutti i file contenuti in /home/user/books, e stampa “nomefile:numero di riga:riga”

grep [a-z] nomefile //cerca (e stampa) tutte le righe che contengono almeno una lettera minuscola ([a-z] è un esempio di espressione regolare)

per le espressioni regolari vi consiglio di sfogliare le pagine man di grep, sono troppo variegate per poterle descrivere in un post (magari ne parlerò in futuro).

Altre 2 opzioni che potrebbero servirvi sono:

  • -l che elenca solamente il nome dei file che contengono la stringa di testo da ricercare (questa opzione può essere utile se si cerca in tutti i file di una directory con*)
  • -w restringe la ricerca solamente alle parole intere

Dopo aver visto come visualizzare i nostri testi e come compiere ricerche su di essi, vediamo come effettuare delle sostituzioni in maniera “semplice” e veloce.

Il comando che tratterò è: sed

Sed è uno stream editor dalle 1000 + 1 funzionalità, oggi mi concentrerò solo sulle trasformazioni del testo. Sed è utilissimo se dovete effettuare tante sostituzioni all’interno di un file molto grosso (quando dico molto intendo proprio MOOOLTO, io l’ho usato con file di testo da 500MB).

Vediamo come funziona:

Innanzitutto il comando per effettuare delle ricerche con sostituzioni è in questa forma:

sed ’s/before/after/’ < in > out

  • s: sta per “sostituisci”
  • before: è la stringa da ricercare
  • after: è la stringa da inserire al posto della stringa originale
  • < in: indica il file di input (”<” indica che il file verrà preso in input da sed)
  • > out: indica il file di output (”>” indica che il file verrà utilizzato come output), se manca verrà scritto tutto a terminale
  • /: è un carattere utilizzato come separatore (si può utilizzare il carattere che si preferisce, basta che non compaia nelle stringhe before e after; se il carattere separatore appare anche nelle stringhe basta precederlo da “\”)

primo esempio:

sed ’s/sole/luna/’ < in > out //tutte le volte che in “in” compare “sole” in “out” verrà scritto “luna”

le stringhe before e after possono essere più “furbe”, includendo espressioni regolari:

sed ’s:[0-9]*:NUMERO:’ < in > out //tutti i numeri sono sostituiti da “NUMERO” (invece di / ho usato : come carattere separatore)

si può usare il carattere & per ricopiare la stringa trovata:

sed ’s/[0-9]*/aaa&zzz/’ < in > out //ogni numero viene inserito all’interno di aaa e zzz

si possono memorizzare 9 parti distinte delle stringhe trovate per poterle utilizzare nella sostituzione:

sed ’s/\([0-9]*\).[0-9]*/\1/’ < in > out //utilizzando “\(” e “\)” nella stringa da trovare si possono identificare le diverse parti, che poi possono essere utilizzate nella sostituzione indicandole con “\n” (dove “n” è sostituita da una cifra da 1 a 9) [nell’esempio viene ricopiata solo la parte intera dei numeri decimali]

Il grande vantaggio di sed è che analizza il testo come uno stream, quindi non necessita di aprire tutto il file prima di iniziare l’elaborazione, quindi risulta particolarmente veloce con file grossi (provate ad aprire con un editor normale questo file dopo averlo decompresso).

Per qualche info in più ecco una introduzione (in inglese) a sed.

Read the rest of this entry »

Category: tutorial | No Comments »

CSS Text Wrapper – Diamo una forma al testo

Marzo 29th, 2008 by Giovanni Caputo

css-text-wrapper.png

Questa volta parliamo di un sito, un servizio web, che risulterà utile a coloro che hanno a che fare con css e html.

CSS Text Wrapper ci permette di dare una forma libera ad una porzione di testo, trasformando il tutto in codice css e html.

Il testo da modellare può essere inserito nella sezione delle opzioni, mentre nella parte centrale della pagina possiamo dare la forma desiderata agendo sulle linee nere.

Spostando i pallini verdi, posti all’estremità delle linee, possiamo dare qualsiasi forma al testo, zig zag, curvo o totalmente irregolare. Cliccando lungo la linea nera viene aggiunto un nuovo pallino verde che possiamo spostare per creare delle forme veramente particolari.

Le opzioni a disposizione sono essenziali ma ci permettono di aumentare la larghezza, l’altezza e l’interlinea dell’area che contiene il testo. E’ possibile scegliere l’allineamento, il tipo e la dimensione del carattere.

Il risultato finale viene tradotto interamente in html/css e javascript in modo da essere facilmente copiato e incollato all’interno del vostro sito.

Con CSS Text Wrapper possiamo dire addio ai blocchi di testo rettangolari e possiamo dare libero sfogo alla fantasia e dare al testo qualsiasi forma.

Link | CSS Text Wrapper Read the rest of this entry »

Category: Novità, Siti Web | No Comments »