45

ruby on rails(3.1)を使ったプロジェクトに取り組んでいます。私の要件は、html コンテンツから pdf を生成することです。だから私はpdfkit gemを使います。

一部のページで、ページ間で 1 行の文字が部分的に切れています。pdfkit gemを使用してhtmlをpdfに変換するとき

wkhtmltopdf のバージョン: wkhtmltopdf -- 0.11.0 rc1

オペレーティング システム: Linux CentOS 5.5

下の画像では、文字がページ間で部分的に切り取られています。

解決策を提案してください。

例 1

ここに画像の説明を入力

例 2

ここに画像の説明を入力

4

11 に答える 11

15

私はテーブルでこの問題を抱えていました:

ここに画像の説明を入力

次に、これを CSS に追加しました。

table, img, blockquote {page-break-inside: avoid;}

これで問題が解決しました:

ここに画像の説明を入力

于 2015-02-27T14:20:48.720 に答える
11

私はこれに出くわし、問題を解決する何かを見つけました。私の特定のケースでは、 の div がありましたdisplay: inline-block; margin-bottom: -20px;。それらをブロックしてマージンボトムをリセットするように変更すると、行分割が消えました。YMMV。

于 2012-08-28T18:54:50.197 に答える
9

私が見つけたいくつかのドキュメント(改ページを参照) によると、これは既知の問題であり、CSS 改ページを使用して改ページを挿入することを提案しています (パッチを適用したバージョンの QT を使用していると仮定します)。

WebKit の現在の改ページ アルゴリズムには、多くの要望が残されています。基本的に、webkit はすべてを 1 つの長いページにレンダリングし、それを複数のページに分割します。これは、テキストが 2 列あり、一方が垂直方向に半行分ずれている場合を意味します。次に、webkit は行を分割して 1 ページに上半分を表示します。下半分は別ページに。また、画像が 2 つに壊れます。パッチを適用したバージョンの QT を使用している場合は、CSS の page-break-inside プロパティを使用して、これをある程度修正できます。この問題を解決する簡単な方法はありません。解決するまでは、HTML ドキュメントを整理して、ページをきれいに切り取ることができる行が多数含まれるようにしてください。

参照: http://code.google.com/p/wkhtmltopdf/issues/detail?id=9http://code.google.com/p/wkhtmltopdf/issues/detail?id=33および http:/ /code.google.com/p/wkhtmltopdf/issues/detail?id=57 .

于 2012-01-09T13:04:24.217 に答える
1

次のように、margin-top と margin-bottom を追加する問題を解決しました。

$this->get('knp_snappy.pdf')->generateFromHtml($html, $pdfFilepath, [
        'default-header' => false,
        'header-line' => false,
        'footer-line' => false,
        'disable-javascript' => true,
        'margin-top' => '3mm',
        'margin-bottom' => '3mm',
        'margin-right' => '5mm',
        'margin-left' => '5mm',
        'orientation' => 'Landscape',
    ], true);
于 2020-04-01T06:59:41.983 に答える
0

カット テキストの問題は Webkit の既知の問題であり、開発者は wkhtmltopdf 内で解決策を見つけたようです。0.12.1 に更新すると、カットテキストの問題が修正されます (コンパイルで時間を無駄にしたくない場合は、ここからバイナリ ファイルを取得できます: https://github.com/h4cc/wkhtmltopdf-amd64 )。

于 2014-07-12T17:10:09.510 に答える
0

これに何ヶ月も我慢してきて、ついに私の状況の修正を見つけました. 変換中の html ファイルで github css スタイルシートを使用しており、code複数のページにまたがるブロックはテキストが途切れる場合があります。欠けているものはなく、半分にカットされているだけです。

ページの下部:

ページの一番下

次のページの開始:

次のページの開始

そのため、github スタイルシートでは、<pre>タグのオーバーフローが auto に設定されています。

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 16px;
  overflow: auto;
...

オーバーフロー プロパティを非表示に切り替えると解決しました。

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 16px;
  overflow: hidden;

このページの他のすべての回答を試したと思いますが、これで解決しました。それが他の誰かを助けることを願っています:)

于 2021-02-28T15:48:54.190 に答える