961 messaggi dal 29 aprile 2002
ciao, uso iTextSharp per la creazione di un documento pdf al volo, quindi usando il Response.OutputStream.
Il documento lo creo senza problemi ma a volte capita che mi esce fuori questo errore:

Errore durante l'apertura del documento impossibile trovare questo file

in un finestra di Acrobat reader. Qualcuno ha avuto per caso lo stesso problema?
Poi un'altra cosa:
Il documento lo creo in una pagina che ho chiamato creapdf.aspx, quindi quando punto a questa pagina viene creato il documento, ma purtroppo mi si apre in una finestra del browser diversa da quella contiene il codice per la creazione del documento.. lasciandomi quindi questa pagina che crea il documento vuota (e non è bello), qualcuno può indicarmi come faccio ad aprire il documento nella stessa pagina che lo crea? (questa sarebbe la soluzione ideale).. dimenticavo, il codice per creare il documento lo scrivo nell'evnto load della pagina..
Ciao ;)
961 messaggi dal 29 aprile 2002
up
non ci credo che nessuno lo usa :)
97 messaggi dal 04 ottobre 2004
Per il problema di aprire il file nello stesso browser, devi dirgli che il contenType è un PDF

Response.ContentType = "application/pdf";
Response.BinaryWrite(byte del tuo file); 
Response.Flush(); 
Response.End();


Tieni presente che se tu il file PDF lo crei dinamicamente, non ti serve salvarlo su disco, puoi cercare (non conosco bene la libreria di cui parli) un metodo che ti restituisca il contenuto binario di quello che è il tuo file PDF e passare questo insieme di byte al metodo BinaryWrite dell'oggetto Response e quindi questo di consente di farlo anche nell astessa pagina dell'elaborazione.

ciao
Daniele
167 messaggi dal 29 dicembre 2002
Sto usando itextsharp..e devo dire che funziona alla grande....
ma sembra proprio che non si possa fare a meno di salvarlo su disco.
per ora faccio in modo di salvare il file nominandolo con sessione-dta-ora e poi richiamandolo con response.redirect.



dim document as new Document(PageSize.A4)

PdfWriter.getInstance(document, new FileStream("C:\test.pdf", FileMode.Create))
document.open()
document.Add(new Paragraph("pagina di prova"))
Document.NewPage

document.Add(new Paragraph("questo lo scrivo sulla seconda pagina"))


document.Close()
97 messaggi dal 04 ottobre 2004
Mi sono spulciato un po' di documentazione di iTextsharp, in particolare per alcuni metodi statici forniti da PDFWriter

http://itextdocs.lowagie.com/docs/com/lowagie/text/pdf/PdfWriter.html#getInstance(com.lowagie.text.Document,%20java.io.OutputStream)

ed ho trovato che si può impostare come outputstream direttamente l'outputstream della pagina


Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(5));
Response.ContentType = "application/pdf";
Response.AddHeader("Content-disposition", "inline; filename=nomeMioPdf.pdf");

Document document = new Document();
try
{
//Comunico che l'0utput per il mio document è l'outputstream
PdfWriter.GetInstance(document, Response.OutputStream);
document.Open();
// serie di document.Add(...) per creare il PDF
}
catch(Exception exp)
{
// se si verifica un eccezione reimposto il content type e la visualizzo
Response.Clear();
Response.ContentType ="text/plain";
Response.Write(exp.ToString());
}
finally
{
document.Close();
}
Response.Flush();
Response.End();
}


Ciao
Daniele
167 messaggi dal 29 dicembre 2002
grazie daniele... il tuo intervento è veramente prezioso.

Per caso conosci anche un metodo per creare il pdf partendo dall'html della pagina?
97 messaggi dal 04 ottobre 2004
Ho trovato questo, magari ti torna utile:

HTML to PDF converter, in C# with iTextSharp

ciao
Modificato da milaus1979 il 25 gennaio 2006 15.22 -
167 messaggi dal 29 dicembre 2002
ti ringrazio , quel link lo avevo trovato anche io, ma non funziona
HtmlToPdfConverter() non esiste, ho provato a carcarla con object browser ma niente da fare, non c'è.
e voglio proprio aggiungere una cosa , non mi è mai successo che un codice scaricato da codeprojet funzionasse.. (la dovevo dire...), forse solo mia sfortuna...

visto che ci siamo approfitto della tua gentilezzza.

ora creo il documento utilizzando outstream.
ed aggiungo alla pagina

Response.AddHeader("Content-disposition", "inline; filename=" & PdfFile & ".pdf")

e visualizzo ildocumento
ma quando cerco di scaricare il file mi propone il nome della pagina e non quello che gli ho passato .
magari se hai un suggerimento..

grazie ancora

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.