获取当前页面MVC 5的pdf
Get pdf of current page MVC 5
我正试图在视图中获取一个div的pdf。
我正在执行以下操作:我得到元素,对其html进行uri编码,然后通过ajax将其传递给一个方法:
AJAX:
function getPDF(html) {
$.ajax({
type: "POST",
url: "@Url.Action("printPage")",
data: { html: encodeURIComponent(html) }
}).done(function (result) {
window.open("data:application/pdf; " + result);
$("#printArea").html(result);
}).fail(function (data) {
alert("Failed");
});
}
方法:
[HttpPost]
public void printPage(string html)
{
String decoded = System.Uri.UnescapeDataString(html);
var cd = new System.Net.Mime.ContentDisposition
{
FileName = "something.pdf",
Inline = false
};
Response.AppendHeader("Content-Disposition", cd.ToString());
var mem = Bcs.Common.Utilities.HTMLtoPDF.getPDF(decoded);
//var base64EncodedPDF = System.Convert.ToBase64String(pdfByteArray);
Response.BinaryWrite(mem.ToArray());
//return File(mem, System.Net.Mime.MediaTypeNames.Application.Octet);
}
最后,我得到了一个弹出窗口来打开pdf,但它不会打开,根据adobe acrobat的说法,它已经损坏了。
我尝试将html作为permeter发送到该方法,但permeter太长
HTTP Error 404.15 - Not Found The request filtering module is configured to deny a request where the query string is too long.
做这件事的好方法是什么。
public JsonResult printPage(String html)
{
String decoded = System.Uri.UnescapeDataString(html);
var cd = new System.Net.Mime.ContentDisposition
{
FileName = "something.pdf",
Inline = false
};
var mem = Bcs.Common.Utilities.HTMLtoPDF.getPDF(decoded);
mem.Flush();
mem.Position = 0;
String b64Converted = Convert.ToBase64String(mem.ToArray());
return Json(b64Converted, JsonRequestBehavior.AllowGet );
系统。网哑剧表演媒体类型名称。应用Octet);}
然后在视图中:
$.ajax({
type: "POST",
url: "@Url.Action("printPage")",
data: { html: encodeURIComponent(html) },
}).done(function (result) {
$("#printArea").append('<a href="data:application/pdf;base64,' + result + '">PDF</a>');
}).fail(function (data) {
alert("Failed");
});
显然很容易只需对pdf进行base64处理,并在json响应时发送。
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 将Javascript数组发送到控制器ASP.NET MVC
- 如何将PDF作为二进制文件传递到window.open()
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何在MVC中使用jQuery在文本框旁边显示文本
- MVC 3页面导航和使用javascript传递参数
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- javascript.点击显示嵌入的pdf
- 获取当前页面MVC 5的pdf
- c# mvc nreco HtmlToPdfConverter 问题将 html 文档转换为 pdf
- 使用spring mvc和apache pdf框从UI下载的空和破碎的pdf文件
- Asp.net MVC 4下载PDF不工作
- FileStreamResult在AJAX调用MVC后不请求保存PDF
- 如何使用JQuery / ASP从PDF文件生成缩略图.净MVC
- 打印pdf隐藏iframe javascript/jquery c# MVC
- 在 MVC 4 中以 zip 文件下载 pdf 文件
- 从 MVC 3 控制器将 JavaScript 注入到 PDF
- 使用JSON和mvc返回PDF到浏览器