186 messaggi dal 25 maggio 2007
Ciao a tutti.
Sto realizzando una piccola applicazione per la generazioni di contratti in PDF.
Ho una Gridview con tutti i dati dei contratti e vorrei fare in modo che cliccando su un tasto vengano posizionati i valori dentro gli spazi adatti sul documento in PDF.
Il formato del documento in PDF è sempre uguale, dovrei solo inserire i dati negli oppurtunii campi.

Spero di essere stato chiaro.
Vi ringrazio anticipatamente.
jampicoll wrote:
Spero di essere stato chiaro.

più o meno. comunque, per manipolare PDF puoi usare iTextSharp, che però ha un modello ad oggetti tutto suo.
http://itextsharp.sourceforge.net/
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
69 messaggi dal 19 febbraio 2010
Ciao jampicoll, come correttamente ti ha scritto Daniele esiste questa libreria ITextSharp gratuitamente scaricabile che io sto cercando di imparare ad usare da un giorno (quindi sono un SOLO un passo più avanti di te).

Confermo che ha un sacco di funzionalità.

Da quello che ho capito il tuo modello di fattura è sempre uguale giusto? Oppure cambia di volta in volta?

perchè se è sempre uguale puoi crearti con OpenOffice o Word o Acrobat Pro un Template, cioè un modello .pdf con dei campi (correttamente nominati) vuoti in cui poi andrai ad inserire i tuoi valori lato Sw.

il codice per inserie i valori lato SW è molto semplice e puoi trovare a questo link un esempio:

http://blogs.ugidotnet.org/yorik/archive/2009/05/18/generazione-documenti-pdf-da-template-pdf-forms-con-itextsharp.aspx

Se invece devi creare da 0 il documento .pdf lato SW ... beh allora devi scrivere un pò di codice.
186 messaggi dal 25 maggio 2007
Si il modello è sempre uguale. Devo solo riempire i campi con i dati dell'utente (nome, cognome,....)
Devo quindi creare il modello prima?
E' piu semplice farlo in word o creare il modello in pdf?
69 messaggi dal 19 febbraio 2010
Si devi creare il modello. Se lo crei in word/Open Office dopo devi aprirlo con AcrobatPro e abilitare i diritti di utilizzo in Acrobat Reader; se lo crei in Acrobat lo fai direttamente da li.

Io l'ho creato con Open Office, poi l'ho esportato in pdf (abilitando l'opzione "con Tag"), poi ho scaricato la versione Trial di Acrobat Pro per abilitare i diritti per la versione Reader.

Il più sta nel creare correttamente il Modello, poi dopo inserire i dati da Sw è molto semplice e veloce.
186 messaggi dal 25 maggio 2007
Ho creato queste piccole righe di codice:
protected void Button1_Click(object sender, EventArgs e)
{

string pdfTemplate = @"c:\scheda.pdf";
string newFile = @"c:\scheda.pdf";

PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;

pdfFormFields.SetField("NomeDipendente", "Pinco Pallo s.r.l.");
pdfFormFields.SetField("Indirizzo", "via delle Fontane Secche, 1 - Gotham City");
pdfFormFields.SetField("RegioneProv", "0123456789");


pdfStamper.FormFlattening = true;
pdfStamper.Close();
}

Ho creato il modello scheda.pdf ma ricevo questo messaggio di errore:
Rebuild failed: trailer not found.; Original message: PDF startxref not found.

alla riga:
PdfReader pdfReader = new PdfReader(pdfTemplate);

cosa è l'errore?


Modificato da jampicoll il 23 aprile 2010 16.45 -
69 messaggi dal 19 febbraio 2010
prova a creare una cartella PDF nel tuo progetto e poi a leggere il file da li, anche a me dava lo stesso problema e forse perchè asp non ha i diritti per salvare file direttamente in C: ...

69 messaggi dal 19 febbraio 2010
Altro dettaglio: queste due cose non possono essere uguali:

string pdfTemplate = @"c:\scheda.pdf";
string newFile = @"c:\scheda.pdf";

cambia il nome del newFile, altr sovrascrivi e poi non puoi più editare il Template.

Il template devi usarlo sempre e solo come modello in ingresso, il nuovo file deve essere chiamato in modo diverso.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.