【问题标题】:User friendly way to create a screenshot from a website从网站创建屏幕截图的用户友好方式
【发布时间】:2012-11-13 04:46:04
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 不要包含“谢谢”字样;简单的问题更好。
  • 我不认为图像文件是保存内容的好方法。
  • 在我的具体情况下,图像保存是必要的,没有其他选择。但我不想通过详细解释来浪费你的时间。此外,imo 这对 DAU 来说非常有用。

标签: php javascript html image web


【解决方案1】:

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

【讨论】:

  • 好主意 - 并且还将 OP 指向用于离线/无头渲染的工具,该工具也可用于制作图像。顺便说一句,你肯定是指“webkit 后端”作为第三个选项......
【解决方案2】:

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

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

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

【讨论】:

  • (对于其他回答者:我有服务器控制权,字体并不重要)这听起来很有希望!它仍然有点手动,但它可以解决我的问题。谢谢小费!
猜你喜欢
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2011-08-05
  • 2016-06-06
相关资源
最近更新 更多