0

PrintDocument クラスを使用して、C# で印刷アプリケーションを作成しています。物理的な印刷部分は思い通りに動作するようになりましたが、要件の 1 つは画像ファイルも保存することです。

画像を作成し、印刷ページをレンダリングしたのと同じ GDI 呼び出しを使用しました。文字以外はかなり似ています。印刷されたページは問題ありませんが、保存された画像により、8pt Courier フォントが 0.1pt フォントのように表示されます。

以下を追加しようとしましたが、うまくいきませんでした:

 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;

テキストレンダリングの違いの理由について何か考えはありますか?

4

1 に答える 1

1

見るには十分なコードではありません。投稿されたスニペットはフォントのスケーリングに関連していません。

印刷されたページと画像の大きな違いは、解像度の大幅な違いです。通常、600 dpi 対 96 dpi。プリンターのデフォルトのスケーリングは 1 ピクセル = 0.01 インチで、画面と紙にレンダリングしたときにテキストと画像がほぼ同じサイズになります。そのスケーリングを変更すると、あなたが抱えているような問題が発生します。

たとえば、コード内の Graphics.PageUnit への割り当てを探します。

于 2011-12-08T16:23:04.803 に答える