[Gfoss] Documenti su Spatialite

a.furieri a lqt.it a.furieri a lqt.it
Lun 5 Maggio 2014 19:00:25 CEST


On Mon, 5 May 2014 09:32:23 -0700 (PDT), Beppe wrote:
> Causa impegni di lavoro, ho potuto provare solo oggi l'inserimento 
> dei
> documenti secondo la procedura consigliatami da Sandro...
> Per riferimento ho creato una cartella prova contenente un file pdf
> ("pinko_pdf")nella directory
> 1a procedura. Ho creato la tabella con un campo testo nel quale poi 
> ho
> successivamente inserito il percorso del file pdf di mio interesse: 
> il
> percorso compare nel corrispondente campo della tabella, ma non viene
> richiamato nè riesco a far sì che venga visualizzato.
>
> create table provapdf (
>  id integer not null primary key autoincrement,
>  type text not null,
>  document text not null)
>
> insert into provapdf (id, type, document)
> values (null, "pdf", "C:\Users\prova\pinko_pdf")
>

ok; a questo punto pero' ti serve un qualche componente
software che compia le seguenti azioni:
1) recuperi quel path dalla colonna del DB
2) e quindi provveda a lanciare un qualsiasi PDF viewer
    passandogli quel path.


> 2a procedura. Ho creato un'altra tabella con un campo blob con la 
> seguente
> sintassi:
>
> create table provapdf1 (
>  id integer not null primary key autoincrement,
>  type text not null,
>  document blob)
>
> come posso memorizzare direttamente il file pdf o documento nella 
> colonna
> blob?
>

puoi farlo in tanti modi diversi:
a) ti sviluppi un componente sw che legge il tuo PDF, si crea
    un buffer in RAM e lo inserisce in quel BLOB
b) volendo, lo puoi fare anche in puro SQL:

INSERT INTO provapdf1 (id, type, document) VALUES
   ( 1, 'qualcosa', BlobFromFile('C:/Users/prova/pinko.pdf') );

just in case: ricordati che BlobFromFile() e' soggetta a
restrizioni di sicurezza; per abilitarla dovrai impostare
questa variabile di ambiente:
SPATIALITE_SECURITY=relaxed


> Considerata la mia poca esperienza è quasi certo che stia sbagliando 
> o
> saltando qualcosa, qualcuno potrebbe aiutarmi a capire dove?

che succede dopo che hai caricato il PDF nel BLOB ?
hai semplicemente spostato un po' di bytes da una parta
all'altra; ma restano semplicemente bytes.
almeno fino a quando non li passi ad un qualche PDF viewer,
che provvedera' opportunamente ad interpretare quel mucchietto
di bytes tirarci fuori un PDF visualizzabile.

cioe', in soldoni, ti dovrai comunque scrivere un plugin o
qualcosa di analogo per coordinare tutte le azioni; e ti
serve anche utilizzare un qualche componente PDF viewer.

personalmente non l'ho mai utilizzato, ma vedo che Poppler [1]
dovrebbe essere in grado di visualizzare un PDF in ambiente
Qt; e quindi non pare affatto impossibile sviluppare p.es.
un plugin per QGIS.
ma serve comunque un discreto lavoro di sviluppo, e serve
scrivere codice ad hoc.

[1] http://doc.qt.digia.com/qq/qq27-poppler.html

ciao Sandro


Maggiori informazioni sulla lista Gfoss