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

Get the entire HTML + CSS + JS of the page, and send it to a web service

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

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

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

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

如何在浏览器中生成单页 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 );