當我使用iTextSharp的生成PDF文件保存對話框,並將它們保存到磁盤是這樣的:基於http://www.mazsoft.com/blog/post/2008/04/30/Code-sample-for-using-iTextSharp-PDF-library.aspxiTextSharp的生成PDF文件會導致關閉
我打開任何PDF文件我
Document document = new Document(PageSize.LETTER, 50, 50, 80, 50);
FileStream fs = new FileStream(Ruta, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
PdfWriter PDFWriter = PdfWriter.GetInstance(document, fs);
EsquemaFormato PageEventHandler = new EsquemaFormato();
PageEventHandler.Title = TitleMiddle;
PageEventHandler.TitleHeaderFont = FontFactory.GetFont(BaseFont.HELVETICA, 12, Font.NORMAL);
PageEventHandler.TitleRightHeaderFont = FontFactory.GetFont(BaseFont.HELVETICA, 9, Font.NORMAL);
PageEventHandler.HeaderLeft = "Nombre";
PageEventHandler.HeaderRight = TitleRight;
PageEventHandler.RutaImagen = RutaImagen;
PageEventHandler.Cuerpo = Cuerpo;
PDFWriter.PageEvent = PageEventHandler;
document.Open();
document.Close();
剛創建,但是當我嘗試關閉它會導致「你想保存嗎?」對話框出現。對於不是用iTextSharp生成的PDF不會發生這種情況。
我錯過了什麼?我已經看到使用Response的解決方案,但我不使用它。 在此先感謝。
更新: 下面是一個簡單http://dl.dropbox.com/u/4582874/test.pdf
編輯: 通過以下布魯諾的鏈接我發現這個職位:iTextSharp + FileStream = Corrupt PDF file
這奏效了! 這是我工作的代碼現在:
public void CreatePDF(string TitleMiddle, string Ruta, string RutaImagen, string TitleRight, string Cuerpo)
{
using (MemoryStream ms = new MemoryStream())
{
Document document = new Document(PageSize.LETTER, 50, 50, 80, 50);
PdfWriter PDFWriter = PdfWriter.GetInstance(document, ms);
EsquemaFormato PageEventHandler = new EsquemaFormato();
PageEventHandler.Title = TitleMiddle;
PageEventHandler.TitleHeaderFont = FontFactory.GetFont(BaseFont.HELVETICA, 12, Font.NORMAL);
PageEventHandler.TitleRightHeaderFont = FontFactory.GetFont(BaseFont.HELVETICA, 9, Font.NORMAL);
PageEventHandler.HeaderLeft = "Nombre";
PageEventHandler.HeaderRight = TitleRight;
PageEventHandler.RutaImagen = RutaImagen;
PageEventHandler.Cuerpo = Cuerpo;
PDFWriter.PageEvent = PageEventHandler;
document.Open();
document.Close();
byte[] content = ms.ToArray();
using (FileStream fs = File.Create(Ruta))
{
fs.Write(content, 0, (int)content.Length);
}
}
}
您還可以發佈您的代碼生成的樣本pdf進一步檢查嗎? – mkl
複製與http://stackoverflow.com/questions/12569475/using-itextsharp-to-write-data-to-pdf-works-great-but-acrobat-reader-asks-do-y/12586773 –
布魯諾,我'm沒有使用GetBuffer() – rvidaurric