2017-03-13 13 views
5

私のプロジェクトでは、wkhtmltopdfを使ってスナップしています。私のローカルマシン上で出力は正しいです: https://www.dropbox.com/s/ml9cp2pa6d8wja5/Zaznaczenie_100.png?dl=0wkhtmltopdf - 同じ設定が異なる出力

が、私は、PDFはおそらく、ビューポートの幅が異なっている、非常に異なって見ているサーバーにプロジェクトを展開するとき: https://www.dropbox.com/s/8g0c29bzaxltyb9/170311_123139_4775.jpg?dl=0

両方のシステムが正確に使用pdfを生成するための同じ構成。

私の質問は以下のとおりです。

  • どのように私はwkhtmltopdfのデフォルトの設定は、特定のマシン上にあるかどうか確認することができますか?
  • ビューポートのサイズを変更して、出力が別のマシンでまったく同じになるようにするにはどうすればよいですか?

出力ページの幅と高さを手動で設定します(それぞれ21cmと50cm)。私はDPIパラメータと異なる組み合わせを試しましたが、効果がないようです。

私はwkhtmltpdf PHPラッパー(snappy)を使用していますが、チェックしても同じ出力がコンソールに表示されるため、問題はwkhtmltopdfと関連しています。

+0

あなたのDropBoxのリンクが機能していないようです。おそらく、スタックオーバーフローのimgurホスティングで画像をホストする編集ボックスから画像を再アップロードする必要があります。 –

+0

ありがとうございました! – Gacek

+0

wkhtmltopdfの2つのバージョンが同じであることを確認できますか? – Ruslan

答えて

0

あなたのPDF出力で異なる主なものの1つがフォントフェイスです。 wkhtmltopdfを使用するには、ブラウザに必要なのと同じ方法でオペレーティングシステムにフォントをインストールする必要があります。フォントの間隔やサイズの違いがページのレイアウトに影響する可能性があります。まず、ソースファイルでどのフォントを使用しようとしているのかを見て、それらをサーバーにインストールする必要があります。良いスタートはhereから、またはあなたのサーバーのディストリビューションのリポジトリからMicrosoftのコアフォントをインストールすることです。

これを回避する別の方法は、あなたのサーバにインストールせずに、URLからフォントにリンクするソースファイルのスタイルシートに@font-faceディレクティブを使用することです:

@font-face { 
    font-family: 'Roboto'; 
    font-style: normal; 
    font-weight: 400; 
    src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2) format('woff2'); 
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 
} 

Googleのウェブフォントの場合、あなたは代わりに、彼らのスタイルシートをインポートすることができます。チェックする

<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" /> 

もう一つは、ワークステーションとサーバー上のwkhtmltopdfのバージョンです。 wkhtmltopdf --versionを実行すると、現在インストールされているバージョンが表示されます。サーバーでwkhtmltopdfの古いバージョンが実行されている可能性があります。必要な機能を備えたwkhtmltopdfの最新バージョンをインストールする最も簡単な方法は、hereです。ディストリビューションのために静的にリンクされたLinuxバイナリをダウンロードすることができます。

最後に試してみるのは、異なる--margin-top--margin-right--margin-bottomおよび--margin-left引数を使用することです。より良い結果を得るのに役立つかもしれない--viewport-sizeというフラグもあります。

wkhtmltopdf --viewport-size 1024x768 page.html output.pdf 

、あなたのワークステーションとサーバーの両方でwkhtmltopdfの同じバージョンを使用している場合、あなたは、両方すでに上で同じ設定を使用している述べたように、しかし、これらの構成オプションは、違いを作るべきではありません。

+0

フォントに問題はありません。私は--viewport-sizeフラグを試みましたが、それは死んでいるようです - 効果はありません。マージンは両方のマシンで同じに設定されています – Gacek

+0

@Gacek wkhtmltopdfのどのバージョンがあなたのサーバーとワークステーションにありますか?どこからインストールしたのですか? –

0

Candy Gumdropをバックアップするために、マージンを試しましたが、私たちの回答は、私が使用した64ビットバージョンではなく、運用サーバー上の32ビット版のwkhtmltopdfを再利用していました。 "wkhtmltopdf --version"の全結果は、バージョン番号だけでなく、一致する必要があります。

関連する問題