我正在尝试从 Silverlight 应用程序打印图像。我的扫描质量非常好(TIFF),分辨率为 1696x2200
当我打印时 - 我从那里得到PrintableArea
,PrintDocument
它是 816x1056
我所做的 - 我将位图的大小调整为可打印区域(以使文档适合页面),我得到的结果是模糊的图像。我知道这是缩放问题(很可能),但是如何正确缩放以使其看起来不错?当我在 Image 中显示文档并设置图像大小时 - 它看起来不错。
为了调整大小,我使用 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");
文档在屏幕上的外观(图片内)
这是打印出来的: