以矢量图形格式保存安全网页的精确副本


9

我想以矢量图形的形式保存网页的精确副本,因此我无法使用屏幕截图技术(因为该图像以rastor-graphics格式存储)。

我已经尝试通过Safari,Chrome和Firefox进行“打印为pdf”和“另存为pdf”。这在大多数情况下都有效。但是,保存的pdf并非所有网页的精确副本。例如,尝试将此网页另存为pdf,并注意已保存的pdf中不包含upvote / downvote图标。

我也尝试过使用Safari保存为WebArchive。这里的问题是我需要裁剪生成的文件,并且我不知道如何裁剪WebArchive,因为Preview无法打开它,并且它只是在Safari中打开(回到第二个)。

我还尝试了提供一键式解决方案的Web浏览器插件,以将网页另存为pdf(矢量图形形式)。这样效果更好(保存了准确的页面),几乎可以解决问题,除了这些程序通过将页面url发送到基于云的程序以进行查询然后保存页面外,它们可以正常工作。这意味着该技术不适用于需要我的凭据登录的https站点。

所以我在一个角落。我正在尝试保存需要登录凭据才能查看的网页的精确矢量图形副本。我怎样才能做到这一点?


1
我认为您很困惑-PDF不是矢量格式。
凯文·潘科

不困惑 只是不必担心pdf是可以存储矢量图形内容的容器的细节,因为我认为问题的要点正在传达
Clayton Stanley

您的问题似乎是“我如何将网页另存为PDF文件,使其与屏幕上显示的完全相同,并且可以用于需要密码才能登录的页面?”
凯文·潘科

不必是pdf;这只是保存网页为矢量图形形式的网页的一种方法。我不必致力于这种格式。我将在第二个音符的标题中添加安全性,以便更好地强调这一点。
克莱顿·斯坦利

Answers:


6

与在屏幕上查看页面时相比,将页面打印为PDF可获得不同的结果。

发生这种情况是因为网页包含CSS样式表,该样式表在打印时会更改页面。

这个问题将帮助您避免该问题: 如何使用屏幕样式表进行打印?

按照那里的说明打印带有屏幕样式表的页面。

然后,您应该能够打印为PDF并获得与屏幕上看到的相同的结果。


1
为了获得完整的文档资料,我最终使用了Chrome Web Developer插件,并通过该插件编辑了CSS。使用Google Chrome内置的开发人员工具编辑CSS后,我无法更新打印页面,但这很可能是因为我不熟悉该工具。
克莱顿·斯坦利

4

如果您不担心使用少量脚本,则可以尝试从http://phantomjs.org/使用针对OSX的phantomjs应用程序

然后,您可以使用rasterize.js脚本和以下命令来运行包含的二进制文件:

phantomjs.exe rasterize.js http://www.example.com/sitepage 8.5in*11in outfile.pdf

几个注意事项:

  • 它称为“ rasterize.js”,但文本本身作为实际文本保存到PDF中。

  • 初始化页面对象后,可以通过在rasterize.js脚本中添加几行来使用Windows身份验证对安全站点进行身份验证:

var page = require('webpage')。create(),
    系统= require('系统'),
    地址,输出,大小;
    page.settings.userName =“ serviceUserName”; //我添加了这些
    page.settings.password =“ servicePassword”; // 2行

如果(system.args.length 5){

phantomjs摇滚!
马修·洛克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.