カラー画像を含む PDF をグレースケールに変換すると、ファイルサイズを削減でき、印刷時にカラーインクを消費しないという利点があります。本記事では、C# でプログラム的に PDF をグレースケールに変換する方法を紹介します。
使用するライブラリ
今回は Spire.PDF for .NET を使用します。NuGet 経由でインストールでき、PdfGrayConverter クラスによるグレースケール変換機能を提供しています。
インストール
NuGet パッケージマネージャーコンソールから以下のコマンドを実行します。
PM> Install-Package Spire.PDF
変換手順
変換はシンプルで、PdfGrayConverter クラスのインスタンスを作成し、ToGrayPdf() メソッドを呼び出すだけです。このクラスは Spire.Pdf.Conversion 名前空間に属しています。
C# コード例
using Spire.Pdf.Conversion;
namespace ConvertPdfToGrayscale
{
class Program
{
static void Main(string[] args)
{
// PdfGrayConverter のインスタンスを作成し、PDF ファイルを読み込む
PdfGrayConverter converter = new PdfGrayConverter(@"Sample.pdf");
// PDF をグレースケールに変換
converter.ToGrayPdf("Grayscale.pdf");
// リソースを解放
converter.Dispose();
}
}
}
VB.NET コード例
Imports Spire.Pdf.Conversion
Namespace ConvertPdfToGrayscale
Friend Class Program
Private Shared Sub Main(ByVal args As String())
' PdfGrayConverter のインスタンスを作成し、PDF ファイルを読み込む
Dim converter As PdfGrayConverter = New PdfGrayConverter("Sample.pdf")
' PDF をグレースケールに変換
converter.ToGrayPdf("Grayscale.pdf")
' リソースを解放
converter.Dispose()
End Sub
End Class
End Namespace
実装上の注意点
PdfGrayConverter クラスは IDisposable インターフェースを実装しているため、使用後は Dispose() メソッドを呼び出してリソースを解放することを推奨します。
このグレースケール変換機能は Spire.PDF 7.2.0 以降でサポートされています。古いバージョンを使用している場合は、NuGet から最新版に更新してください。
また、一部の PDF ファイルでは、バージョンによってグレースケール変換が正しく適用されないケースが報告されています。そのような場合は、最新の Hot Fix 版を適用することで解決する可能性があります。
まとめ
PdfGrayConverter クラスを使用することで、C# で PDF をグレースケールに変換する処理を簡潔に実装できます。数行のコードで完結するため、既存のアプリケーションへの組み込みも容易です。