Crystal SP 23-WPF查看器-横向

2020-09-03 18:01发布

         点击此处--->   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,重新格式化)" 

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

         点击此处--->   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菟菟
1楼 · 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查看器仍处于早期阶段,确实需要更多增强功能,使用它的人并不多 因此,他们默认情况下不会对其进行增强。

再次感谢

me_for_i
2楼-- · 2020-09-03 18:29

我使用1803 build对其进行了测试,并且它也可以正常工作,因此缩放页面必须是您使用的打印机。

Nir深蓝
3楼-- · 2020-09-03 18:34

我要发表一些看法。

  • SP 23具有相同的横向打印错误。
  • 它与Windows的任何特定版本无关。 我发现此错误的早期版本(以前的SP)受特定Windows安全和质量更新的影响,并且删除特定更新可以解决此问题。 可能更新仍在影响SP 23中的打印,但我无法确认。
  • 无论是否将其绑定到打印机,SP 23中都会发生此错误。
  • 打印到XPS可以正常工作。

无论打印对话框中或其他任何地方设置了什么,它始终以纵向打印。 否则将以纵向正确打印风景文档。 只是在限制内容。

这应该是一个非常简单的修复。 在接受用户输入之后,然后将其发送以进行打印之前,该软件将从打印对话框打印票证中清除方向,并将其设置为纵向。

粗暴的香蕉
4楼-- · 2020-09-03 18:32

真的不应该在调试模式下发布PDB文件或.dll文件。 但是,既然您这样做了,我就能在大多数情况下解决此横向打印问题。

我认为可以通过在Crystal WPF运行时中删除带有红色框的行来解决此问题。 (编辑:如果有人需要其应用程序的修复程序,请私下联系我。)

如果您不希望发布代码,请随时删除此帖子。 但是,这应该使您了解人们为什么会遇到问题。

干杯!

一周热门 更多>