我正在使用第三方软件从html文档呈现PDF。我创建了一个小型测试项目,并使用OnClick
的{{1}}事件,我能够从目录中读取html文档,并将其呈现为PDF,没有任何问题。
响应创建如下:
<asp:Button>
当我查看Chrome中的响应时,我可以看到正确设置了Content-Type:
内容处置:直列;文件名= HtmlToPdf.pdf;
的Content-Length:101482
内容类型:应用/ PDF
我已尝试将上述内容转移到我当前的项目中。唯一的区别是,我在DevExpress网格视图中使用自定义按钮而不是HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("Content-Disposition",
String.Format("{0}; filename=Test.pdf;", "inline" ));
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
HttpContext.Current.ApplicationInstance.CompleteRequest();
。我最初在回调面板中处理了自定义按钮单击,但未设置Content-Type。在Chrome中查看响应证明了这一点:
内容处置:直列;文件名= 5.pdf;
内容编码:gzip
的Content-Length:149015
内容类型:文本/无格式;字符集= UTF-8
我也尝试使用<asp:Button>
事件,但仍没有设置Content-Type。
任何人都有任何想法,为什么我不能在上述场景中设置Content-Type?
答案 0 :(得分:6)
你可以尝试
HttpResponse response = HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType =&#34; application / pdf&#34 ;;
response.AddHeader("Content-Disposition", "attachment; filename=" + yourFileName + ".pdf");
stream.WriteTo(response.OutputStream);
response.Flush();
response.End();
希望它有效:)
答案 1 :(得分:0)
.content{
width: 240px;
overflow-x: scroll;
overflow-y: hidden;
max-height:100px;
height:100px;
display:flex;
}
.div1{
height: 300px;
min-width: 100px;
border: solid 1px #000000;
background-color: #0066CC;
}
通过在页面中添加上述行,load / init方法将添加http响应头。