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インストールバンドルの作成の詳細については、この簡潔なガイドを参照してください。

ただし、少なくとも私が見る限り、wkhtmltopdfhtmlファイルのバッチをフィードする以外は、最初から最後まであなたに代わって仕事をしてくれるので、それはすべてやり過ぎです。その場合は、シェルスクリプトでラップし、いじくり回すのをやめます;)

于 2013-03-02T20:06:46.113 に答える