Mass 发表于 2022-11-18 15:56:34

ar12 .NET MVC 打印出现白纸


.NET MVC 打印出现白纸 我看到给的例子用方法 Document.Print(true, true, false); 但是根本没这个方法
有这个方法 Document.Printer.Print(); 但是打印出来是白纸




            System.Drawing.Printing.PrintDocument fPrintDocument = new System.Drawing.Printing.PrintDocument();
            var testReport = new PageReport(new FileInfo(Server.MapPath("~/AR/ARModel/CGRKOrder.rdlx")));
            testReport.Report.Classes.Add(new GrapeCity.ActiveReports.PageReportModel.CodeClass() { ClassName = "CySoft.Utility.ARHelper", InstanceName = "ARHelper" });
            testReport.Document.LocateDataSource += (sender, args) =>
            {
                var br = Td_Jh_1BLL.GetAR("2109265000000698");
                if (br.Success)
                {
                  var data = (List<Td_Jh_1_Query_DetailModel_AR>)br.Data;
                  args.Data = data;
                }
                else
                {
                  args.Data = new List<Td_Jh_1_Query_DetailModel_AR>();
                }
            };
            testReport.Run();
            testReport.Document.Printer.Print();//此方法打印出来是白纸
            pageDocument.Print(true, true, false);//无此方法



Bella.Yuan 发表于 2022-11-21 10:15:29

您好,这个应该是您使用的有问题,您可以查看一下12版本的API
https://help.grapecity.com/activereports/webhelp/AR12/webframe.html#PrintMethodsInActiveReportsDeveloper.html



Mass 发表于 2022-11-21 10:43:15

Bella.Yuan 发表于 2022-11-21 10:15
您好,这个应该是您使用的有问题,您可以查看一下12版本的API
https://help.grapecity.com/activereports/ ...

一样的代码复制过来没有这个print方法

Mass 发表于 2022-11-21 10:45:35

本帖最后由 Mass 于 2022-11-21 10:47 编辑

Bella.Yuan 发表于 2022-11-21 10:15
您好,这个应该是您使用的有问题,您可以查看一下12版本的API
https://help.grapecity.com/activereports/ ...






一样的代码没有方法是不是ar12 dll版本的问题 我这边是


#region 程序集 GrapeCity.ActiveReports.v12, Version=12.3.18467.2, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
// C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 12\GrapeCity.ActiveReports.v12.dll
// Decompiled with ICSharpCode.Decompiler 6.1.0.5902
#endregion


ar12 dll版本有多个的么?


Bella.Yuan 发表于 2022-11-21 11:22:04

Mass 发表于 2022-11-21 10:45
一样的代码没有方法是不是ar12 dll版本的问题 我这边是




您好,检查一下您的项目是否安装了对应的dll。

Mass 发表于 2022-11-21 14:53:57

Bella.Yuan 发表于 2022-11-21 11:22
您好,检查一下您的项目是否安装了对应的dll。

你好,引入的GrapeCity.ActiveReports.Viewer.Win.v12.dll可以使用pageDocument.Print(true, true, false);方法了
但是还有个问题 这个地方可以打印出来 不过打印的文件怎么不全的 边边上少了 感觉像放大了 边上没出来
样子是这样:


代码为:

但是我拿此pageDocument转成pdf却是正常的
代码如下:


在pageDocument.Print(true, true, false);
之前设置

pageDocument.Printer.DefaultPageSettings.Margins.Bottom = 0;
            pageDocument.Printer.DefaultPageSettings.Margins.Left = 0;
            pageDocument.Printer.DefaultPageSettings.Margins.Right = 0;
            pageDocument.Printer.DefaultPageSettings.Margins.Top = 0;
            pageDocument.Printer.PaperSize.Width = 500;
            pageDocument.Printer.PaperSize.Width = 500;
            pageDocument.Print(true, true, false);

但是出来的 是这样
那么需要如何设置这个100%的 我看到赋值的都是int的宽 高
想直接得到 生成pdf的那种效果 高宽100%

怎么设置呢??




Bella.Yuan 发表于 2022-11-21 16:17:34

本帖最后由 Felix.Li 于 2022-11-21 16:22 编辑

Mass 发表于 2022-11-21 14:53
你好,引入的GrapeCity.ActiveReports.Viewer.Win.v12.dll可以使用pageDocument.Print(true, true, false ...
您好,这个是纸张大小的问题,设计的纸张和打印的纸张一致时打印的是正常的,不一致时,您可以自定义纸张大小。宽是width,高是height,您调整一下打印看看。



然后我们获取纸张宽度的方法可以这样:

他获取的是我们设计的时候的纸张大小,然后你把这个纸张大小装换成PDF的纸张格式显示的大小即可

Mass 发表于 2022-11-25 11:12:54

Bella.Yuan 发表于 2022-11-21 16:17
您好,这个是纸张大小的问题,设计的纸张和打印的纸张一致时打印的是正常的,不一致时,您可以自定义纸张 ...

还有个问题 我现在有一些客户做好的pdf文件 在winfrom项目中如何对这些pdf直接进行打印 你们提供的PageReport 如何把这个pdf文件加载并打印的?

Bella.Yuan 发表于 2022-11-25 13:37:40

Mass 发表于 2022-11-25 11:12
还有个问题 我现在有一些客户做好的pdf文件 在winfrom项目中如何对这些pdf直接进行打印 你们提供的Pag ...

您好,这个您在网上查找一下教程就可以了,帮您找了一个链接,您可以参考参考:
https://blog.csdn.net/weixin_39999209/article/details/119659696

Mass 发表于 2022-11-25 14:41:11

Bella.Yuan 发表于 2022-11-25 13:37
您好,这个您在网上查找一下教程就可以了,帮您找了一个链接,您可以参考参考:
https://blog.csdn.net/ ...

我看了 Spire.Pdf 是有打印页数限制的 一些打印的是要收费的, 目前试了PdfiumViewer 这个开源可以用你们的PageReport支持么? 如果可以的话 希望用到你们的类库 毕竟买了点数了
页: [1] 2
查看完整版本: ar12 .NET MVC 打印出现白纸