我已经使用下面的代码打印button:
Data.str = null; //Data.str = textBox24.Text.ToString(); string s = "select * from temp_bond"; cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Real.mdb"; cn.Open(); DataSet ds = new DataSet(); OleDbDataAdapter da = new OleDbDataAdapter(s, cn); ds.Clear(); da.Fill(ds); Bond rpt = new Bond(); rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, "BOND_" + Data.str + ".pdf"); System.Diagnostics.Process.Start("BOND_" + Data.str + ".pdf"); //r.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, "E:\\rep.pdf"); //crystalReportViewer1.ReportSource = r; OleDbCommand cm1 = new OleDbCommand("delete * from temp_bond", cn); cm1.ExecuteNonQuery(); cn.Close();
我在这段代码中遇到错误:
rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, "BOND_" + Data.str + ".pdf");
错误是:
页眉和页面页脚对页面来说太大。 错误在文件C:\ DOCUME〜1 \ ADMINI〜1 \ LOCALS〜1 \ Temp \ temp_3f674868-8e5d-46ce-80eb-dce78bb2ba89 {17674136-B71E-4C6F-9E36-1CEB514B13BF} .rpt:页眉或页脚长于页。
什么可以导致这种情况,我该如何解决?
我有一个已发布多年的应用程序,并使用Crystal Reports作为嵌入式文档生成工具。 包含在我的应用程序中的报告已经运行了好几年了,当我收到一个用户收到的这个确切的错误信息的支持电话时,我被困了一会儿。
经过一番摸索和研究,我发现主要的罪魁祸首是最终用户计算机上的默认打印机。 如果默认打印机当前配置为在比您生成的报告更小的纸张上打印,则Crystal Reports将为您提供此错误消息。 另外,如果打印机的打印方向与CR报告的方向不同,您将收到此消息。
这个bug的真正奇怪/设计不佳的问题是,即使您声明运行时只是创建一个PDF,您也会收到它。 我假定CR正在使用一些默认的打印机设置来初始化运行时间。
你有几个选择来解决这个问题。 首先,您可以将默认打印机更改为其他设备。 如果您的默认打印机具有不同的非典型形状因子(例如标签打印机),则可能必须执行此操作。如果标签小于文档,Crystal Reports将不会喜欢标签打印机。
当然,选项二是重新配置打印机驱动程序,以指定足够大的纸张类型以适合您的文档。 此外,如上所述,确保纸质打印首选项也设置为按照Crystal Report文档所需的正确方向(横向或纵向)进行打印。
最后,您可以将您的默认打印机更改为另一台打印机,或者从您的PC中取出打印机。 这不是最有利的答案,但这可能是让信息消失的最后一个必要步骤。
我最近有一个类似的问题,但我无法通过更改默认打印机或通过更改它们的设置来解决它。
我设法通过手动设置代码报告的参数来解决问题。
这是一个向你展示的例子。
dim crep As New CrystalDecisions.CrystalReports.Engine.ReportDocument crep.PrintOptions.PaperOrientation = PaperOrientation.Portrait crep.PrintOptions.PaperSize = PaperSize.PaperA4
Saludos todos! =)
我遇到了同样的问题,并将默认打印机更改为Microsoft XPS Writer。 这纠正了我的水晶报告的显示。
尝试更改水晶报告的页面大小右键单击报告设计 – >页面设置…尝试与A4,景观和其他人根据需要。
我在使用网络配置的Zebra标签打印机作为打印服务器时,也遇到了这个问题。 我不想尝试更改客户端默认打印机上的设置,因为我无法确定将打印哪个客户端。 而是将其固定在打印服务器(Windows server 2008)上的驱动程序设置(打印机默认值)中。 所以在打印服务器上:
检查标题或其他对象。
设置属性:
can grow = False
经过漫长的搜索和尝试,我发现当水晶观看者加载页面设置有四个页边距(上,下,左,右)自动改变。 所以总是把它们写在你的代码中。 它会解决你的问题。