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 调用处理程序?

SelectPdf 无法正确生成需要看起来像我们 ASPX 页面的渲染版本的 pdf

您是否尝试使用完整的绝对路径来测试Handler.ashx?