2012-01-17 27 views
5

私はラベルプリンタを構築しています。それは、ロゴといくつかのテキストで構成されています。私はすでに元のSVGロゴを画面に描画しようとしましたが、SVGはあまりにも多くの勾配などを使用して複雑すぎます。ReportLabイメージの品質を改善するにはどうすればよいですか?

私は高品質のビットマップロゴを(JPGまたはPNGとして)私はReportLabのキャンバスでそれを描いています。問題の画像は85×123ピクセルよりもはるかに大きいです。私は、このようにReportLabが全体を埋め込み、それに応じてスケールすることを望んでいました。私がそれをやっている方法は次のとおりです。

canvas.drawImage('logo.jpg', 22+xoffset, 460, 85, 123) 

問題は、私の前提が正しくありませんでした。画面解像度では85 * 123pxまで縮尺されているように見えます。これは印刷されたときに大きく見えません。

ReportLabにはキャンバスやドキュメント用のDPIコマンドがありますので、品質を維持できますか?

答えて

1

私が質問を書いている間に考えた1つの選択肢は、PDFのサイズを大きくして、プリンタにソートをさせることです。

私はすべての数字に5を掛けただけで、プリンタは何かを把握できたなら、私は350DPIに近いでしょう...しかし、私はかなり前提をしています。

8

以前はReportLab社で働いていたので、PDFに含まれている間にラスタイメージが自動的にリサンプリング/縮小されないことがわかりました。使用している85×123の寸法はピクセルではなく、ミリメートルまたはインチのような物理的な単位であるポイント(pt)です。

PDFビューアを使用して、これを確認したり、ズームインしたりするために、異なる品質の画像でPDFを印刷することをお勧めします。イメージが2回再サンプリングされると(イメージングソフトウェアで1回、次にPDFビューアで使用可能なピクセルに再サンプリングされる)、常にPDFビューアで少しぼやけて見えます。

これは、私はそれが与えられた物理的なサイズでも印刷するラスタ画像を作るためにピクセル単位でどのようなサイズを計算する方法を示します。

は72ポイントがである、私は絵が2インチ幅にしたいと仮定私のコードの幅は144になります。印刷するには、鮮明な解像度は300dpi(dots per inch)なので、ラスターイメージは600pxの幅で保存されます。

関連する問題