質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2664閲覧

PythonのCGIでHTMLをPDFに変換

ymkabe

総合スコア15

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/05/18 05:50

閲覧していただいてありがとうございます。

CentOS7でPythonをCGIとして使用し
HTMLファイルをPDFに変換したいと思っているのですが
サーバー上でそのまま起動するとうまくいくのに
CGIとして起動すると変換に失敗します。

なにか知恵をかしていただけると幸いです
宜しくお願い致します

python3.6

1import pdfkit 2 3html = 'test.html' 4pdf = 'test.pdf' 5options = { 6 'page-size' : 'A4', 7 'margin-top' : '0.4in', 8 'margin-right' : '0.4in', 9 'margin-bottom': '0.4in', 10 'margin-left' : '0.4in', 11 'encoding' : 'UTF-8', 12 'no-outline' : None 13} 14 15pdfkit.from_file(html, pdf, options=options)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決しました。
結果、ただのアホでした。
パーミッション777のつもりが755のところに保存しようとしてました。
お騒がせしました。

投稿2019/05/20 03:00

ymkabe

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CGI構成が不明なので推測ですが、おそらく変換元のhtmlファイルがカレントパスに存在しないため例外が発生しているものと思われます。以下のようなコードで例外発生時にTracebackが表示されるので確認してみてください。

Python

1import cgitb 2cgitb.enable() # Traceback表示を有効にする 3 4import pdfkit 5 6html = 'test.html' 7pdf = 'test.pdf' 8options = { 9 'page-size' : 'A4', 10 'margin-top' : '0.4in', 11 'margin-right' : '0.4in', 12 'margin-bottom': '0.4in', 13 'margin-left' : '0.4in', 14 'encoding' : 'UTF-8', 15 'no-outline' : None 16} 17 18pdfkit.from_file(html, pdf, options=options) 19print("Content-Type: text/html\r\n\r\n") 20print("OK")

投稿2019/05/18 06:32

can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ymkabe

2019/05/18 06:43

回答ありがとうございます。 Tracebackは表示されなかったのでlogをみて自分なりに調べたのですが rQPainter::begin(): Returned false Unable to write to destination Exit with code 1, due to unknown error. と、書込ができないようです。。 質問時のコードは省略しているのですがフルパスも指定しています。 まだ解決策は分かっていないので、 もしなにか思い当たることがあれば教えていただけると幸いです。 宜しくお願い致します
ymkabe

2019/05/18 07:24

CentOS上では問題ないので現在Apacheの設定を見直し中です 情報提供ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問