PDF形式は、異なるプラットフォームやアプリケーションで見た場合にも一貫性のある表示が可能であり、さまざまな文書を簡単かつ正確に共有するための便利な形式です。PDF印刷では、様々なオプション(用紙サイズ、品質、グレースケールなど)を設定して、印刷する前にドキュメントをプレビューすることができます。同様に、プログラミングによってさまざまな方法でPDF印刷を実現することができます。以下はコードの説明とサンプルコードです。
Free Spire.PDF for .NETをインストールする
この記事で使用している製品はFree Spire.PDF for .NETです。
方法1:NuGetでFree Spire.PDF for .NETをインストールする
Visual Studioを開いて新しいプロジェクトを作成します。次に、「Solution Explorer」で「References」を右クリックし、「Nuget Manage Packages」を選択します。Free Spire.PDF for .NETを検索してインストールします。
方法2:手動でSpire.PDF.dllを追加する
Free Spire.PDF for .NETをローカルにダウンロードしインストールします。次に、Visual Studioて新しいプロジェクトを作成し、右側の「Solution Explorer」で「References」を右クリックし、「Add Reference」>「Browse」を選択して、インストールパス下のBINフォルダのdllファイルを見つけ、「OK」をクリックして、プログラムに参照を追加します。
デフォルトのプリンター
説明:
LoadFromFile()メソッドを使用して、 PdfDocumentオブジェクトを作成することができます。その後、 Print()メソッドを使用して、PDFを印刷します。
サンプルコード
C#:
using Spire.Pdf;
namespace PrintWithDefaultPrinter
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(@"sample.pdf");
//デフォルトのプリンタで印刷する
doc.Print();
}
}
}
VB.NET:
Imports Spire.Pdf
Namespace PrintWithDefaultPrinter
Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile("sample.pdf")
'デフォルトのプリンタで印刷する
doc.Print()
End Sub
End Class
End Namespace
指定したプリンターで特定のページを印刷する
説明:
PdfDocumentオブジェクトを作成し、 LoadFromFile()メソッドを使用してPDFファイルを読み込みます。次に、 PrintSettingsプロパティを使用してプリンター名と印刷オプション(ページ範囲など)を設定します。最後に、 Print()メソッドを使用してPDFファイルを印刷します。
サンプルコード
C#:
using Spire.Pdf;
namespace PrintWithSpecifiedPrinter
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(@"sample.pdf");
//プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX";
//印刷するページ範囲を選択する
doc.PrintSettings.SelectPageRange(1, 5);
//印刷する不連続ページを選択する
//doc.PrintSettings.SelectSomePages(new int[] { 1, 3, 5, 7 });
//ドキュメントを印刷する
doc.Print();
}
}
}
VB.NET:
Imports Spire.Pdf
Namespace PrintWithSpecifiedPrinter
Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile("sample.pdf")
'プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX"
'印刷するページ範囲を選択する
doc.PrintSettings.SelectPageRange(1, 5)
'印刷する不連続ページを選択する
'doc.PrintSettings.SelectSomePages(new int[] { 1, 3, 5, 7 });
'ドキュメントを印刷する
doc.Print()
End Sub
End Class
End Namespace
サイレント印刷
説明:
このコードでは、 PdfDocumentオブジェクトを作成し、 LoadFromFile()メソッドを使用してPDFファイルを読み込みます。次に、 PrintSettingsプロパティを使用してプリンター名を指定します。さらに、 StandardPrintController()を使用してPrintControllerプロパティにサイレント印刷コントローラを設定します。最後に、 Print()メソッドを使用してPDFファイルをサイレント印刷します。
サンプルコード
C#:
using Spire.Pdf;
using System.Drawing.Printing;
namespace PrintPdfSilently
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(@"sample.pdf");
//プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX";
//サイレント印刷する
doc.PrintSettings.PrintController = new StandardPrintController();
//ドキュメントを印刷する
doc.Print();
}
}
}
VB.NET:
Imports Spire.Pdf
Imports System.Drawing.Printing
Namespace PrintPdfSilently
Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile("sample.pdf")
'プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX"
'サイレント印刷する
doc.PrintSettings.PrintController = New StandardPrintController()
'ドキュメントを印刷する
doc.Print()
End Sub
End Class
End Namespace
両面印刷
説明:
PdfDocumentオブジェクトを作成し、 LoadFromFile()メソッドを使用してPDFファイルを読み込みます。次に、 PrintSettingsプロパティを使用してプリンター名を指定します。さらに、 CanDuplexプロパティを使用して、プリンターが両面印刷をサポートしているかどうかを確認します。プリンターが両面印刷をサポートしている場合、 Duplexプロパティを使用して両面印刷モードに設定し、 Print()メソッドを使用してPDFファイルを印刷します。
サンプルコード
C#:
using Spire.Pdf;
using System.Drawing.Printing;
namespace PrintInDuplexMode
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(@"sample.pdf");
//プリンタ名を指定する
doc.PrintSettings.PrinterName = "XXXXX";
//プリンタが両面印刷をサポートしているかどうかを確認する
if (doc.PrintSettings.CanDuplex)
{
//両面印刷モードに設定する
doc.PrintSettings.Duplex = Duplex.Default;
//ドキュメントを印刷する
doc.Print();
}
}
}
}
VB.NET:
Imports Spire.Pdf
Imports System.Drawing.Printing
Namespace PrintInDuplexMode
Class Program
static void Main(string() args)
{
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile("sample.pdf")
'プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX"
'プリンタが両面印刷をサポートしているかどうかを確認する
if (doc.PrintSettings.CanDuplex)
{
'両面印刷モードに設定する
doc.PrintSettings.Duplex = Duplex.Default
'ドキュメントを印刷する
doc.Print()
}
}
End Class
End Namespace
PDF をグレースケールで印刷する
説明:
PdfDocumentオブジェクトを作成し、 LoadFromFile()メソッドを使用してPDFファイルを読み込みます。次に、 PrintSettingsプロパティを使用してプリンター名を指定します。さらに、 Colorプロパティを使用して白黒で印刷するように設定し、 Print()メソッドを使用してPDFファイルを印刷します。
サンプルコード
C#:
using Spire.Pdf;
namespace PrintInGrayscale
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(@"sample.pdf");
//プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX";
//白黒で印刷する
doc.PrintSettings.Color = false;
//ドキュメントを印刷する
doc.Print();
}
}
}
VB.NET:
Imports Spire.Pdf
Namespace PrintInGrayscale
Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile("sample.pdf")
'プリンター名を指定する
doc.PrintSettings.PrinterName = "XXXXX"
'白黒で印刷する
doc.PrintSettings.Color = False
'ドキュメントを印刷する
doc.Print()
End Sub
End Class
End Namespace
異なるページ範囲を異なるトレイに印刷する
説明:
このコードでは、 PdfDocumentオブジェクトを作成し、 LoadFromFile()メソッドを使用してPDFファイルを読み込みます。次に、 PaperSettingsイベントを処理するために、 PdfPaperSettingsEventArgsを使用してデリゲートを登録します。このデリゲートでは、1〜10ページのトレイ1の給紙元と残りのページのトレイ2の給紙元を設定します。最後に、 Print()メソッドを使用してPDFファイルを印刷します。
サンプルコード
C#:
using Spire.Pdf;
using Spire.Pdf.Print;
namespace PrintToDifferentTrays
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFファイルをロードする
doc.LoadFromFile(@"sample.pdf");
//用紙設定イベントを処理するデリゲートにPaperSettingsイベントを登録する
doc.PrintSettings.PaperSettings += delegate (object sender, PdfPaperSettingsEventArgs e)
{
// トレイ1の給紙元を1〜10ページに設定する
if (1 <= e.CurrentPaper && e.CurrentPaper <= 10)
{
e.CurrentPaperSource = e.PaperSources[0];
}
//トレイ2の給紙元を残りのページに設定する
else
{
e.CurrentPaperSource = e.PaperSources[1];
}
};
//ドキュメントを印刷する
doc.Print();
}
}
}
VB.NET:
Imports Spire.Pdf
Imports Spire.Pdf.Print
Namespace PrintToDifferentTrays
Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'PDFファイルをロードする
doc.LoadFromFile("sample.pdf")
'用紙設定イベントを処理するデリゲートにPaperSettingsイベントを登録する
doc.PrintSettings.PaperSettings Function delegate(ByVal sender As Object, ByVal e As PdfPaperSettingsEventArgs) As +=
' トレイ1の給紙元を1〜10ページに設定する
If 1 <= e.CurrentPaper And e.CurrentPaper <= 10 Then
e.CurrentPaperSource = e.PaperSources(0)
End If
'トレイ2の給紙元を残りのページに設定する
else
{
e.CurrentPaperSource = e.PaperSources(1)
}
End Function
'ドキュメントを印刷する
doc.Print()
End Sub
End Class
End Namespace