Costruire un PDF usando ASP

3 pagine in totale: <<Indietro 1 2 [3]

Proviamo invece a spedire sul buffer direttamente il file FDF (è importante che dopo il codice non vi sia niente altro, è per questo che ho inserito un response.end che chiude il flusso; editor intelligenti quali FP98 tenderebbero sicuramente, rieditando la pagina attraverso di loro, ad aggiungere i tag <HTML> <BODY> etc etc, fornendo all'acrobat reader una versione corrotta del fdf e scatenando un errore). Ricordatevi che se volete evitare che sul client compaia il messaggio "salva con nome" bisogna impostare sul server il Mime Type per l'FDF come indicato in precedenza.

<%
' ** tutto il codice deve essere in testa al file asp, dunque non deve
' ** essere preceduto da nulla, altrimenti avremmo il classico errore da
' ** "header già impostati"
Response.buffer=True
Response.ContentType = "application/vnd.fdf"
' ** Ricevo I dati che sono stati inseriti nella pagina precedente e
' ** inviati con il metodo post.
ValorePrimoCampo = Request.form("NomePrimoCampo")
ValoreSecondoCampo = Request.form("NomeSecondoCampo")
ValoreTerzoCampo = Request.form("NomeTerzoCampo")
ValoreQuartoCampo = Request.form("NomeQuartoCampo")
ValoreQuintoCampo = Request.form("NomeQuintoCampo")
' ** Creo dinamicamente altri Valori
ValoreSestoCampo = "Questo campo è visibile, ma non stampabile. Istante di generazione della pagina: "&Now()
' ** Creo un oggetto fdf ToolKit ActiveX
' ** ed, utilizzando il metodo FDFCreate, creo un FDF
Set FdfAcx = Server.CreateObject("FdfApp.FdfApp")
Set FDF = FdfAcx.FDFCreate
' ** Riempio i campi del documento con i valori desiderati
FDF.FDFSetValue "NomePrimoCampo", ValorePrimoCampo, False
FDF.FDFSetValue "NomeSecondoCampo", ValoreSecondoCampo, False
FDF.FDFSetValue "NomeTerzoCampo", ValoreTerzoCampo, False
FDF.FDFSetValue "NomeQuartoCampo", ValoreQuartoCampo, False
FDF.FDFSetValue "NomeQuintoCampo", ValoreQuintoCampo, False
FDF.FDFSetValue "NomeSestoCampo", ValoreSestoCampo, False
' ** Indico al fdf il percorso del file pdf in cui inserire i dati
' ** Sara' l'acrobat sul client a scaricare il pdf e riempirlo come
' ** indicato dal fdf (sono ripetitivo eh?).
' ** IL RESTO DEL CODICE NON NECESSITA altRE MODIFICE, MA E'
' ** NECESSARIO INDICARE QUI' IL PERCORSO VIRTUALE PRECISO PERCHE'
' ** VENGA RAGGIUNTO IL PDF.
FDF.FDFSetFile "http://localhost/test/asppdf/test.pdf"
' ** Dirigo l'fdf risultante direttamente sul Buffer verso il browser del client
Response.BinaryWrite FDF.FDFSaveToBuf
FDF.FDFClose
set FdfAcx = nothing
' ** forzo il server ad ignorare qualunque altra stupidagine sia stata
' ** inserita a seguire
Response.end
%>

Concludendo

Mi rendo conto di aver sorvolato su alcune questioni non banali (quali l'utilizzo dei vari tipi di campo per le form nei pdf), ma spero di avervi dato lo spunto per approfondire un nuovo strumento, ed osservando il pdf allegato vi accorgerete in fondo è così.

D'altronde per creare i file pdf è necessario acquistare il pacchetto Adobe Acrobat e, se l'avete fatto, dubito che non vi siate messi a "giocare" con la creazione di form. Le applicazioni di un tale approccio ai pdf completati attraverso gli fdf sono innumerevoli.

Spero solo di avervi convinto che il carico lato server è davvero contenuto e per concludere vi ricordo che tutto quanto abbiamo fatto rimane lato client, squisitamente multipiattaforma, in pieno spirito Acrobat.

Per le reference sugli oggetti e sul FDF ToolKit vi consiglio: FDFToolKit Overview e FDFToolKit Reference (nella sezione Toolkit for ActiveX) che potrete trovare al sito sopra indicato. Il pdf allegato è stato creato con Acrobat, ma non ho testato la sua compatibilità con l'Acrobat Reader 3.

3 pagine in totale: <<Indietro 1 2 [3]

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC