Document Library for WPF
ExportProvider を使用した PDF のエクスポート
PdfDocumentSource for WPF > 機能 > PDF のエクスポート > ExportProvider を使用した PDF のエクスポート

PdfDocumentSource では、SupportedExportProviders プロパティを使用して、ドキュメントのサポートされているエクスポート形式を列挙することができます。このプロパティは ExportProvider クラスのコレクションを返します。これには、サポートされている形式に関する情報が含まれます。また、ExportProvider クラスの NewExporter メソッドを使用して、サポートされている形式に対応するエクスポートフィルタを作成することができます。

サポートされるエクスポート形式のセットはドキュメントタイプによって異なるため、正しい結果を得るには、SupportedExportProviders によってエクスポートフィルタを列挙および作成してください。

サポートされているエクスポータを使用して PDF をエクスポートするには

  1. ButtonおよびComboBox コントロールをツールボックスからデザインビューにドラッグアンドドロップします。
  2. コードビューに切り替え、コードビューで次の名前空間を追加します。
    Imports C1.WPF.Document
    Imports C1.WPF.Document.Export
    Imports Microsoft.Win32
    Imports C1.WPF
    
    using C1.WPF.Document;
    using C1.WPF.Document.Export;
    using Microsoft.Win32;
    using C1.WPF;
    
  3. プロジェクトに PDF ファイルを追加します。この例では、製品サンプルにある DefaultDocument.pdf という PDF ファイルを使用します。
  4. 次のコードを使用して、C1PDFDocumentSourceおよびSaveFileDialogクラスのインスタンスを初期化します。
    Dim pds As New C1PdfDocumentSource()
    Dim dialog As New SaveFileDialog()
    
    C1PdfDocumentSource pds = new C1PdfDocumentSource();
    SaveFileDialog dialog = new SaveFileDialog();
    
  5. LoadFromFile メソッドを使用して、C1PdfDocumentSource のオブジェクトに PDF ファイルをロードします。
    pds.LoadFromFile("..\..\DefaultDocument.pdf")
    
    pds.LoadFromFile(@"..\..\DefaultDocument.pdf");
    
  6. 次のコードを InitializeComponent() メソッドの下に追加して、サポートされているエクスポータのリストを SupportedExportProviders プロパティを使用して取得します。
    Dim supportedProviders = pds.SupportedExportProviders
    For Each sep As var In supportedProviders
         cbExporter.Items.Add(New C1ComboBoxItem() With { _
             Key .Content = [String].Format("Export to {0}...", sep.FormatName), _
             Key .Tag = sep _
         })
    Next
    
    var supportedProviders = pds.SupportedExportProviders;
    foreach (var sep in supportedProviders)
        cbExporter.Items.Add(new C1ComboBoxItem()
        {
            Content = String.Format("Export to {0}...",
            sep.FormatName), Tag = sep
        });
    
  7. 次のコードを追加して DoExportメソッドを作成し、 Export メソッドを使用して PDF を別の形式にエクスポートします。
    Private Sub DoExport(pds As C1PdfDocumentSource, ep As ExportProvider)
            dialog.DefaultExt = "." + ep.DefaultExtension
            dialog.FileName = System.IO.Path.GetFileName("Document")
            dialog.Filter = [String].Format("{0} (*.{1})|*.{1}|All files (*.*)|*.*", _
                                           ep.FormatName, ep.DefaultExtension)
            Dim dr As System.Nullable(Of Boolean) = dialog.ShowDialog(Me)
            If Not dr.HasValue OrElse Not dr.Value Then
                    Return
            End If
    
            Try
                    Dim exporter = ep.NewExporter()
                    exporter.ShowOptions = False
    
                    'エクスポート後ドキュメントを開きます
                    exporter.Preview = True
    
                    '出力するファイルの名前を指定します
                    exporter.FileName = dialog.FileName
    
                    'PDFへエクスポートします
                    pds.Export(exporter)
                    MessageBox.Show(Me, "ドキュメントが正常にエクスポートされました。", _
                                   "情報", MessageBoxButton.OK, _
                                   MessageBoxImage.Information)
            Catch ex As Exception
                    MessageBox.Show(Me, ex.Message, "エラー", MessageBoxButton.OK, _
                                    MessageBoxImage.[Error])
            End Try
    End Sub
    
    private void DoExport(C1PdfDocumentSource pds, ExportProvider ep)
    {
        dialog.DefaultExt = "." + ep.DefaultExtension;
        dialog.FileName = System.IO.Path.GetFileName("Document");
        dialog.Filter = String.Format("{0} (*.{1})|*.{1}|All files (*.*)|*.*",
                        ep.FormatName, ep.DefaultExtension);
        bool? dr = dialog.ShowDialog(this);
        if (!dr.HasValue || !dr.Value)
            return;
    
        try
        {
            var exporter = ep.NewExporter();
            exporter.ShowOptions = false;
    
            //エクスポートした後ドキュメントを開きます
            exporter.Preview = true;
    
            //出力するファイルの名前を指定します
            exporter.FileName = dialog.FileName;
    
            //PDFへエクスポートします
            pds.Export(exporter);
            MessageBox.Show(this, "Document was successfully exported.",
                            "Information", MessageBoxButton.OK, 
                            MessageBoxImage.Information);
        }
        catch (Exception ex)
        {
            MessageBox.Show(this, ex.Message, "Error", 
                            MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }
    
  8. 次のコードをボタンのクリックイベントに追加して、C1PdfDocumentSource のオブジェクトと ExportProvider をパラメータとして受け取る DoExport メソッドを呼び出します。
    DoExport(pds, DirectCast(DirectCast(cbExporter.SelectedItem, C1ComboBoxItem).Tag, ExportProvider))
    
    DoExport(pds, (ExportProvider)((C1ComboBoxItem)cbExporter.SelectedItem).Tag);
    
関連トピック