作成日: 2024/08/09 最終更新日: 2024/08/09
文書種別
使用方法
詳細
ActiveReportsのPDFエクスポート機能はPDF長期署名(PAdES)に部分的に対応しています。
以下のコードでPAdESに対応した形式のデジタル署名を追加できます。
◆ページレポート/RDLレポート
using GrapeCity.ActiveReports.Export.Pdf.Section.Signing;
...
var outputDirectory = new System.IO.DirectoryInfo(Application.StartupPath); var provider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, "PAdES.pdf"); var settings = new GrapeCity.ActiveReports.Export.Pdf.Page.Settings(); settings.Version = GrapeCity.ActiveReports.Export.Pdf.Page.PdfVersion.Pdf20; // 不可視署名を追加 settings.SignatureCertificateFileName = "sample.pfx"; settings.SignatureCertificatePassword = "password"; settings.SignatureVisibilityType = VisibilityType.Invisible; settings.SignatureTimeStamp = new TimeStamp(@"http://ts.ssl.com", "", ""); // PAdESに対応した形式を指定 settings.SignatureFormat = SignatureFormat.ETSI_CAdES_detached; var rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport1.rdlx")); rpt.Document.Render(renderingExtension, provider, settings);
◆セクションレポート
using GrapeCity.ActiveReports.Export.Pdf.Section.Signing;
...
var pdfExport = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport(); pdfExport.Version = GrapeCity.ActiveReports.Export.Pdf.Section.PdfVersion.Pdf20; // 不可視署名を追加 pdfExport.Signature.Certificate = new X509Certificate2("sample.pfx", "password"); pdfExport.Signature.VisibilityType = VisibilityType.Invisible; pdfExport.Signature.SignDate = DateTime.Now; pdfExport.Signature.TimeStamp = new TimeStamp(@"http://ts.ssl.com", "", ""); // PAdESに対応した形式を指定 pdfExport.Signature.SignatureFormat = SignatureFormat.ETSI_CAdES_detached; var rpt = new SectionReport1(); rpt.Run(); pdfExport.Export(rpt.Document, "PAdES.pdf");
ただし、署名の検証情報やアーカイブタイムスタンプの追加には対応していません。
長期検証(LTV)に対応するためには、他のライブラリやWebサービスを併用する必要があります。
なお、弊社製品の DioDocs for PDF はLTV対応の署名が可能です。