Crystal SP 23-WPF查看器-横向

2020-09-03 18:01发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我不确定这是否是问的正确地方,但...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我不确定这是否是问的正确地方,但是我还是会问:

我已经耐心等待发布SP 23,以修复"无法从WPF Viewer打印横向"错误。 SP 23终于发布了,我在修复列表中看到了该问题,但是看来它实际上没有得到解决? Landscape现在肯定可以使用,但是-我正在尝试从查看器中打印出风景/合法的文档,并且页面以横向打印(应旋转90度),但是页面上的内容被裁剪为8.5英寸 宽度。 (并且居中)。 因此,基本上看起来像是有人印刷了标准的信函文件,然后将其粘贴在一张横竖的法律纸上。 怎么了,这是另一个错误吗?

也:如果我直接从VS 2017设计器打印,则该页面打印正确,并以整页形式横向打印。 从WPF查看器进行打印时(代码中没有更改任何设置,而我使用的是内置的打印对话框)最后得到的是上述内容。

我检查了打印机设置,它们是正确的(合法纸张,横向模式。由于尺寸原因,这些文件在进入报告时会自动设置),我尝试了所有取消关联(开/关)/无打印机的组合( 开关)。 什么都没有给我预期的结果。

非常感谢。

编辑:我刚刚通过使用

发现了这一点
" PrintToPrinter(printerSettings,pageSettings,重新格式化)" 

功能,横向和页面大小可以正常预期地工作。 使用默认的打印按钮/对话框时,我上面提到的打印错误存在。 (当前是我们的客户使用的按钮)。

10条回答
小c菟菟
2020-09-03 18:32 .采纳回答

嗨,迈克尔,

默认情况下,WPF查看器使用PrintToPrinter()来调用通用Windows Framework来打印报告,没有选择来改变方向。

它仍然是您需要与Engine和RAS以及WinForm或WEB查看器一起使用的功能,只需获取/设置它即可。

如果将打印机的默认方向设置为横向,则可能会起作用,但是您需要按如下所示使用RAS inProc服务器来执行此操作,这可能会覆盖默认的PrintToPrinter API:

 public void button1_Click( 对象发送者,RoutedEventArgs e)
 {
     CrystalDecisions.CrystalReports.Engine.ReportDocument doc =新的CrystalDecisions.CrystalReports.Engine.ReportDocument();
     CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument rptClientDoc = doc.ReportClientDocument;
     doc.Load(@" C:\ Reports \ Samples \ En \ Reports \ General Business \ Sales with OnDemand Sub.rpt");
     rptClientDoc.PrintOutputController.ModifyPaperOrientation(CrPaperOrientationEnum.crPaperOrientationLandscape);

     crystalReportsViewer2.ViewerCore.ReportSource = rptClientDoc;
     crystalReportsViewer2.ViewerCore.Visibility = Visibility.Visible;
     crystalReportsViewer2.ShowPrintButton = true;
     crystalReportsViewer2.ToggleSidePanel = SAPBusinessObjects.WPF.Viewer.Constants.Sid​​ePanelKind.GroupTree;
     crystalReportsViewer2.ViewerCore.EnablePrint = true;
    //crystalReportsViewer2.ViewerCore.PrintReport();
    //doc.PrintToPrinter(1,false,1,1);
    //doc.Close();

 } 

现在创建您自己的打印按钮,并使用PrintOutputController进行打印。

WPF查看器仍处于早期阶段,确实需要更多增强功能,使用它的人并不多 因此,他们默认情况下不会对其进行增强。

再次感谢

一周热门 更多>