HTML ページを ABCpdf で PDF にエクスポートしようとしています。テキストは正常に変換されますが、チャートは非常にぼやけています。フォントサイズを大きくしようとしましたが、ほとんど役に立ちません。解決策は何ですか?
編集:それが役立つ場合は、asp.net チャートを使用しています。
HTML ページを ABCpdf で PDF にエクスポートしようとしています。テキストは正常に変換されますが、チャートは非常にぼやけています。フォントサイズを大きくしようとしましたが、ほとんど役に立ちません。解決策は何ですか?
編集:それが役立つ場合は、asp.net チャートを使用しています。
より高い DPI でグラフを出力する必要があります。ただし、abcpdfでこれを実行できるかどうかはわかりません。
あなたのチャットは画像だと思いますか?その場合、ぼやけの理由は、HTML 画像の DPI が 72 DPI であり、レンダリングされた PDF の DPI が 300 DPI であることです。
私が知っている唯一の方法は、HTML の画像をはるかに高い解像度 (300 DPI) にしてから、ページの高さと幅を設定してサイズを縮小することです。ABCPdf が画像をインポートすると、ソースがダウンロードされ、見栄えが良くなります。
他の答えは正しい軌道に乗っていますが、完全ではありません。
ブラウザは「通常」96 DPI で表示します。これは設定によって異なりますが、ここで想定するのはかなり安全です。PDF は 72 DPI にスケーリングされます。したがって、Rect をブラウザの幅の 3/4 に設定する必要があります。次に、画像が正しく表示されます。
副作用として、必要なサイズを取得するために、より高い解像度の画像が必要になる場合があります (画像の解像度を逆に、つまり 4/3 倍にすると、希望するサイズと同等になります)。ブラウザでご覧ください)。
以下のコードを使用すると、画像がぼやけることはありません (予想されるドキュメントの幅を調整する必要がある場合があります。幅が 612pt @ 72 DPI の PDF (文字サイズの縦向きなど) は、ブラウザーの幅に対応する必要があります)。 816px @ 96 DPI):
const Double pdfDpi = 72;
const Double browserDpi = 96;
var browserToPdfDpiRatio = BrowserDpi / PdfDpi;
pdf.HtmlOptions.BrowserWidth = (Int32)Math.Round(pdf.Rect.Width * browserToPdfDpiRatio, 0);