【发布时间】:2013-08-05 15:33:16
【问题描述】:
我在将 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)”: 报告导出失败。
当我单击“调试”时,它会在 ReportObject.Export False 行上突出显示。
另一方面,如果我这样做是为了让用户选择选项,我可以选择 PDF,但它仍然给我同样的错误。感谢您的帮助。
(感谢 AVD 在这里找到的编码How to Export to a PDF file in Crystal Report?)。
编辑:查看 Phillipe 的回复后,我正在逐步执行我的代码,并注意到在将 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 的那个,现在如何让它使用这个而不是旧的?
【问题讨论】:
标签: vb.net pdf crystal-reports export