0

我的访问者希望能够将一些网站保存为图像文件,以便他们可以随时离线查看。他们使用不同的设备(平板电脑、手机、个人电脑......)和不同的浏览器访问我的网站,因此依赖第三方软件不是一个好的选择。(顺便说一句,图像文件格式几乎无关紧要)

我希望我的服务器为用户完成这项任务;最好使用 javascript、ajax、php 或者其他任何东西,如果它很容易的话。这些页面是动态创建的,但相对简单的 html、一些文本、一些 jpg 图像、没有 css - 没有什么花哨的(如动画 gif 或 flash)。动态创建不需要会话 cookie 或其他东西,只需要 url(并且可能获取)信息。

我不知道如何做到这一点 - 当我用谷歌搜索时,我只是为最终用户找到解决方案,而不是为我。我现在知道的唯一可能性是使用 php-png 功能。这样,我的访问者可以单击链接并被定向到他们可以下载的动态 png 文件。但是我必须手动“编写”png,php-png不能将html转换为png,可以吗?

我只尝试过一次 php-png,大约 5 年前;我记得有点费力。有没有更简单和扩展功能的库?

一切都归结为一个问题:从 html 网站制作图像的最简单方法是什么?对用户来说应该尽可能简单,然后对我来说。

;) 额外积分:以防我找到可以动态创建图像的东西。如何让任何浏览器自动在下载目录中永久下载图片,而不是仅显示临时保存的预览?

4

2 回答 2

2

PDF 将是一个更好的解决方案,因为它们是可扩展的并且可以包含超链接。该过程将是使用无头浏览器呈现页面并输出呈现的 PDF。一个快速的谷歌揭示了一些有趣的可能性:

  1. dompdf:http ://code.google.com/p/dompdf/
  2. 基于 WebKit/KHTML 的渲染器:https ://github.com/mreiferson/php-wkhtmltox
  3. Google Chrome Webkit 支持: http: //phantomjs.org/ + https://github.com/diggin/php-PhantomjsRunner
于 2012-11-25T19:26:48.153 回答
1

如果您希望人们下载为图像的页面是您自己的,并且您控制为它们提供服务的服务器,则可以使用php-imagemagick构建服务器端的“屏幕截图”图像(因此用户可以选择 HTML版本和单图像版本;或单击 HTML 版本中的按钮以下载图像版本)。首先定义一个画布,然后在其上渲染文本块和图像,最后将其保存为 PNG 或 JPG 图像。

Imagemagick 在字体方式上没有提供太多的灵活性。您可能希望改为使用imagegetttftext渲染文本块,然后将它们添加到 imagemagick 图像中。

由于以这种方式构建图像在服务器端可能会很昂贵,因此您需要缓存结果。

于 2012-11-25T15:44:24.440 回答