gpt4 book ai didi

javascript - 获取页面的整个 HTML + CSS + JS,并将其发送到 Web 服务

转载 作者:行者123 更新时间:2023-12-03 05:42:22 24 4
gpt4 key购买 nike

我正在使用 NReco.PdfConverterwkhtml 用 C# 编写一个 Web 服务,将网页转换为 PDF 文件。

网页(在 SharePoint 上)需要授权,并且还包含用户需要填写的表单,因此 Web 服务不能简单地访问该页面的 URL 并下载它。

JavaScript 和 CSS 文件对于正确呈现表单也很重要,其中包括来自 SharePoint 的数十个 JS 文件和样式表。

到目前为止,我最好的想法是:

  • 当用户点击“生成 PDF”时,JavaScript 会将整个当前页面转换为单个字符串(内联附加 CSS 文件和 JS 文件);

  • POST 使用 $.ajax() 将该字符串发送到 Web 服务。

  • 使用 NReco.PdfConverter,将该字符串转换为 PDF 并将其保存到文件中非常简单:

    var converter = new HtmlToPdfConverter
    {
    Margins = new PageMargins
    {
    Top = 0,
    Bottom = 0,
    Left = 0,
    Right = 0
    },
    CustomWkHtmlArgs = "--print-media-type"
    };
    converter.GeneratePdf(htmlContent);

如何在浏览器中生成单页 HTML(包括复选框的状态、表单内的文本等)?

这是非常复杂的事情吗?有人知道另一种解决方案吗?

最佳答案

您可以使用适当的 wkhtmltopdf 选项传递授权 cookie(或 header ),例如(如果使用 WebForms 身份验证):

var pdfGen = new HtmlToPdfConverter();
pdfGen.CustomWkHtmlArgs = String.Format(" --cookie {0} {1} ",
FormsAuthentication.FormsCookieName,
Request.Cookies[FormsAuthentication.FormsCookieName] );
pdfGen.GeneratePdfFromFile("your_sharepoint_web_page_url", null, "output.pdf");

--- 更新 ---

对于 HTTP 基本身份验证:

pdfGen.CustomWkHtmlArgs  = String.Format(" --username {0} --password {1}", username, pwd );

关于javascript - 获取页面的整个 HTML + CSS + JS,并将其发送到 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com