在企业组织中,对历史数据或者敏感数据的进行归档保存已经是一个非常普遍的需求。在电子化信息时代,我们需要经常性的对数据进行数字化归档保存,将这些电子文档存储为一种稳定的格式,以便在以后打开这些时依然显示保存时的所有设置的需求变得越来越重要。
PDF/Archive(PDF/A)是PDF的一个子集,已经成为电子档案保存的最佳解决方案。PDF/A格式主要用于满足以下两方面的需求:一是为电子归档工作寻找一个能够长期、安全保存文件内容的方式;二是在将来检索时,能够保证文件拥有始终如一的显示效果。
在ActiveReports产品中已经支持将报表导出为PDF格式,在最新发布的ActiveReports 7 SP1 版本中,增加了对PDF/A格式的导出支持,ActiveReports 支持的PDF格式版本如下:
1. PDF/A – 1
- PDF/A – 1A
- PDF/A – 1B
2. PDF/A – 2
- PDF/A – 2A
- PDF/A – 2B
- PDF/A – 2U
3. PDF/A – 3
- PDF/A – 3A
- PDF/A – 3B
- PDF/A – 3U
使用 ActiveReports 创建的报表,可以在导出PDF文件时设置 Version 属性来指定PDF/A所使用的详细版本。
以下代码演示了如何使用 ActiveReports 将报表导出为不同版本的 PDF/A 文档:
1、使用 ActiveReports 7 创建一份报表,报表格式可以是基于代码的区域报表(.cs/.vb)、基于XML的区域报表(.rpx)和页面报表(.rdlx)。
2、编写代码将报表导出为所需PDF/A文档。
将区域报表导出为PDF/A文档代码如下:
var rpt = new SectionReport1(); rpt.Run(); var pdfexport = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport(); pdfexport.Version = GrapeCity.ActiveReports.Export.Pdf.Section.PdfVersion.PDFA1a; pdfexport.Export(rpt.Document, @"C:\SectionReport_PDF-A.PDF");
将页面报表导出为PDF/A文档代码如下:
var pageReport = new GrapeCity.ActiveReports.PageReport(); pageReport.Load(new System.IO.FileInfo("PageReport1.rdlx")); var pageDoc = new GrapeCity.ActiveReports.Document.PageDocument(pageReport); var settings = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings(); settings.Version = GrapeCity.ActiveReports.Export.Pdf.Page.PdfVersion.PDFA2a; string exportFile = "myReport.pdf"; var myFile = new System.IO.FileInfo(exportFile); var renderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension(); var provider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(myFile.Directory,"myReport"); pageDoc.Render(renderingExtension, provider, settings);