netstone 发表于 2018-8-9 09:42:04

报表文件直接导出到PDF

请教:
我需要将报表的文件直接以PDF文件导出,参考下面的例子:
GrapeCity.ActiveReports.Samples.EndUserDesigner
            bool isFpl = true; //_reportType == DesignerReportType.Page;            var pdfRenderingExtension = new PdfRenderingExtension();            //var pdfSettings = pdfRenderingExtension.GetSupportedSettings(isFpl);
            StreamProvider StreamProvider                 = new FileStreamProvider(new DirectoryInfo(Path.GetDirectoryName(sFile)), Path.GetFileNameWithoutExtension(sFile));
            if (File.Exists(sFile))            {                File.Delete(sFile);            }
            PageExport pdfExport = new PageExport            {                DisplayName = GrapeCity.ActiveReports.Samples.EndUserDesigner.Properties.Resources.PagePDFString,                DefaultFileName = GrapeCity.ActiveReports.Samples.EndUserDesigner.Properties.Resources.PDFFileName,                Settings = pdfRenderingExtension.GetSupportedSettings(isFpl),                Filter = GrapeCity.ActiveReports.Samples.EndUserDesigner.Properties.Resources.PDFFilter,                RenderingExtension = pdfRenderingExtension,            };
            viewer1.Render(pdfRenderingExtension, StreamProvider, pdfExport.Settings.GetSettings());
执行到最后一句的时候,会提示:Operation is not supported for section report.如果已经加载到页面之后,通过一个按钮执行这段代码,则可以实现正常导出。
请教应该如何解决在不显示到界面上的情况下,如何实现导出,多谢。

KearneyKang 发表于 2018-8-9 10:57:33

你现在是想直接把报表导出PDF的模式是吧,你可以参考下如下的导出PDF的代码:
// Provide the page report you want to render.
System.IO.FileInfo rptPath = new System.IO.FileInfo(@"..\..\PageReport1.rdlx");
GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(rptPath);

// Create an output directory.
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyPDF");
outputDirectory.Create();

// Provide settings for your rendering output.
GrapeCity.ActiveReports.Export.Pdf.Page.Settings pdfSetting = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();

// Reduce the report size and report generation time.
pdfSetting.OptimizeStatic = true;

// Set the rendering extension and render the report.
GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension pdfRenderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));

// Overwrite output file if it already exists
outputProvider.OverwriteOutputFile = true;

pageReport.Document.Render(pdfRenderingExtension, outputProvider, pdfSetting);



netstone 发表于 2018-8-14 13:02:17

好的,多谢。

KearneyKang 发表于 2018-8-14 13:48:10

不客气啊

netstone 发表于 2018-8-18 09:49:35

您好!再请教一下,文件导出时会根据指定的文件名自动判断扩展名是吗?
我测试Word文件导出的时候,如果文件名给出的是 .doc是可以的,但是如果给定的是 docx,则自动附加了.doc扩展名。
请问下,各种不同的导出格式,对命名的规则有文档说明吗?多谢。

KearneyKang 发表于 2018-8-20 09:18:42

你说的命名规则是什么规则,你现在是想导出WOrd的后缀为 .doc 还是 .docx

netstone 发表于 2018-8-20 11:30:05

KearneyKang 发表于 2018-8-20 09:18
你说的命名规则是什么规则,你现在是想导出WOrd的后缀为 .doc 还是 .docx

就是想知道一下,文件导出时,针对选择的各种格式,系统会自动添加哪种扩展名。

KearneyKang 发表于 2018-8-20 13:53:21

本帖最后由 KearneyKang 于 2018-8-20 13:56 编辑

这是对应导出实现的各种不同模式的代码,你参考看看,根据导出的模式不同导出的样式的扩展名也不同。你看看你可以参考借鉴不




你可以在此处下载看到对应的具体的文档

https://gcdn.grapecity.com.cn/fo ... 2506&extra=page%3D1


netstone 发表于 2018-8-20 15:27:24

你好,打开Help文件的时候,会出现这种情况。尝试了百度查到的一些办法,都不行。请问是什么原因?

KearneyKang 发表于 2018-8-20 16:02:20

你现在AR11.2的
AR12的好像网络有点问题,没办法访问
页: [1]
查看完整版本: 报表文件直接导出到PDF