java - 将网页转换为 PDF 或图像

标签 java image pdf png

我需要将网页[无法公开访问]转换为PDF或图像[最好是PNG]。

网页包含一组图表和图像。大多数图表都是通过 Ajax 调用填充的,因此页面加载和图表加载之间存在延迟。

我正在寻找以下任何问题的答案:

1-我找到了一组快照 api,但它们都不支持访问我的内部页面。由于我尝试导出的网页不是公开的,因此我需要进行身份验证。最大的问题是我无法与这些 API 一起发送请求 header [例如 session-id、cookie 或其他变量]。他们似乎不支持这种功能。

2-我不确定是否可以执行以下操作:使用 HTTP 客户端登录我的网页,添加 http header ,发送 get 调用并获取 HTML 字符串。然后使用其中一款转换器将其转换为 PDF。我不确定是否可以从我从 http 客户端获得的 HTML 字符串中获取正确的 PDF,因为资源 [css、js 等] 将丢失。我希望我的 pdf/图像看起来与网站上的完全相同。

如果您能提供帮助,我真的很感激。

提前致谢,

ED

最佳答案

您可能最好使用 wkhtmltopdf,它是一个服务器端工具,并且易于安装。

您可以使用两个参数来等待 Ajax 完成,请尝试:

  • javascript-delay 影响程序等待 JavaScript 完成的时间
  • window-status 等待窗口的特定返回代码

请参阅该程序的详细手册 here

wkhtmltopdf 生成 PDF,wkhtmltoimg 生成图像,默认为 PNG(根据您的要求)。

关于java - 将网页转换为 PDF 或图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17690387/

相关文章:

java - 使用 Jsoup 获取图片地址

c# - 如何使用 iTextSharp 拼合已填写的 PDF 表单

java - 异常 : "No adapter for handler. Does your handler implement a supported interface like controller?"

java - 如何发送一个字符串,使用java套接字作为客户端和delphi indy tcpserver作为服务器

java - 是否可以为特定类型而非泛型类型实现 AbstractList?

java - 将字符集添加到响应 header

javascript - 在 Canvas 上伪造一个 3d 球体

c# - .NET Tiff 问题 C#

c# - 在 PDF 文件中搜索以查找字符串

ios - 如何在ios中动态生成多页pdf时处理分页