gpt4 book ai didi

c# - 使用 wpf 4 打印的最佳方法

转载 作者:太空狗 更新时间:2023-10-30 01:26:33 24 4
gpt4 key购买 nike

你好,我需要能够从我的 wpf 应用程序打印。我只是想打印一张交易收据。

我发现使用

PrintDialog pDialog = new PrintDialog();

pDialog.PrintVisual(new Receipt("交易名称","我的店铺"), "documentTitle");

这个技巧做得很好。 “Receipt() 是一个呈现交易详细信息的用户控件。

你打算怎么做?这是正确的方法吗?如果我不知道要使用的打印机,我该怎么办?我应该让用户控件只和热敏收据打印机一样宽吗?

任何建议都会很棒!

最佳答案

这是我用来打印 WPF 控件的方法:

System.Windows.Controls.PrintDialog printDlg = new System.Windows.Controls.PrintDialog();
if (printDlg.ShowDialog() == true)
{
System.Printing.PrintCapabilities capabilities =
printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);

double scale = Math.Min(
capabilities.PageImageableArea.ExtentWidth / control.ActualWidth,
capabilities.PageImageableArea.ExtentHeight / control.ActualHeight);

control.LayoutTransform = new System.Windows.Media.ScaleTransform(scale, scale);

Size sz = new Size(capabilities.PageImageableArea.ExtentWidth,
capabilities.PageImageableArea.ExtentHeight);

control.Measure(sz);
control.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth,
capabilities.PageImageableArea.OriginHeight), sz));

printDlg.PrintVisual(control, "My App");
}

这似乎工作得很好。

关于c# - 使用 wpf 4 打印的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com