Silverlightアプリケーションから画像を印刷しようとしています。解像度1696x2200のかなり高品質のスキャン(TIFF)があります
私が印刷するとき-私はPrintableArea
から得ます、PrintDocument
そしてそれは816x1056です
私がすること-ビットマップを印刷可能な領域にサイズ変更し(ドキュメントをページに合わせるため)、結果はぼやけた画像になります。これがスケーリングの問題であることは理解していますが(ほとんどの場合)、見栄えを良くするために適切にスケーリングするにはどうすればよいですか?画像内にドキュメントを表示し、画像サイズを設定するだけで、見栄えがします。
サイズ変更には、WriteableBitmapEx拡張機能を使用しており、両方のタイプのサイズ変更を試しました(最近傍と双線形)
コード:
var printDocument = new PrintDocument();
printDocument.PrintPage += (s, ea) =>
{
var printableArea = ea.PrintableArea;
var bitmap = this.currentPreviewPage.FullBitmap.Resize((int)printableArea.Width, (int)printableArea.Height, WriteableBitmapExtensions.Interpolation.Bilinear);
var image = new Image { Source = bitmap };
var canvas = new Canvas { Width = bitmap.PixelWidth, Height = bitmap.PixelHeight };
canvas.Children.Add(image);
ea.PageVisual = canvas;
ea.HasMorePages = false;
};
printDocument.PrintBitmap("Silverlight Bitmap Print");
ドキュメントが画面上でどのように見えるか(画像内)
そしてこれは印刷されます: