Document Library for WinForms
ExportProvider を使用した PDF のエクスポート

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

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

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

  1. C1PdfDocumentSource、SaveFileDialog、Button、および ComboBox コントロールをツールボックスからフォームにドラッグアンドドロップします。
  2. プロパティウィンドウで DropDownStyle プロパティに移動して、ドロップダウンから DropDownList を選択します。
  3. コードビューに切り替え、コードビューで次の名前空間を追加します。
    Imports C1.Win.C1Document
    Imports C1.Win.C1Document.Export
    
    using C1.Win.C1Document;
    using C1.Win.C1Document.Export;
    
  4. プロジェクトに PDF ファイルを追加します。この例では、製品サンプルにある DefaultDocument.pdf という PDF ファイルを使用します。
  5.  LoadFromFile メソッドを使用して、C1PdfDocumentSource のオブジェクトに PDF ファイルをロードします。
    c1PdfDocumentSource1.LoadFromFile("..\..\DefaultDocument.pdf")
    
    c1PdfDocumentSource1.LoadFromFile(@"..\..\DefaultDocument.pdf");
    
  6. 次のコードを InitializeComponent メソッドの下に追加して、サポートされているエクスポータのリストを SupportedExportProviders プロパティを使用して取得します。
    Dim supportedProviders = c1PdfDocumentSource1.SupportedExportProviders
    For Each sep As var In supportedProviders
       cbExporter.Items.Add(New FileAction() With _
       {
          .Text = String.Format("Export to {0}...", sep.FormatName), _
          .ExportProvider = sep _
       })
    Next
    
    var supportedProviders = c1PdfDocumentSource1.SupportedExportProviders;
    foreach (var sep in supportedProviders)
        cbExporter.Items.Add(new FileAction()
        {
            Text = string.Format("Export to {0}...",
            sep.FormatName), ExportProvider = sep
        });
    
  7. 次のコードを追加して、変数を含む FileAction クラスを追加します。
    Private Class FileAction
       Public Property Text() As String
          Get
             Return m_Text
          End Get
          Set
             m_Text = Value
          End Set
       End Property
       Private m_Text As String
       Public Property ExportProvider() As ExportProvider
          Get
             Return m_ExportProvider
          End Get
          Set
             m_ExportProvider = Value
          End Set
       End Property
       Private m_ExportProvider As ExportProvider
       Public Overrides Function ToString() As String
           Return Text
       End Function
    End Class
    
    private class FileAction
    {
        public string Text { get; set; }
        public ExportProvider ExportProvider { get; set; }
        public override string ToString()
        {
            return Text;
        }
    }
    
  8. 次のコードを追加して DoExportメソッドを作成し、 Export メソッドを使用して PDF を別の形式にエクスポートします。
    Private Sub DoExport(pds As C1PdfDocumentSource, ep As ExportProvider)
       saveFileDialog1.DefaultExt = "." + ep.DefaultExtension
       saveFileDialog1.FileName = Path.GetFileName("Document")+ 
       "." + ep.DefaultExtension
       saveFileDialog1.Filter = String.Format("{0} (*.{1})|*.{1}|All files (*.*)|*.*", _
       ep.FormatName, ep.DefaultExtension)
    
    If saveFileDialog1.ShowDialog(Me) <> DialogResult.OK Then
       Return
    End If
    
    Try
       Dim exporter = ep.NewExporter()
       exporter.ShowOptions = False
       exporter.FileName = saveFileDialog1.FileName
       If exporter.ShowOptionsDialog() Then
          pds.Export(exporter)
          MessageBox.Show(Me, "ドキュメントが正常にエクスポートされました。", "情報", _
    MessageBoxButtons.OK, MessageBoxIcon.Information)
       End If
    Catch ex As Exception
       MessageBox.Show(Me, ex.Message, "エラー", MessageBoxButtons.OK, _
    MessageBoxIcon.[Error])
    End Try
    End Sub
    
    private void DoExport(C1PdfDocumentSource pds, ExportProvider ep)
    {
        saveFileDialog1.DefaultExt = "." + ep.DefaultExtension;
        saveFileDialog1.FileName = Path.GetFileName("Document")+ "." + 
                                   ep.DefaultExtension;
        saveFileDialog1.Filter = string.Format("{0} (*.{1})|*.{1}|All files (*.*)|*.*",
                                 ep.FormatName, ep.DefaultExtension);
    
        if (saveFileDialog1.ShowDialog(this) != DialogResult.OK)
            return;
    
        try
        {
            var exporter = ep.NewExporter();
            exporter.ShowOptions = false;
            exporter.FileName = saveFileDialog1.FileName;
            if (exporter.ShowOptionsDialog())
            {
                pds.Export(exporter);
                MessageBox.Show(this, "ドキュメントが正常にエクスポートされました。",
                                "情報", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(this, ex.Message, "エラー", MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
        }
    }
    
  9. 次のコードをボタンのクリックイベントに追加して、C1PdfDocumentSource のオブジェクトと ExportProvider をパラメータとして受け取る DoExport メソッドを呼び出します。
    DoExport(c1PdfDocumentSource1, DirectCast _
                  (cbExporter.SelectedItem, FileAction).ExportProvider)
    
    DoExport(c1PdfDocumentSource1, ((FileAction)
             cbExporter.SelectedItem).ExportProvider);
    
関連トピック