Document Library for WPF
PDF の印刷
PdfDocumentSource for WPF > 機能 > PDF の印刷

PdfDocumentSource を使用して PDF ファイルを印刷できます。C1DocumentSource 抽象クラスの Print メソッドを使用した印刷がサポートされています。 Print メソッドには、Print (PrinterSettings printerSettings)Print (C1PrintOptions options) の 2 つのオーバーロードメソッドがあります。C1PdfDocumentSource を使用して Print メソッドを追加することで、ビューアがなくても PDF を印刷できます。以下のコードに、このメソッドの使用方法を示します。このトピックのコードでは、PDF ファイルの印刷に Print (C1PrintOptions options) メソッドを使用しています。

PDF を印刷するには

  1. PDF をエクスポートするためのボタンコントロールをデザインビューに追加します。
  2. コードビューで、次の名前空間を追加します。
    Imports C1.WPF.Document
    
    using C1.WPF.Document;
    
  3. プロジェクトに PDF ファイルを追加します。この例では、製品サンプルにある DefaultDocument.pdf という PDF ファイルを使用します。
  4. 次のコードを使用して、C1PdfDocumentSource およびPrintDialog クラスのインスタンスを初期化します。
    Dim pds As New C1PdfDocumentSource()
    Dim pdialog As New PrintDialog()
    
    C1PdfDocumentSource pds = new C1PdfDocumentSource();
    PrintDialog pdialog = new PrintDialog();
    
  5. LoadFromFileメソッドを使用して、C1PdfDocumentSource のオブジェクトに PDF ファイルをロードします。
    pds.LoadFromFile("..\..\DefaultDocument.pdf")
    
    pds.LoadFromFile(@"..\..\DefaultDocument.pdf");
    
  6. 次のコードをボタンのクリックイベントに追加して、Print メソッドを使用して PDF ファイルを印刷します。
    pdialog.MaxPage = CUInt(pds.PageCount)
    Dim dr As System.Nullable(Of Boolean) = pdialog.ShowDialog()
    
    Try
       Dim po = New C1PrintOptions()
       po.PrintQueue = pdialog.PrintQueue
       po.PrintTicket = pdialog.PrintTicket
       If pdialog.PageRangeSelection = PageRangeSelection.UserPages Then
            po.OutputRange = New OutputRange(pdialog.PageRange.PageFrom, _
                                             pdialog.PageRange.PageTo)
       End If
    
       'PDFを印刷します
       pds.Print(po)
       MessageBox.Show(Me, "ドキュメントが正常にエクスポートされました。", _
                       "情報", MessageBoxButton.OK, _
                       MessageBoxImage.Information)
    Catch ex As Exception
       MessageBox.Show(Me, ex.Message, "エラー", MessageBoxButton.OK, _
                       MessageBoxImage.[Error])
    End Try
    
    pdialog.MaxPage = (uint)pds.PageCount;
    bool? dr = pdialog.ShowDialog();
    
    try
    {
        var po = new C1PrintOptions();
        po.PrintQueue = pdialog.PrintQueue;
        po.PrintTicket = pdialog.PrintTicket;
        if (pdialog.PageRangeSelection == PageRangeSelection.UserPages)
            po.OutputRange = new OutputRange(pdialog.PageRange.PageFrom,
                                             pdialog.PageRange.PageTo);
    
        //PDFを印刷します
        pds.Print(po);
        MessageBox.Show(this, "Document was successfully printed.",
                        "Information", MessageBoxButton.OK,
                        MessageBoxImage.Information);
    }
    catch (Exception ex)
    {
        MessageBox.Show(this, ex.Message, "Error",
                        MessageBoxButton.OK, MessageBoxImage.Error);
    }
    
関連トピック