Asp.net 关闭时,iTextSharp生成的PDF导致保存对话框
我正在使用iTextSharp生成PDF文档,并将其保存到磁盘,如下所示:Asp.net 关闭时,iTextSharp生成的PDF导致保存对话框,asp.net,itextsharp,Asp.net,Itextsharp,我正在使用iTextSharp生成PDF文档,并将其保存到磁盘,如下所示: Document document = new Document(PageSize.LETTER, 50, 50, 80, 50); FileStream fs = new FileStream(Ruta, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); PdfWriter PDFWrit
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();
基于
我打开了我刚创建的任何PDF文件,但当我试图关闭它时,会出现一个“是否保存?”对话框。这不会发生在不是使用iTextSharp生成的PDF中
我错过了什么?我见过使用响应的解决方案,但我没有使用它。
提前谢谢
更新:
这是一个样本
编辑:
通过浏览布鲁诺的链接,我发现了这篇文章:
成功了!
这是我现在的工作代码:
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);
}
}
}
您是否在没有FileAccess.ReadWrite、FileShare.ReadWrite属性的情况下尝试过它 我每天都用itextSharp创建PDF,从来没有遇到过这个问题——你们的代码和我的代码之间的主要区别是我没有这些
我怀疑文件共享使文档处于打开状态,等待有人最终通过保存来关闭它?您是否也可以发布由代码生成的示例pdf以供进一步检查?与Bruno重复,我没有使用GetBuffer()mkl,如何在此处发布示例pdf?我找不到附加文件选项FileStream fs=new FileStream(Ruta,FileMode.OpenOrCreate);//我也遇到同样的问题关闭你的文件流。或者创建与GetInstance内联的新文件流。GetInstance(文档,新文件流(Ruta,FileMode.OpenOrCreate));它也起作用了(我已经用另一个解决方案编辑了我的帖子),谢谢!