Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Creazione documento WORD

    Ho la necessità di creare dalla mia pagina asp un documento word e ho trovato un esempio(che riporto) e che ho adattato alla mia applicazione.



    PROBLEMA: Quando eseguo, o meglio cerco di eseguire questo script, non ricevo nessuna risposta dal server come se fosse entrato in un loop infinito. Ho provato, pertanto, a frammentare lo script e ho notato che il problema è l'apertura del file (OpenTextFile)


    Come posso risolvere questo problema?


    <%@ Language=VBScript %>
    <%
    'Nome del modulo da utilizzare
    'NomeReport= request("NomeReport")

    'codice del movimento
    'Movimento=request("Movimento")

    percorso= "/webben/moduli/Modulo.rtf"
    'Per leggere il documento utilizzo FSO
    Set fso = CreateObject("Scripting.FileSystemObject")

    'doc.rtf e' il documento di base che contiene i tag
    'Set f = fso.OpenTextFile(Server.MapPath(NomeReport & ".rtf"), 1)
    Set f = fso.OpenTextFile(Percorso, 1)

    'Leggo tutto il contenuto del documento
    Documento = f.ReadAll

    'chiudo subito
    f.Close
    Set f = Nothing

    'ora sostituisco i TAG con i campi contenuti nella form

    'Nome = request("Nome")
    'Cognome = request("Cognome")

    Nome = "XXX"
    Cognome = "YYY"

    Documento = Replace(Documento, "[Nome]", Nome)
    Documento = Replace(Documento, "[Cognome]", Cognome)

    'creo un nuovo documento con Nome e Cognome reali al posto dei TAG
    percorso= "/webben/Doc/Modulo.rtf"
    Set f = fso.OpenTextFile(Percorso, 2, True)

    'chiudo tutto
    f.Write Documento
    f.Close
    Set f = Nothing
    Set fso = Nothing
    %>

  2. #2
    Utente bannato
    Registrato dal
    Jun 2000
    Messaggi
    160
    Stai lavorando in locale?
    Se si, hai per caso Norton Antivirsu o qualche altro antivirus che blocca l'esecuzione di script che agiscono sui files?

  3. #3
    Si, sto lavorando in locale e ho installato McAfee come antivirus. Di solito mi chiede sempre se eseguire o meno script...

    Dici che dipenda da quello?

  4. #4
    usa questo codice cambiando opportunamente il nome del file da esportare......e il contenuto......

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Esporta In WORD</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    <%
    response.buffer=true
    response.contenttype="application/vnd.ms-word"
    response.addheader "content-disposition","inline;filename=nome_del_file.doc"
    %>
    '******************************
    QUI SCRIVI IL CODICE HTML E ASP CHE TI SERVE
    '*********************************
    <%
    response.flush
    response.end
    %>
    </body>
    </html>
    ciao ciao

  5. #5
    Scusate se riesumo il post, ma ho un problema con uno script simile.
    In pratica uso un "modello" esistente nel quale vado a sostituire dei campi fissi con quanto presente un db.
    la cosa funziona perfettamente se devo stampare un solo foglio, ma se partendo da un modello base devo stampare più fogli prendendo tanti record in input (es una stampa etichette con molti nominativi), come faccio a scirvere più pagine ???

  6. #6
    anche io ho avuto questo problema....in effetti la soluzione sarebbe inserire un'interruzione di pagina....però non so come fare....ho provato a cercare qualcosa ma non ho mai trovato niente riguardo a questa cosa......

  7. #7
    Si esatto, ci sto arrivando infatti.
    Sono andato avedere con un editor di testo il file RTF che viene generato in caso di multipagina e c'è una riga diversa per andare a capo.

    Una volta letto il modello, se c'è da stampare più di una pagina bisogna fare una replace da
    codice:
    \par }}
    a

    codice:
    \par }\pard \qr \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page
    Io l'ho provato con 2 pagine efunziona, adesso vedo di testarlo meglio con più fogli.

  8. #8

    Riutilizzo il topic...

    Originariamente inviato da wildsurf
    Scusate se riesumo il post, ma ho un problema con uno script simile.
    In pratica uso un "modello" esistente nel quale vado a sostituire dei campi fissi con quanto presente un db.
    la cosa funziona perfettamente se devo stampare un solo foglio, ma se partendo da un modello base devo stampare più fogli prendendo tanti record in input (es una stampa etichette con molti nominativi), come faccio a scirvere più pagine ???
    Ciao wildsurf, cercando una cosa ho trovato questo topic e siccome a breve dovrei fare una cosa simile alla tua (cioè riempire con un modello word con campi db), non è che potresti postare il codice del tuo script o segnalarmi qualche sito dove posso trovare esempi simili?

  9. #9
    Non è proprio facilissimo da spiegare, cercherò di farmi capire.
    Il mio problema era stampare via web una serie di buste, utilizzando un modello esistente e un elenco di nominativo proveniente da db.
    In pratica una sorta di stampa unione.
    Per prima cosa ho realizzato il documento .RTF contenente i campi fissi:



    Poi ho aperto con un editor di testo il file rtf, per capire quali fossero i caratteri che gestivano i miei campi fissi.
    Una volta identificati, li ho riscritti nella mia pagina asp, per effettuare il salto pagina.
    Questo è parte del codice che ho estrapolato dalla mia pagina, ma mi rendo conto che così è poco più di un copia-incolla, caso mai te lo spiegherò meglio quando ne avrai bisogno:

    codice:
    <%
    'Per leggere il documento utilizzo FSO 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    
    ' questo e' il documento di base che contiene i tag 
    Set f = fso.OpenTextFile(Server.MapPath("word/modellook.rtf"), 1) 
    
    'Leggo tutto il contenuto del documento 
    Documento = f.ReadAll 
    documento2=documento
    
    ' la parte fissa serve per stampare le pagine successive 
    partefissa="\par "
    partefissa=partefissa&"\par }\pard\plain \s1\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\fs24\lang1040\langfe1040\cgrid\langnp1040\langfenp1040 {"
    partefissa=partefissa&"\par }\pard\plain \qr \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1040\langfe1040\cgrid\langnp1040\langfenp1040 {"
    partefissa=partefissa&"\par "
    partefissa=partefissa&"\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {"
    partefissa=partefissa&"\par "
    partefissa=partefissa&"\par "
    partefissa=partefissa&"\par "
    partefissa=partefissa&"\par "
    partefissa=partefissa&"\par \tab \tab \tab \tab \tab \tab \tab \tab \tab Gentile Cliente"
    partefissa=partefissa&"\par \tab \tab \tab \tab \tab \tab \tab \tab \tab }{\b ANAGRAFICA"
    partefissa=partefissa&"\par }{\tab \tab \tab \tab \tab \tab \tab \tab \tab INDIRIZZO"
    partefissa=partefissa&"\par \tab \tab \tab \tab \tab \tab \tab \tab \tab COMUNE"
    partefissa=partefissa&"\par }}"   ' questo valore chiude il documento
    
    'chiudo subito 
    f.Close 
    Set f = Nothing 
    
    Set f = fso.OpenTextFile(nome_doc_output, 2, True)  'apro il file di output
    
    ' QUI INIZIA IL LOOP PER LEGGERE IL FILE GUIDA DEI NOMINATIVI DA STAMPARE E ACCODARE TUTTO IN UNN VARIABILE UNICA 
    	 		contark=contark+1
    			anagrafica 			= rs("xx") 
    			indirizzo  			= rs("yy")
    			comune		 			= rs("zz")
    			if contark>1 then
    				 Documento = Replace(Documento, "\par }}", "\par }\pard \qr \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page ") 
    				 documento = documento&partefissa
    			end if	 				 
     									
    			Documento = Replace(Documento, "ANAGRAFICA", anagrafica) 
    			Documento = Replace(Documento, "INDIRIZZO", indirizzo) 
    			Documento = Replace(Documento, "COMUNE", comune) 			
    ' FINE LOOP DI LETTURA FILE GUIDA 
    
    f.Write Documento 
    
    f.Close 
    Set f = Nothing 
    Set fso = Nothing 
    Set fso2 = Nothing 
    %>

  10. #10
    Grazie della spiegazione.
    Quando apro il file di output mi esce messaggio di errore "Autorizzazione negata", anche se il file è in una cartella del server su cui ci sono tutte le autorizzazioni.
    Per il momento mi sa che uso la soluzione di gensole, poi appena ho più tempo provo a rilavorare sul modello perchè lo trovo più interessante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.