1

我希望在没有任何第三方实用程序的情况下将 html 文件转换为 pdf。我对 cupsfilter 的输出不感兴趣,也不想编写浏览器脚本。此 AppleScript / Ruby 脚本使用 PDFKit 重新保存 pdf(以解决 InDesign 问题)。有没有办法修改它以接受 html 文件作为输入?也欢迎任何其他解决方案!

on pdf_resave(infile, outfile)
    set rb to "require 'osx/cocoa'
OSX.require_framework 'PDFKit'
include OSX

raise ArgumentError, %Q[Usage: $0 <input pdf> <output pdf>] unless ARGV.length == 2
infile, outfile = ARGV
url = NSURL.fileURLWithPath(infile)
pdf = PDFDocument.alloc.initWithURL(url)
pdf.writeToFile(outfile)"

    do shell script "/usr/bin/ruby -e " & rb's quoted form & " " & infile's quoted form & " " & outfile's quoted form
end pdf_resave
4

1 回答 1

2

我建议使用 webkit HTML to pdf 库https://github.com/antialize/wkhtmltopdf

您可以从 Ruby 中调用二进制文件。

安装它:

brew install wkhtmltopdf

如果部署/依赖性问题是一个问题,您可以将其与 Ruby 脚本打包成一个包。您只需在安装脚本中添加一个检出和编译阶段(从而避免需要安装brew。) - 您也可以通过这种方式打包一个预制的二进制文件,只要您在目标平台上测试它(我会建议10.6以上,你是安全的)。

有关制作.pkg安装包的更多信息,请参阅此简洁指南

不过,这一切都太过分了,因为至少据我所知wkhtmltopdf,除了给它提供一批 html 文件之外,至少在我看来,它会为您完成这项工作,在这种情况下,将其包装在一个 shell 脚本中,然后停止胡闹;)

于 2013-03-02T20:06:46.113 回答