我在将 Crystal Reports 文件报告为 PDF 格式时遇到问题。我在这里查看了有关该问题的所有其他问题,但似乎都没有解决我的问题。
这是我的代码:
Public Sub ExportReportToPDF(ReportObject As CRAXDRT.Report, ByVal filename As String, ByVal ReportTitle As String)
Dim objExportOptions As CRAXDRT.ExportOptions
ReportObject.ReportTitle = ReportTitle
With ReportObject
.EnableParameterPrompting = False
.MorePrintEngineErrorMessages = True
End With
Set objExportOptions = ReportObject.ExportOptions
With objExportOptions
.DestinationType = crEDTDiskFile
.DiskFileName = filename
'.FormatType = crEFTExcel80Tabular
'.FormatType = crEFTCommaSeparatedValues
'.FormatType = crEFTExcel80
'.FormatType = crEFTHTML32Standard
'.FormatType = crEFTHTML40
.FormatType = crEFTPortableDocFormat
'.FormatType = crEFTRichText
'.FormatType = crEFTText
'.FormatType = crEFTWordForWindows
End With
ReportObject.Export False
End Sub
现在,我将除 PDF 之外的其他选项留在那里只是为了展示它们,它们显然都被注释掉了,但是如果我尝试任何其他格式,它就可以很好地导出。唯一不导出的格式是 PDF。它给了我错误:
运行时错误“-2147190908 (80047784)”:无法导出报告。
当我单击 Debug 时,它会在 ReportObject.Export False 行上突出显示。
另一方面,如果我让用户选择选项,我可以选择 PDF,它仍然给我同样的错误。谢谢您的帮助。
(感谢 AVD 在这里找到的编码如何在 Crystal Report 中导出为 PDF 文件?)。
编辑:通过菲利普的回应后,我正在逐步检查我的代码,并注意到在将 crEFTPortableDocFormat 分配给 FormatType 后,它会自动将“UXFPDF.DLL”分配给 FormatDllName。也许这是我的问题,有谁知道如何解决这个问题?我尝试重命名 crxf_pdf.dll 和 u2fpdf.dll(我最初拥有的用于 8.0 的那个),但这没有用。
编辑:另一个发现是,当我在 CRViewer91 中启用导出选项(正确显示报告)并尝试通过此方法将其导出为 pdf 时,它不会出错。但是,它保存了一个几乎已损坏且无法打开的文件。
编辑:更多研究。CRViewer91 似乎无法成功导出任何格式。RTF 和 TXT 返回空白文档,尝试打开时出现 RPT 错误。
编辑:我认为我的部分问题可能是我一直在使用 8.0 CRAXRT.DLL,而我真正需要的是 9.0。我找到了 9.0 的那个,现在我如何让它使用这个而不是旧的?