37

wkhtmltopdfを使用して、プリンターに送信されるPDFファイルを生成していますが、結果のPDFのページ全体をコンテンツで埋めるのに問題があります。

CSSでは、幅と高さを2480 X 3508ピクセル(a4 300 dpi)に設定しました。PDFを作成するときは、余白に0を使用しますが、左右に小さな白い境界線が表示されます。また、mmとパーセンテージを使用しようとしましたが、同じ結果になりました。

結果のPDFページが背景全体を埋めるように、HTMLのスタイルを設定する方法と、コマンドラインで使用するオプションの例を教えてください。1つの方法は出血を含めることかもしれませんが(これはとにかく必要かもしれません)、どんなヒントも歓迎します。現在、私は1つの大きなHTMLページを作成しています(CSSページ分割なし-役立つかもしれません-役立つかもしれません)が、必要に応じて、各ページを個別に生成し、それらすべてをwkhtmltopdfにフィードするのがよいでしょう。

4

7 に答える 7

49

wkhtmltopdf v 0.11.0 rc2

何がうまくいったのか:

wkhtmltopdf --margin-top 0 --margin-bottom 0 --margin-left 0 --margin-right 0 <url> <output>

に短縮します

wkhtmltopdf -T 0 -B 0 -L 0 -R 0 <url> <output>

stdinからのhtmlの使用(ダッシュに注意)

echo "<h1>Testing Some Html</h2>" | wkhtmltopdf -T 0 -B 0 -L 0 -R 0 - <output>

stdinからstdoutへのhtmlの使用

echo"いくつかのHTMLのテスト"| wkhtmltopdf -T 0 -B 0 -L 0 -R 0 --test.pdf

echo"いくつかのHTMLのテスト"| wkhtmltopdf -T 0 -B 0 -L 0 -R 0 ---> test.pdf

うまくいかなかったもの:

  • 使用する--dpi
  • 使用する--page-width and --page-height
  • 使用する--zoom
于 2014-01-10T19:23:38.567 に答える
11

--disable-smart-shrinkingオプションを使用して同じ問題を解決しました。

于 2017-07-13T14:09:34.457 に答える
10

これは古くて寒いことだと思いますが、誰かがこれを見つけて同じ/同様の問題を抱えている場合に備えて、いくつかの試行錯誤の後で私のために働いた回避策があります。

単純なfiller.htmlを次のように作成しました。

<!DOCTYPE html>
<html>
<head>
</head>
<body style="margin: 0; padding: 0;">
<div style="height: 30mm; background-color: #F7EBD4;">
&nbsp;
</div>
</body>
</html>

有効なHTML(!DOCTYPEが重要)とインラインスタイルのみを使用してください。背景色をメインドキュメントの色と一致させ、余白以上の高さを使用します。

次の引数を使用してバージョン0.12.0を実行します。

wkhtmltopdf --print-media-type --orientation portrait --page-size A4
 --encoding UTF-8 --T 10mm --B 10mm --L 0mm --R 0mm
 --header-html filler.html --footer-html filler.html - - <file.html >file.pdf

これが誰かを助けることを願っています...

于 2014-07-21T12:49:24.137 に答える
7

http://code.google.com/p/wkhtmltopdf/issues/detail?id=359で、このバグに「苦しんでいる」人が増えていることがわかりました。--dpi 300回避策はうまくいきませんでした。少しズームインするように設定する--zoom 1.045必要があり、余分な右と下の境界線が消えました...

于 2012-10-02T01:38:47.347 に答える
7

バージョン0.12.2.1を使用しており、次の設定を行っています。

body { padding: 0; margin 0; }
div.page-layout { height: 295.5mm; width: 209mm;}

私のために働いた。

もちろん、次の方法で0マージンを追加する必要があります。

wkhtmltopdf -T 0 -B 0 -L 0 -R 0
于 2015-07-24T20:20:01.037 に答える
6

-B 0 -L 0 -R 0 -T 0オプションを使用し、A4サイズのdivを設定するというトリックを使用すると、問題なく動作します。

body {margin:0;を使用することを覚えていますか。CSSの上部にpadding:0;}がありますか?

私はまだエラーを試したことがないので、CSSページ分割を手伝うことはできませんが、ページ上でスクリプトを実行して巧妙なことを行うことができます。これは、コンテンツの長さに基づいてコンテンツをページサイズのチャンクに分割する方法のjQueryの例です。wkhtmltopdfで動作するように適応させることができる場合は、ここに投稿してください。

http://www.script-tutorials.com/demos/79/index.html

于 2011-05-25T13:16:09.363 に答える
2

あなたが経験しているのはバグです。

--dpiファイルを変換するときにオプションを設定する必要があります。あなたの場合、おそらくあなたは望むでしょう--dpi 300、しかしそれはより低く設定することができます。

于 2011-10-06T22:09:06.173 に答える