问题
i need to print a small report using PrintVisual
function like following:
uc.DataContext = myDataTable.DefaultView; // us is UserControl
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
pDialog.PrintQueue = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
pDialog.PrintTicket = pDialog.PrintQueue.DefaultPrintTicket;
pDialog.PrintTicket.PageScalingFactor = 1;
System.Printing.PrintCapabilities capabilities = null;
try
{
capabilities = pDialog.PrintQueue.GetPrintCapabilities();
}
catch
{
capabilities = null;
}
Viewbox vb = new Viewbox();
vb.Child = uc;
System.Windows.Size sz = new Size(520, 380);
vb.MinWidth = 1;
vb.MinHeight = 1;
vb.Measure(sz);
vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));
double scale = 1;
vb.LayoutTransform = new ScaleTransform(scale, scale);
pDialog.PrintVisual(vb, "MyViewBox");
the code works well in Win 8 and win 10 but not on win 7 any suggestions ?
来源:https://stackoverflow.com/questions/39298578/printvisual-is-not-working-on-windows-7