c# - Crystal 报表出现 "Page Header plus Page Footer is too large for the page"错误的原因是什么?

标签 c# .net windows

我为打印按钮使用了以下代码:

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");

错误是:

Page Header plus Page Footer is too large for the page. Error in File C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\temp_3f674868-8e5d-46ce-80eb-dce78bb2ba89 {17674136-B71E-4C6F-9E36-1CEB514B13BF}.rpt: Page header or footer longer than a page.

什么会导致此问题,我该如何解决?

最佳答案

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

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

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

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

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

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

关于c# - Crystal 报表出现 "Page Header plus Page Footer is too large for the page"错误的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098164/

相关文章:

c# - 为什么 "\n"在 Windows 上换行?

c++ - 设置文件属性成功但检索失败

c++ - 使用 C 中的 Windows API 隐藏文件或目录

c# - 读取 Excel (.xls) 模板,用文本框值替换变量并在 C# 中保存 Excel 文件

c# - .Net/C# : what's the real size of an integer?

c# - 如何在 IIS(Internet 信息服务)的 Web 服务中使用 FileStream 上传文件(大尺寸)

c# - 什么是替代 BinaryFormatter 的良好内存保守序列化程序?

c# - 在 WinForms 桌面应用程序中使用 jQuery?

c# - 懒惰<> Ninject 注入(inject)

c# - 如何将DataGridView动态添加到TabPage