11

我已将以下代码用于打印按钮:

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 中的错误:页眉或页脚长于页。

什么可能导致这种情况,我该如何解决?

4

10 回答 10

19

我有一个已发布多年的应用程序,它使用 Crystal Reports 作为嵌入式文档生成工具。我的应用程序中包含的报告已经工作了多年,当我接到一位收到此确切错误消息的用户的支持电话时,我被难住了一段时间。

经过一番摸索和研究,我发现罪魁祸首是最终用户计算机上的默认打印机。 如果默认打印机当前配置为在比您生成的报表更小的不同尺寸的纸张上打印,Crystal Reports 将给您此错误消息。 此外,如果打印机设置为以不同于 CR 报告方向的方向打印,您将收到此消息。

这个错误的真正奇怪/设计不佳的问题是您将收到它,即使您向运行时声明只是创建一个 PDF。我假设 CR 正在使用一些默认打印机设置来初始化运行时。

你有几个选项来解决这个问题。首先,您可以将默认打印机更改为另一台设备。如果您的默认打印机具有不同的非典型外形(例如标签打印机),您可能必须这样做。如果标签比您的文档小,Crystal Reports 将不喜欢标签打印机。

选项二当然是重新配置您的打印机驱动程序以指定足够大以适合您的文档的纸张类型。此外,如前所述,请确保纸张打印首选项也设置为按照 Crystal Report 文档预期的正确方向(横向或纵向)打印。

最后,您可以将默认打印机更改为另一台打印机或从您的 PC 中删除该打印机。这不是最有利的答案,但它可能是让信息消失的最后必要步骤。

于 2012-11-02T14:41:23.733 回答
3

我最近遇到了类似的问题,但我无法通过更改默认打印机或更改它们的设置来解决它。

我设法通过手动通过代码设置报告的参数来解决问题。

这是一个向您展示的示例。

dim crep As New CrystalDecisions.CrystalReports.Engine.ReportDocument
crep.PrintOptions.PaperOrientation = PaperOrientation.Portrait
crep.PrintOptions.PaperSize = PaperSize.PaperA4

Saludos 一个待办事项!=)

于 2013-10-23T21:41:33.920 回答
1

我遇到了同样的问题,我将默认打印机更改为 Microsoft XPS Writer。这更正了我的水晶报告显示。

于 2013-09-17T16:09:39.063 回答
0

尝试通过右键单击报表设计-> 页面设置来更改水晶报表的页面大小...根据需要尝试使用 A4、横向和其他。

于 2014-05-27T11:55:09.130 回答
0

经过长时间的搜索和尝试,我发现当水晶查看器加载页面设置时,四个边距(上、下、左、右)会自动更改。所以总是把它们写在你的代码中。它会解决你的问题。

于 2017-09-13T11:40:59.333 回答
0

在设计 -> 页面设置 -> 边距中关闭“自动调整”。

于 2019-01-23T18:53:37.487 回答
0

打印到部署在 Windows Server 2019 中的点阵打印机时,我遇到了类似的错误。

用户在尝试从使用 Crystal Reports 的 Terralink 数据库打印到 Epson FX-890 时会收到此错误。

错误:567 文件页眉或页脚长度超过一页的错误。

在阅读了上面的建议后,我通过在高级文档设置下返回用户的打印机设置并确保在这种情况下默认为 8.5x11 字母页面,成功摆脱了错误。

感谢您的帮助。

-拉吉

于 2020-06-11T00:45:56.577 回答
0

在 Windows Server 上由网络配置的 Zebra 标签打印机作为打印服务器时,我也遇到了这个问题。我不想尝试更改客户端默认打印机的设置,因为我不能确定哪个客户端会打印。相反,我在打印服务器(Windows Server 2008)的驱动程序设置(打印机默认设置)中修复了它。所以在打印服务器上:

  1. 转到“设备和打印机”并选择受影响的打印机。
  2. 右键单击并选择“打印机属性”。
  3. 转到“常规”选项卡,然后单击底部的“更改属性”按钮。
  4. 转到“高级”选项卡,然后单击“打印默认值...”按钮。
  5. 转到“页面设置”选项卡并定义所需的设置(大小、方向)。
  6. 根据需要多次单击“确定”保存并退出。
于 2015-12-09T17:17:59.733 回答
0

我刚刚在我的 MS Dynamics 环境中运行多年没有问题的 Crystal Report 出现此错误。经过一番挠头和谷歌搜索后,我的一个用户说“哦,我猜你想让我删除订单上的所有注释”。

我的 Crystal 报表模板在报表的标题中有一个“注释”框。在设计中,它适合有 1 行笔记,表格适合 A4 页面。

[报价单]

用户在该框中输入了超过 40 行注释......因此它将其推到了页面边界之外。

于 2019-05-09T06:31:28.873 回答
0

检查标题或其他对象。

设置属性:

can grow = False
于 2017-02-02T07:43:13.797 回答