2017-11-27 51 views
1

PDF文書に埋め込むためにSVGファイルをPDFに変換しようとしています。私はSVGのバイトを渡して、PDFのデータを取得して、バティックのトランスコーダーを使用しています。Apache Batik SVGからPDFへ - 出力PDFが正しくないサイズ

width="602.8" height="763.8" 

SVGから生成される出力PDFファイルはしかし小さい:

私の主なPDF文書との両方のトランスコーダに渡さSVGファイルは、の寸法を有します。このため、メイン文書に埋め込まれた場合、生成されたSVG PDFは、主なPDF内の使用可能な領域すべてを占めていません。どのようにして出力pdfがメイン文書/入力SVGの同じ寸法を持つようにすることができますか?

+0

pdfは72 dpiでレンダリングされますが、pdf形式はベクトルです。したがって、サイズを変更することができます。品質は同じです –

答えて

1

これ以上の研究の後、私は解決策を見つけました。 PDFBoxをPDF操作ツールとして使用しています。このツールは、デフォルトでドキュメントのDPIを72としています。

一方、Batikは、SVGをPDFファイルにトランスコードする際に96のDPIを使用します。これにより、出力ファイルはメインのPDFBox生成ドキュメントよりもわずかに小さくなります。 BatikをデフォルトでPDFBoxをサポートするDPIに切り替えるには、ピクセルを96dpiから72dpiへのmm変換に変更する必要があります。

次のように私たちはPDFTranscoderにトランスコーディングヒントを追加することができます(25.4f/72F)は72dpiですに等しい

transcoder.addTranscodingHint(PDFTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER, 
(25.4f/72f)); 

を。これは、デフォルトのdpiを96dpi(25.4f/96f)に置き換えます

関連する問題