我正在尝试使用以下代码
在wpf中打印树视图控件PrintDialog printDlg = new PrintDialog();
printDlg.PrintVisual(trv, "GTree Printing.");
树视图正在打印,但它打印到右侧,一些数据正在切断。在这种情况下如何设置保证金?它也不会打印整个树形结构,只有可见部分正在打印。请就此提出建议。
这是在桌面应用程序中
谢谢, Sivajith
答案 0 :(得分:0)
public static void Print(IEnumerable<UIElement> dataForPrint, string printerName)
{
try
{
var printDialog = new PrintDialog();
using (var printQueue = new PrintQueue(new PrintServer(), printerName))
{
printDialog.PrintQueue = printQueue;
var area = printDialog.PrintQueue.GetPrintCapabilities();
if (area.PageImageableArea == null) throw new Exception("Failed to load printer settings.");
var flowDocument = new FlowDocument
{
PagePadding = new Thickness(area.PageImageableArea.OriginWidth, 0, 0, 0),
PageWidth = area.PageImageableArea.ExtentWidth + area.PageImageableArea.OriginWidth
};
foreach (var uiElement in dataForPrint)
{
flowDocument.Blocks.Add(new BlockUIContainer(uiElement));
}
var paginator = ((IDocumentPaginatorSource) flowDocument).DocumentPaginator;
printDialog.PrintDocument(paginator, "A Flow Document");
}
}
catch (NotSupportedException)
{
}
catch (Exception e)
{
Log(e);
}
}
如果您显示打印机对话框,则无法创建PrintQueue。只需访问PrintDialog.PrintQueue属性