2012-04-19 28 views
1

私はHTML + CSS + JavascriptファイルをDjango ViewからPDFに変換する必要があります。そのためにPythonを使用します。Pythonを使用してHTML/CSS/JavascriptファイルをPDFに変換しますか?

私はxhtml2pdf/PISAを使うことができましたが、これはHTMLである& CSSをサポートしています.Javascriptでは必要ありません。

もう1つのオプションはpy-wkhtmltoxですが、かなり古くなっていますが、まだ動作していません。「ImportError:libwkhtmltox.so.0:共有オブジェクトファイルを開くことができません:いいえそのようなファイルまたはディレクトリ」、ちょうどlibwkhtmltox.so.0に青リネームlibwkhtmltox.soのうちに、他のそのファイルを取得するかわからないが、その後、私はちょうど得る:

Traceback (most recent call last): 
    File "pdf_test1.py", line 5, in <module> 
    pdf.set_object_setting('path', 'http://www.google.com') 
    File "wkhtmltox.pyx", line 118, in wkhtmltox.Pdf.__getattr__ (wkhtmltox.c:1228) 
AttributeError: 'wkhtmltox._Pdf' object has no attribute 'set_object_setting' 

さらに別のオプションは次のようになりWebkit(http://bharatikunal.wordpress.com/2010/01/31/converting-html-to-pdf-with-python-and-qt/)を使用していますが、Djangoビューから "sys.exit(app.exec_())"を実行することはできません。

今私が考えることのできる唯一のことは、別のWebkit Pythonスクリプトとos.systemをdjangoビューから作成して、 "sys.exit(app.exec_())"を可能にして結果をPDFにすることです。しかし、私は他の提案があります.Djangoビューからos.systemを使用するにはちょっと変です。

アイデア?

+3

なぜJavaScriptが必要ですか? Javascriptは決してpdfでレンダリングされません。スタイルをレンダリングするためにJavaScriptを使用している場合は、CSSに移動します。 HTMLを動的に生成するためにjavascriptを使用している場合は、pdf変換の目的でサーバ上で行う必要があります。 私の提案は、xhtml2pdf/PISAと連携させるために必要な調整です。 Javascriptはオプションではありません。 –

+0

このライブラリ(http://code.google.com/p/pyfpdf/)はjavascriptをサポートしているようですが、PHPで他のライブラリと一緒にやっていることを覚えていますし、警告なども表示します –

答えて

3

wkhtmltopdfを使用することをおすすめします。これはLinux用の静的なバイナリとして利用できるので、共有オブジェクトの問題に遭遇してはいけません。 wkhtmltopdfはWebkitをラップし、JavaScriptをサポートしています。また、レンダリングが行われる前にJSコードをどれだけ実行するかを指示することさえできます。私はそれを使って、複雑なチャートを生成しているページのPDFを作成しました。 subprocess.call()を使用して起動してください。

+0

django-wkhtmltopdfをApacheにデプロイする場合はhttps://github.com/incuna/django-wkhtmltopdf/issues/15 – markhops

関連する問題