2016-03-22 6 views
0

私は現在、いくつかの計算と出力グラフをpdfファイルで行うことを目的としたC#アプリケーションを開発中です。MigraDocを使ってZedGraphをPDFに変換する

私はgraphPane.AddCurve(PointPairList)のようなグラフを描画するためにZedgraphライブラリを使用します。今度は、これらのグラフをMigraDocパッケージ経由でpdfファイルに出力しようとしました。

現在、私はZedgraphをビットマップにマッピングし、pdfファイルに貼り付けるスクリプトを用意しています。だからこのようなもの:

private Bitmap getBitMap() 
{ 

    ZedGraphControl graph = new ZedGraphControl(); 

    newGraph = graphPane.Clone(); 

    SizeF s = new SizeF(3.5f, 4.5f); 
    newGraph.Scale(s); 

    newGraph.DrawToBitmap(bit, new Rectangle(0, 0, newGraph.Width, newGraph.Height)); 

    return bit; 

} 

これは私にpdfページでわずかにピクセル化されたイメージを与えることです。そして、私はこのグラフを非常に高品質にする必要があります。だから、私は品質を向上させるために何か変わることがありますか、それとも私はそのようなことに対する私のアプローチ全体を変えなければなりません。

ありがとうございます。デフォルトでは

答えて

0

あなたが持って作成Bitmap75dpi限り低くすることができ、あなたの現在の画面解像度、より一般的な96dpi。より現代的なモニターは120dpi以上ですが、良好な印刷品質は150dpiになります。実際にリップ画像の場合は、300dpiが必要です。拡大を許可するには、600dpi以上が必要です。

したがって、より大きなサイズのビットマップを作成して塗りつぶし、そのdpi解像度を制御する必要があります。

あなたのサイズが3.5f x 4.5fであると仮定すると、300dpiの場合は、ピクセルを持つBitmapが必要です。

だから、あなたは、このようなBitmapを作成する必要があります..:

Bitmap bmp = new Bitmap(1050, 1350); 

..and 解像度を設定します。

bmp.SetResolution(300, 300); 

あなたのコントロールを、それを埋めるために同じ大きさを持っている必要があります

newGraph.ClientSize = bmp.Size; 

now DrawToBitmapはcrea鮮明でズームインに適した画像を表示してください。

コントロールが画面に収まらない場合は問題ありません。 DrawToBitmapはまだ動作します。

更新addidtionでそれが品質ラインなどを描くために重要である十分な解像度に... ZedGraphの専門は、1つのいずれかの個々の行のために、アンチエイリアシングをオンにすることができるということです。

curve_x.Line.IsAntiAlias = true; 

または他の要素:

myPane.XAxis.Scale.FontSpec.IsAntiAlias = true; 

または全部チャート:

zedGraphControl1.IsAntiAlias = true; 

すべての例は、from this postとしています。

+0

よろしくお願いします、今はうまくいくと思います。ありがとうございました。他の誰かが同じ問題を抱えている場合に私が発見したもう一つのポイント。 lineedem.Line.isAntiAliasは、zedgraphControlからのピクセル化を処理する関数です。 –

+0

はい、アンチエイリアスは、ZedGraph図のためにオンにすることができます。 [ここ](http://stackoverflow.com/questions/17287666/isantialias-creates-border-around-graph)を参照してください!それはいくつかのレベルで利用できるようです - あなたが答えに満足している場合、それを考慮する検討してください[受け入れ](http://stackoverflow.com/help/accepted-answer)それ! – TaW

+0

このメソッドを適用する際に別の問題が見つかりました。 pdfファイルのサイズは膨大です。とにかく300x300dpiの品質が適用されるように出力を拡大することはできますか?私は –

関連する問題