我试过了两个,但仍然无法正常工作
iTextSharp + FileStream = Corrupt PDF file
iTextSharp is producing a corrupt PDF
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
{
//abre o documento para poder editar
document.Open();
//Adiciona os campos de assinatura
document.Add(Assinatura());
//fecha o documento ao finalizar a edição
document.Close();
//Prepara o download
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
Response.Clear();
Response.ContentType = "image/pdf";
//Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;
filename=ControleDePonto.pdf");
Response.Buffer = true;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(bytes);
Response.End();
Response.Close();
}
我做错了什么?
答案 0 :(得分:4)
使用PdfWriter将PDF写入MemoryStream。
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
//Adiciona os campos de assinatura
document.Add(Assinatura());
//fecha o documento ao finalizar a edição
document.Close();
//Prepara o download
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename=ControleDePonto.pdf");
Response.Buffer = true;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(bytes);
Response.End();