我有以下C#
代码打印8x6
照片在桌面应用程序。照片打印在C#
它的工作原理与普通信纸尺寸的纸张普通打印机上。
但我的客户端使用柯达打印机与8x6
纸,照片打印,但它们的大小是不同的,他们没有完全8x6
尺寸打印,我做错了什么。
是否有人可以指导我在正确的方向。
public void Print(List ListToBePrinted)
{
PrintDialog SelectedPrinter = new PrintDialog();
if (SelectedPrinter.ShowDialog() == true)
{
PrintCapabilities printerCapabilities = SelectedPrinter.PrintQueue.GetPrintCapabilities();
Size PageSize = new Size(printerCapabilities.PageImageableArea.ExtentWidth, printerCapabilities.PageImageableArea.ExtentHeight);
Size PrintableImageSize = new Size();
foreach (Uri aUri in ListToBePrinted)
{
DrawingVisual drawVisual = new DrawingVisual();
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = new BitmapImage(aUri);
imageBrush.Stretch = Stretch.Fill;
imageBrush.TileMode = TileMode.None;
imageBrush.AlignmentX = AlignmentX.Center;
imageBrush.AlignmentY = AlignmentY.Center;
if (imageBrush.ImageSource.Width > imageBrush.ImageSource.Height)
PrintableImageSize = new Size(768, 576); //8x6
else PrintableImageSize = new Size(576, 768); //6x8
double xcor = 0; double ycor = 0;
if (imageBrush.ImageSource.Width > imageBrush.ImageSource.Height)
{
if ((PageSize.Width - PrintableImageSize.Height) > 0)
xcor = (PageSize.Width - PrintableImageSize.Height)/2;
if ((PageSize.Height - PrintableImageSize.Width) > 0)
ycor = (PageSize.Height - PrintableImageSize.Width)/2;
}
else
{
if ((PageSize.Width - PrintableImageSize.Width) > 0)
xcor = (PageSize.Width - PrintableImageSize.Width)/2;
if ((PageSize.Height - PrintableImageSize.Height) > 0)
ycor = (PageSize.Height - PrintableImageSize.Height)/2;
}
using (DrawingContext drawingContext = drawVisual.RenderOpen())
{
if (imageBrush.ImageSource.Width > imageBrush.ImageSource.Height)
{
drawingContext.PushTransform(new RotateTransform(90, PrintableImageSize.Width/2, PrintableImageSize.Height/2));
}
drawingContext.DrawRectangle(imageBrush, null, new Rect(xcor, ycor, PrintableImageSize.Width, PrintableImageSize.Height));
}
SelectedPrinter.PrintVisual(drawVisual, "Print");
}
}
}
@digEmAll:这是一些快速的编辑! – Nick 2011-03-15 16:00:58
@Nick:上帝保佑Visual Studio中自动格式功能;-) – digEmAll 2011-03-15 16:01:59