Wkhtmltopdfを使用して、プリンターに送信されるPDFファイルを生成していますが、結果のPDFでページ全体をコンテンツで埋めるのに問題があります。
CSSでは、幅と高さを2480 X 3508ピクセル(a4 300 dpi)に設定し、PDFを作成するときにマージンに0を使用しますが、それでも小さな白い境界線で終了しますまた、mmとパーセンテージを使用しようとしましたが、同じ結果になりました。
結果のPDFページが背景全体に表示されるように、HTMLのスタイル設定方法とコマンドラインで使用するオプションの例を誰かに教えてください。ブリーディング(これはとにかく必要かもしれません)を含んでいますが、どんなヒントでも大歓迎です。現時点では、1つの大きなHTMLページを作成しています(CSS改ページなし-役立つかもしれません)。それらすべてをwkhtmltopdfに。
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>
標準入力から標準出力への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
Whatdid notwork:
--dpi
を使用--page-width and --page-height
を使用--zoom
を使用私はこれが古くて寒いことを知っていますが、誰かがこれを見つけて同じ/同様の問題がある場合に備えて、試行錯誤の後に私のために働いた回避策があります。
次のような単純なfiller.htmlを作成しました。
<!DOCTYPE html>
<html>
<head>
</head>
<body style="margin: 0; padding: 0;">
<div style="height: 30mm; background-color: #F7EBD4;">
</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
これが誰かを助けることを願っています...
http://code.google.com/p/wkhtmltopdf/issues/detail?id=359 で、このバグに苦しんでいる人が増えていることがわかりました。 --dpi 300
回避策はうまくいきませんでした。--zoom 1.045
少し拡大して、余分な右と下の境界線を非表示にしました...
--disable-smart-shrinking
オプションを使用して、同じ問題を解決しました。
-B 0 -L 0 -R 0 -T 0オプションを使用して、A4サイズのdivをセットアップするトリックを使用すると、うまく機能します。
Body {margin:0;を使用することを覚えていましたかpadding:0;}はCSSの上部にありますか?
エラーが発生したものをまだ試用していないため、CSSの改ページを支援することはできませんが、ページ上でスクリプトを実行して巧妙なことを行うことができます。以下は、コンテンツの長さに基づいてコンテンツをページサイズチャンクに分割する方法のjQueryの例です。 wkhtmltopdfで動作するように適応できる場合は、ここに投稿してください!
私はバージョン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
あなたが経験しているのはバグです。
ファイルを変換するときは、--dpi
オプションを設定する必要があります。あなたの場合、おそらく--dpi 300
が欲しいでしょうが、それはもっと低く設定することができます。