FlexReport for WPF
FlexReport のエクスポート

Instead of printing the report, you may want to export it into a file and distribute it to your clients or co-workers. To export a file in FlexReportDesigner, select Export option from the File menu and use the Export Report to File dialog box to specify the location, File name and Save as type.

FlexReport は、次のエクスポート形式をサポートしています。

形式 説明
Paged HTML (*.html) Creates one HTML file for each page in the report. The HTML pages contain links that let the user navigate the report.
Plain HTML (*.html) Creates a single HTML file with no drill-down functionality.
PDF with non-embedded (linked) fonts (*.pdf) Creates a PDF file that can be viewed on any computer equipped with Adobe's Acrobat viewer or browser plug-ins.
PDF/A  with embedded fonts (*.pdf) Adobe の Acrobat ビューアまたはブラウザプラグインを備えたコンピュータ上で表示できる PDF ファイルを作成します。
RTF (*.rtf) 一般的なワードプロセッサ(Microsoft Word や WordPad)で開くことができる RTF ファイルを作成します。これは、ページ付き XML ドキュメントまたは Open XML ドキュメントとして保存できます。
Microsoft Excel 97 (*.xls) Microsoft Excel で開くことができる.xlsxファイルを作成します。
Microsoft Excel Open XML (*.xlsx) Microsoft Excel 2007以上で開くことができる.xlsxファイルを作成します。
Open XML Word (*.docx) Microsoft Word 2007以上で開くことができるDOCXファイルを作成します。
Compressed Metafile (*.zip) EmfOnly、EmfPlusOnly、およびEmfPlusDualの圧縮メタファイルを作成します。
TIFF (*.tiff), BMP, PNG, JPEG, GIF images TIFF(Tag Image File Format)、BMP(Bitmap Images)、PNG(Portable Network Graphic)、JPEG (Joint Photographic Experts Group)、または GIF (Graphic Interchange Format) 型の画像ファイルを作成します。

PdfFilterクラスを使用したFlexReportのレンダリング

FlexReport では、PdfFilter クラスを使用して、レポートを PDF 形式にレンダリングすることができます。PdfFilter クラスは、レポートを PDF ストリームまたはファイルにレンダリングします。

FlexReport を PDF 形式でレンダリングするには、次のコードを使用します。この例では、「クイックスタート」で作成したサンプルを使用します。

PdfFilter f = new PdfFilter();
f.FileName = @"..\..\ProductsReport.pdf";
rep.RenderToFilter(f);
System.Diagnostics.Process.Start(f.OutputFiles[0]);

PdfFilter クラスの次のプロパティを使用することもできます。

プロパティ 説明
EmbedFonts PDF ドキュメントへのフォント情報の埋め込みに使用されます。
PdfACompatible PDF/A 互換ドキュメントの生成に使用されます。
PdfSecurityOptions PDF ドキュメントを誰が使用し、どのアクションを使用できるかを指定するために使用されます。
UseCompression PDF ドキュメントの圧縮に使用されます。
UseOutlines アウトラインツリーを追加するために使用されます。

HTMLフィルタクラスを使用したFlexReportのレンダリング

FlexReport では、HtmlFilter クラスを使用して、レポートを HTML 形式にレンダリングすることができます。HtmlFilter クラスは、レポートを HTML ストリームまたはファイルにレンダリングします。

FlexReport を HTML 形式でレンダリングするには、次のコードを使用します。この例では、「FlexReport クイックスタート」で作成したサンプルを使用します。

HtmlFilter f = new HtmlFilter();
f.FileName = @"..\..\ProductsReport.html";
rep.RenderToFilter(f);
System.Diagnostics.Process.Start(f.OutputFiles[0]);

さまざまな画像ファイル形式でレポートのレンダリング

FlexReport では、PNG、JPG、BMP、GIF、TIFF などのさまざまな画像ファイル形式でレポートをレンダリングすることができます。これらの画像ファイル形式はそれぞれ、特定の形式の専用エクスポートフィルタを備えています。PngFilter クラスは、レポートを PNG 形式でレンダリングするために使用できます。同様に、JpegFilter クラスはレポートを JPEG 形式でレンダリングするために使用され、GifFilter クラスはレポートを GIF 形式でレンダリングするために使用され、BmpFilter クラスはレポートを BMP 形式でレンダリングするために使用され、TiffFilter クラスはレポートを TIFF 形式でレンダリングするために使用されます。

FlexReport を PNG 形式でレンダリングするには、次のコードを使用します。この例では、「FlexReport クイックスタート」で作成したサンプルを使用します。

PngFilter f = new PngFilter();
f.FileName = @"..\..\ProductsReport.png";
rep.RenderToFilter(f);
System.Diagnostics.Process.Start(f.OutputFiles[0]);

RTFFilterクラスを使用したFlexReportのエクスポート

FlexReport では、RtfFilter クラスを使用して、レポートを RTF 形式にエクスポートすることができます。RtfFilter クラスは、レポートを RTF ストリームまたはファイルにエクスポートします。

FlexReport を RTF 形式にエクスポートするには、次のコードを使用します。この例では、「FlexReport クイックスタート」で作成したサンプルを使用します。

RtfFilter f = new RtfFilter();
f.FileName = @"..\..\ProductsReport.rtf";
rep.RenderToFilter(f);
System.Diagnostics.Process.Start(f.OutputFiles[0]);

RtfFilter クラスの次のプロパティを使用することもできます。

プロパティ 説明
OpenXML OpenXML 形式でのファイルのエクスポートに使用されます。
Paged 元のレポートのページレイアウトを保持するために使用されます。
ShapesWord2007Compatible DOCX 形式で保存するレポートで Word 2007 図形形式互換を示すために使用されます。

ExportFilterクラスを使用したレポートのエクスポート

特定の形式フィルタ(PdfFilter など)を使用して特定の形式(PDF 形式など)にレポートをエクスポートする代わりに、FlexReport では、ExportFilter クラスを使用して、レポートをさまざまな形式にエクスポートすることができます。ExportFilter クラスは、すべてのエクスポータクラスの抽象基本クラスです。ExportFilter クラスのオブジェクトは、レポートをさまざまな形式にエクスポートするために使用されます。ExportFilter クラスは、サポートされるエクスポート形式を記述する ExportProvider 抽象クラスにアクセスします。

次のコードでは、ExportProvider クラスにアクセスする ExportFilter クラスを使用して、この ExportProvider クラスに記述されたすべてのエクスポート形式を ComboBox に一覧表示しています。そのために、有効なエクスポート形式のリストを表示する ComboBox コントロールをデザインビューに追加し、その名前を cbxExportFormat に設定します。

  1. C1.WPF.4.dll、C1.WPF.Document.4.dll、および C1.WPF.FlexReport.4.dll への参照を追加します。
  2. コードで、次の名前空間を追加します。
    using C1.WPF.Document.Export;
    using C1.WPF.FlexReport;
    using System.IO;
    
  3. コードビューに次のコードを追加して、C1FlexReport のインスタンスを作成します。
    private C1FlexReport _report = new C1FlexReport();
    
  4. XAML の相互作用ロジックの InitializeComponent() メソッドの下に次のコードを追加します。
    // build list of supported export filters
    foreach (var e in _report.SupportedExportProviders)
    {
        cbxExportFormat.Items.Add(e.FormatName);
    }
    cbxExportFormat.SelectedIndex = 0;
    
  5. ExportFilterExportProvider クラスを使用して FlexReport をさまざまな形式にエクスポートするために、MainWindow に 1 つの Button コントロールを追加します。次のコードを使用します。
    string[] reports = C1FlexReport.GetReportList(@"..\..\FlexCommonTasks_WPF.flxr");
    ExportProvider ep = _report.SupportedExportProviders[cbxExportFormat.SelectedIndex];
    ExportFilter ef = ep.NewExporter() as ExportFilter;
    if (!Directory.Exists(@"..\..\ExportResults"))
        Directory.CreateDirectory(@"..\..\ExportResults");
    
    foreach (string reportName in reports)
    {
        using (C1FlexReport rep = new C1FlexReport())
        {
            rep.Load(@"..\..\FlexCommonTasks_WPF.flxr", reportName);
            ef.FileName = string.Format(@"..\..\ExportResults\{0}.{1}",
            reportName, ep.DefaultExtension);
            try
            {
                rep.RenderToFilter(ef);
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format
                ("Exception while export [{0}] report:\r\n{1}", reportName, ex.Message),
                "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
    }
    

ExportFilter クラスの次のプロパティを使用することもできます。

プロパティ 説明
FileName 出力ファイルに名前を付けるために使用されます。
MultiFile エクスポート時に複数のファイルが生成されたかどうかを示すために使用されます。
OutputFiles Export(string) の呼び出しによって生成されたファイルのリストを表示するために使用されます。
PageSettings ページに適用する設定を指定するために使用されます。
Preview ドキュメントをディスクファイルにエクスポートした後に、そのドキュメントを表示するかどうかを示すために使用されます。
Range エクスポートするページの範囲を表すために使用されます。
ShowOptions ドキュメントのエクスポートの前にオプションダイアログを表示するかどうかを示すために使用されます。
Stream 出力ストリームを指定するために使用されます。
UseZipForMultipleFiles エクスポート時に複数のファイルが生成される場合に、出力(ストリームまたはファイル)を、生成されたファイルを含む 1 つの zip 形式アーカイブにするかどうかを示すために使用されます。