【问题标题】:Get a snapshot of posted HTML page?获取已发布 HTML 页面的快照?
【发布时间】:2012-08-23 12:59:35
【问题描述】:

我正在使用expertPDF 将几个网页转换为PDF,其中一个我遇到了困难。此页面仅在向其发布信息时呈现内容,并且内容是文本和 PNG 图形(图形是最重要的部分)。

我尝试在正文 onload='' 事件上创建一个带有“自动提交”的页面表单。如果我转到此页面,它会自动发布到第 3 方页面,并且我会按预期获得该页面。但如果页面被重定向,ExpertPDF 似乎不会拍摄“快照”。

我尝试使用 HTTPRequest/Response 和 WebClient,但只能检索不包含 PNG 图形的 HTML。 知道如何创建一个包含 HTML 和 PNG 图的内存流或发布到它,然后以某种方式将 ExpertPDF 发送到该 URL 以获取发布结果的快照吗?

非常感谢您的帮助 - 我花了太多时间尝试这个 sniff。 谢谢!

【问题讨论】:

  • 我是否理解正确,ExpertPDF 需要静态内容 (HTML+PNG) 的 URL 才能准备 PDF?
  • ExpertPDF 可以将多个网页附加在一起以创建一个 PDF(我已经在这样做),但我需要再附加一个网页,该网页仅在某些数据发布到它时才会呈现。如果我将此页面的 URL 传递给 ExpertPDF 以附加到 PDF,它不会附加任何内容,因为它使用的是“GET”而不是“POST”(不呈现任何内容)。

标签: c# webclient httprequest


【解决方案1】:

在 HTML/HTTP 中,网页(HTML)是与其包含的任何图像分开的资源。因此,您需要解析 HTML 并找到指向您的图形的 URL,然后对该 URL 发出第二个请求以获取图像。 (除非页面内联吐出图像,这种情况非常罕见,如果是这种情况,您可能不会问。)

快速浏览 ExpertPDF 的 FAQ 页面,有一个常见问题解答问题专门解决了您的问题。我建议你看看那个。

** 更新 **

看看第二个FAQ问题:

问:当我将 HTML 字符串转换为 PDF 时,外部 CSS 文件和图像不会应用到呈现的 PDF 文档中。

您可以从WebClient 获取原始(单个)响应并将其转换为字符串,然后根据该问题的答案将该字符串传递给 ExpertPDF。

【讨论】:

  • 我只是看了那个常见问题页面(第 10 次大声笑),我没有看到像我要问的那样。我能够创建第二个 httprequest 并获得 PNG 文件的响应(这是一堆 ASCII 字符 - 我假设编码),但我不知道如何将两者结合在一起,以便一个内存流是一个组合html 和 PNG 的编码文本。我知道电子邮件中使用 MIME 嵌入了图形,不确定是否可以创建一个“类似 MIME”的 MemoryStream 或 byte[],然后我可以用它来附加到 ExpertPDF?
  • 我应该补充一点,ExpertPDF 允许我追加 [一堆组合类型],但我想用来追加的输出格式是 byte[] 或 MemoryStream - 在此先感谢
  • 啊,我不知道我是怎么错过的,但这让我朝着解决它的方向前进。谢谢大猩猩!
猜你喜欢
  • 2019-05-15
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多