我需要将网页[无法公开访问]转换为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/