問題タブ [wkhtmltopdf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - wkhtmltopdf による HTML からの Google Web フォントと PDF 生成
wkhtmltopdfを使用して HTML ファイルを PDF 形式に変換しています。驚くほど良い結果が得られ、WebKit とまったく同じように PDF がレンダリングされます。
私はGoogle Web Fontsを使用して、ユーザーが編集したドキュメントの外観をカスタマイズできるようにし、いくつかのフォントから選択できるようにしています。ブラウザでも完璧に動作します。
問題は、そのような HTML ファイルを wkhtmltopdf で PDF に変換するときに、Google フォントが機能しないことです。他の人も同じ問題を抱えていると読みました。
誰でもこれを修正するのを手伝ってもらえますか?
EDIT : CSS で @font-face を直接宣言しても機能しません。
c# - WkHTMLToSharp を正しく使用して HTML ファイルを PDF に変換するにはどうすればよいですか?
大量の HTML ファイル (約 30) を PDF に変換する必要があります。TOC とリンク ページを作成できれば最高ですが、今は個々のファイルを変換するだけで十分です :)
私はすでにいくつかのソリューションを試しましたが、最も成功したのは EO.PDF でしたが、すべてのページに厄介な透かしが入り、数メガを超えるファイルを処理できず、私のいくつかは 10メガ以上です。
私は wkhtmltopdf について多くの良いことを読み、そのラッパーである WkHTMLToSharp を見つけました。ドキュメントが見つからないので、例外をスローしている次のコードをまとめました。これを解決するための助けをいただければ幸いです。
例外の原因となっている行に注目しました。(非常に役に立たない)例外は次のとおりです。
- コード -
欠落している DLL の問題を解決した後、コードの一部が実際にはファイルではなく HTML の文字列を変換することを発見しました。私はそれで作業できますが、 HTMLファイルで作業することを大いに好みます。
さらに、PDF ファイルに表示される画像はありません。それらはすべて JPG です (GIF に問題があることはわかっています)。
c# - C#の画像でWkHTMLToSharp/wkhtmltopdfを使用してHTMLファイルをPDFに変換する方法
その場でHTMLファイルを生成していますが、最終的なファイルからPDFを作成したいと思います。以下を使用してHTMLファイルを生成しています。
完了したら、次の関数を呼び出してPDFファイルを生成します。
.Convert関数がHTMLコードをファイルではなくPDFに変換することを発見しました。次に、HTMLコードを直接渡すと、画像がPDFに表示されません。.GIFファイルに問題があることは知っていますが、これらはすべて.JPGファイルです。
私はwkhtmltopdfがどれほど優れているかについて多くのことを読み、WkHTMLToSharpを書いた人が彼のプロジェクトをSO全体に投稿しましたが、ドキュメントが不足していることに失望しました。
変換するファイルを渡し、余白を変更し(これが可能であることはわかっています。正しい設定を理解する必要があります)、画像を正しく変換し、最も重要なこととして、アイテムを分割しないようにしたいです。複数のページにまたがる(「page-break-inside:avoid」などをサポート)。
他の人がこれをどのように使用しているか見てみたいです!
c++ - wkhtmltopdf/QPrinter で PDF コア フォントを使用する
一言で言えば質問:
- PDFを生成するときにwkhtmltopdfにType1フォント(PDFコアフォント)を使用させることは可能ですか?
- または: PDF を生成するときに Qt QPdfEngine に Type1 フォント (PDF コア フォント) を使用させることは可能ですか?
問題の詳細な説明。
wkhtmltopdf と tcpdf を使用して、非常に大きなデータベースの pdf エクスポートを行うための webapp を開発しました。(900+) ページは、wkhtmltopdf を使用して「印刷」され、tcpdf と fpdi を使用して「接着」されます。
残念ながら、wkhtmltopdf は、pdf のレンダリングに使用するフォントを常に埋め込んでいるようです。これは冗長でドキュメントが肥大化するため、非常に望ましくない動作です。さらに、ドキュメントは Acrobat Pro で編集可能である必要があります。どうやら Acrobat Pro は埋め込みフォントに圧倒されているようです。ドキュメントの保存時にそれらを置き換えようとし、Windows マシンでは約 45 分後にハングアップします (Mac マシンでは、ドキュメントの保存に非常に長い時間がかかります)。
では、wkhtmltopdf にフォントを埋め込まないように指示し、代わりに Type1 フォント (Helvetica) を使用する可能性はありますか?
これを行うためのスイッチが見つからなかったので、wkhtmltopdf にパッチを当てると次を使用してうまくいくと思いました: printer->setUseEmbeddedFonts(false)
残念ながら、これは何も変わりませんでした。
私の次のアイデアは、Qt-PDF-Printer にパッチを当てることでした。QPrinter-Class と QPrintEngine を調べると、pdf エンジンが TTF-Fonts (または使用されているフォント) を埋め込む代わりに Type1 フォントを使用している場所は見つかりませんでした。
アイデアや指針はありますか?
php - PHP経由でコマンドラインを実行しますか?
これら 2 つのコマンド ラインを php 経由で実行する方法:
wkhtmltopdf www.google.com gg.pdf
&
oofice -headless -nologo -pt cup-pdf my.doc
どちらも pdf ファイルを返し、私のホーム ディレクトリにダウンロードします。
私のhtmlページからphp経由でこれらのコマンドを実行する方法を知りたいです。
ありがとう。
ruby-on-rails - wkhtmltopdfがfont-faceを正しく使用できない
フォントファイルを参照するために絶対URIを使用しましたが、次のエラーが発生します。
デバッグには何の役にも立ちません。共有ホストを使用しているため、フォントをローカルにインストールできません(つまり、@ font-faceの使用を避けられません)。デバッグ時には、htmlページは問題なくレンダリングされます。PDFを生成すると、エラーが発生します。base64エンコーディングを使用してフォントを直接埋め込もうとすると、フォントが適用されません(デフォルトでは別のフォントになります)。
さらなるテスト:
@ font-faceルールが適用されている場合にのみ、理由もなく失敗します。スタイルメディアを「印刷」に設定すると、エラーは発生しませんが、フォントも発生しません。これを「すべて」に設定し、フォントがa)正しく参照されているか、b)base64エンコーディングを介して直接入力されている場合-失敗します。
fonts - wkhtmltopdf を取得して、ユーザー フォント フォルダーを認識する
ここで問題が特定されたと思います...非標準のフォントを ~/.fonts ディレクトリにインストールし、「mkfontdir」と「mkfontscale」を実行しました。「fc-list」で一覧表示すると、フォントが表示されます。wkhtmltopdf がそれらを認識しないという問題が残ります。「Courier 10 Pitch」などの他のシステム フォントは認識されますが、ユーザー ディレクトリにあるものは認識されません。wkhtmltopdf (または、さらに言えば、webkit) にフォルダー内のフォントを認識させる方法はありますか? ssh で何かしなければならないことはありますか、それとも Ruby で設定できるオプションはありますか?
duplex - Wkhtmltopdfを両面印刷
誰かが両面印刷の方法を知っています。だから私は問題を抱えています、なぜなら私はたくさんのステートメントがある要約ファイルを持っているからです。両面印刷する必要がありますが、問題は印刷にあります。ステートメントの番号が奇数で、最後のページが最初のページの次のステートメントに印刷されることがあるためです。
誰かに何か考えを持ってください。ありがとう!
php - PHPのlongコマンドに関するexec()の問題
サーバーでwkhtmltopdfを使用してHTMLドキュメントをPDFに転送しています。次のような短いURLを使用している場合は非常にうまく機能します:
この問題は、次のような長いコマンドを使用しているときに発生します。
この長いコマンドをPuttyから直接実行すると、完全に機能することに注意してください。
問題は、exec(またはshell_exec()またはsystem()またはpassthru())を使用すると、ページが永久に読み込まれ続け、Webサーバーが応答しなくなることです。Puttyからプロセスを閉じる必要があります(ps -x、次にPIDを強制終了します)。
?phpsid =を削除するとうまく機能することに注意してください。これが、問題が長いコマンドでのみ発生すると言っている理由です。?phpsid = d8dbfbb91c0748d91426441e67aaf2b6を削除し、それを?anything = ImAmAVeryLongStringThatDoNothingに置き換えると、それも機能しません。
私はWHM/cPanelを使用してCentOS5を使用しています。助けてくれてありがとう!
編集:
urlencode()を試しましたが、機能しません。
escapeshellarg()を試しましたが、コマンドは正しく渡されましたが、機能しません。
短いパラメータを使用しようとしましたが、コマンドは正しく渡されましたが、機能しません。
編集2:
exec()、system()、またはpassthru()の使用中に文字列の長さに制限はありますか?
編集3:
最後に、 Wrikkenのおかげで、問題は、URLでsession_id()を渡し、それをexec()で再利用していたことでした。session_write_close();を追加する必要がありました。exec()の前にあるため、PHPは現在のセッションのロックを解除して、exec()のスクリプトで再利用できるようにします。詳細については、以下のコメントを参照してください。