SelectPdf 无法正确生成需要看起来像我们 ASPX 页面的渲染版本的 pdf
本文关键字:ASPX 我们 pdf 版本 看起来 SelectPdf | 更新日期: 2023-09-27 18:37:12
以下是有关我的开发环境的信息:
-Microsoft Visual Studio Professional 2013
-.NET Framework 4.0
-jquery.min.js ( 1.11.3 )
- jquery-ui.min.js ( 1.11.2 )
-Select.HtmlToPdf (2.0.1.0)
-jQuery DataTables (1.10.7)
在我们的应用程序中,我们有一个 ASPX 页面,其中包含动态填充的 jquery DataTables,以及一个在运行时使用 jquery 动态生成的图形。
我们希望使用 Select.HtmlToPdf (2.0.1.0) 来创建 pdf 文件,当它在 Web 浏览器中呈现时,该文件看起来像前面提到的 ASPX 页面。
在我们的 ASPX 页面中,我们有一个下载 pdf ASPX 服务器端按钮,该按钮调用在 ASPX 代码隐藏文件中定义的以下 C# 方法:
public void generatePDF()
{
// instantiate a html to pdf converter object
HtmlToPdf converter = new HtmlToPdf();
var url =
HttpContext.Current.Server.MapPath("~/hos/pdf/displayTemplate.html");
Console.WriteLine(url.ToString());
SelectPdf.GlobalProperties.HtmlEngineFullPath =
HttpContext.Current.Server.MapPath("~/hos/pdf/SelectPdfAuxiliaries/Select.Html.dep");
PdfDocument doc = converter.ConvertUrl(url.ToString());
// save pdf document
doc.Save(Response, false, "displayContent.pdf");
}
displayTemplate.html 包含将调用 ASHX 处理程序的 AJAX jquery 函数:
function GetHandlerTestJS() {
var testHandlerData = new FormData();
testHandlerData.append("handlerTestId", "1");
$.ajax({
type: "Post",
contentType: "application/json; charset=utf-8",
url: "testHandler.ashx",
enctype: 'multipart/form-data',
contentType: false,
processData: false,
data: testHandlerData,
dataType: "json",
success: function (data) {
$('#handlertestDebug').html(data);
//getSignatureImage();
},
error: function (Result) {
$('#handlertestDebug').html("error in handler test"); $('#handlertestResultDebug').html(Result);
}
//beforeSend: function () { $('#loader').show() }, //complete: function () { $('#loader').hide(); }
});
}
$(function () {
$(document).ready(function () {
console.log("Inside Start");
GetHandlerTestJS();
});
});
问题是在使用 Select.HtmlToPdf (2.0.1.0) 的 API 方法称为 ConvertUrl 时无法调用 ASHX 处理程序:
PdfDocument doc = converter.ConvertUrl(url.ToString());
有人可以告诉我我需要对上述代码进行哪些更改,以便它将使用 Select.HtmlToPdf (2.0.1.0) 的 API 从 html 调用处理程序?
您是否尝试使用完整的绝对路径来测试Handler.ashx?