我在一个网址中有pdf文件,而我正在寻找的是点击 silverlight 创建一个按钮,下载此PDF文件
PDF的网址下载此文件(如果我们使用浏览器)女巫是在ASP.net中生成的,这里是代码:
var ms = new MemoryStream();
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
pdfDoc.Add(new Paragraph("Welcome to dotnetfox"));
iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(new Uri(url));
pdfDoc.Add(jpg);
pdfDoc.Close();
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "attachment;" +
"filename=demo.pdf");
Response.Buffer = true;
Response.Clear();
ms.Position = 0;
var bytes = ms.ToArray();
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.OutputStream.Flush();
答案 0 :(得分:0)
您发布此问题的人犯了类似的错误:How to convert a pdf generating in response.outputStream to a Base64 encoding
首先告诉iTextSharp将PDF语法直接写入Outputstream
的{{1}}:
Response
此行中PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
自动关闭:
Outputstream
此pdfDoc.Close();
行后面的所有内容都发生得太晚了:
Close
后,您无法设置标题。Response.OutputStream
关闭后,您无法添加额外的内容。此外,您正在将对象Response.OutputStream
转换为字节数组,但我们没有看到您在任何位置向此ms
添加任何字节。
最后,问题很严厉。