Costruire un PDF usando ASP
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Creiamo e salviamo un file fdf dinamicamente sul server: il metodo FDFSaveToFile
<%
Response.Buffer = true
%>
<html>
<head><%
Response.ContentType = "text/html"
%>
<title>Primo esempio: Metodo FDFSaveToFile</title>
</head>
<%
' ** 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")
' ** Valorizzo come meglio credo altre variabili
ValoreSestoCampo = "Questo campo è visibile, ma non stampabile. Istante di generazione della pagina: "&Now()
' ** Creiamo un oggetto fdf ToolKit ActiveX
Set FdfAcx = Server.CreateObject("FdfApp.FdfApp")
' ** Creiamo un documeto fdf
Set myFdf = FdfAcx.FDFCreate
' ** Riempiamo i campi con i relativi valori
myFdf.fdfsetvalue "NomePrimoCampo", ValorePrimoCampo, False
myFdf.fdfsetvalue "NomeSecondoCampo", ValoreSecondoCampo, False
myFdf.fdfsetvalue "NomeTerzoCampo", ValoreTerzoCampo, False
myFdf.fdfsetvalue "NomeQuartoCampo", ValoreQuartoCampo, False
myFdf.fdfsetvalue "NomeQuintoCampo", ValoreQuintoCampo, False
myFdf.fdfsetvalue "NomeSestoCampo", ValoreSestoCampo, FalseLa funzione FDFSetValue ha la sintassi: Sub FDFSetValue(fieldName As String, newValue As String) dove fieldName è la stringa rappresentante il nome completo del campo (per esempio, employee.name.last) newValue è la stringa da usare come nuovo valore
' ** E' quì che indichiamo, nel fdf che stiamo creando, quale file
' ** pdf dovra' essere richiamato. L'indirizzo deve essere fornito
' ** come URL. Per indirizzamenti in relativo approfondite sulla
' ** documentazione. In questo caso scelgo di salvare il file fdf
' ** sul server e di creare un link su cui l'utente puo' cliccare.
' ** E' anche possibile dirigere direttamente l'fdf creato verso il
' ** buffer. Vi rimando alla documentazione del metodo FDFSavetoBuf
' ** e soprattutto all'esempio successivo.
' ** IL RESTO DEL CODICE NON NECESSITA altRE MODIFICE, MA E'
' ** NECESSARIO INDICARE QUI' IL PERCORSO VIRTUALE PRECISO PERCHE'
' ** VENGA RAGGIUNTO IL PDF.
myFDF.fdfSetFile "http://localhost/test/asppdf/test.pdf"
' ** Salvo il file fdf generato come CheckThis.fdf.
' ** Per evitare che due persone possano creare due file fdf con lo
' ** stesso nome dovrete decidere una convenzione o generare parte
' ** del nome in maniera univoca. Facendo finta che due richieste nello
' ** stesso secondo non siano possibili genero il nome come
' ** gGIORNOhORAmMINUTOsSECONDO.fdf il che mi risolve anche eventuali
' ** problemi di caching di Acrobat e del browser.
' ** E' inoltre necessario fornire un percorso "fisico" e che l'utente
' ** IUSR_nomeserver abbia i diritti di scrivere in quel percorso.
' ** Tutti problemi che non nascono se scegliamo di dirigere il fdf
' ** direttamente al buffer, dunque non approfondisco soluzioni piu'
' ** articolate per ripulire dai file creati.
' ** Immaginando di essere in C:\inetpub\wwwroot\test\asppdf
' ** il server.mappath("./") restituirà C:\inetpub\wwwroot\test\asppdf
FisicalPathCompleto = Server.MapPath("./")
NomeFile="g"&Day(Now())&"h"&Hour(Now())&"m"&Minute(Now())&"s"&second(Now())&".fdf"
myFDf.FDFSaveToFile FisicalPathCompleto&"\"&NomeFile
%>
<body>
<%
' ** A questo punto puntiamo il file con il percorso "virtuale" relativo
Response.Write("<a href="&NomeFile&">Per vedere il pdf compilato premi qui</A>")
' ** E infine non scordiamoci di fare un poco di pulizia.
myfdf.fdfclose
set fdfacx = nothing
%>
</body>
</html>3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Sullo stesso argomento
Commenti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Stampa
Download



