PostScript(PS)は、Adobe Systems が開発したページ記述言語であり、高品質な印刷出力やプリプレス工程で利用されています。PDF を PS に変換することで、PostScript 対応プリンターでの印刷や、特定の印刷ワークフローへの対応が可能になります。本記事では、.NET 環境で PDF を PostScript 形式に変換する方法を解説します。
環境構築
変換には Spire.PDF for .NET を使用します。NuGet パッケージマネージャーコンソールから以下のコマンドでインストールできます。
PM> Install-Package Spire.PDF
無料版の Free Spire.PDF for .NET にはページ数の制限があり、PDF の読み込み・作成時に 10 ページまでという制約があります。PostScript への変換におけるページ数制限については明確な記載がありませんが、大規模な文書を扱う場合は事前に動作を確認することをおすすめします。
PDF から PostScript への基本的な変換
Spire.PDF for .NET では、PdfDocument クラスの SaveToFile() メソッドと FileFormat.POSTSCRIPT を指定することで、PDF を PostScript に変換できます。この変換機能はバージョン 4.11.3 で追加されました。
変換手順は以下の通りです。
-
PdfDocumentインスタンスを作成する -
LoadFromFile()メソッドで PDF ファイルを読み込む -
SaveToFile()メソッドで PostScript 形式として保存する
以下は、PDF を PS に変換する基本的なコード例です。
using Spire.Pdf;
namespace PDFtoPS
{
class Program
{
static void Main(string[] args)
{
// PdfDocument インスタンスを作成
PdfDocument document = new PdfDocument();
// PDF ファイルを読み込む
document.LoadFromFile("Test.pdf");
// PostScript 形式で保存
document.SaveToFile("toPostScript.ps", FileFormat.POSTSCRIPT);
}
}
}
このコードは、入力 PDF を読み込み、PostScript ファイルとして出力します。SaveToPostScript() メソッドを使用する方法も提供されています。
PostScript の言語レベルについて
PostScript には複数の言語レベルが存在し、それぞれサポートする機能が異なります。
- 言語レベル 1:初期の標準規格。非常に古いデバイス向けであり、通常は推奨されません。
- 言語レベル 2:色、圧縮、フォント処理が改善され、一部の旧式商業印刷機器で使用されています。
- 言語レベル 3:色、グラデーション、フォント、データ圧縮などの機能が強化されています。ターゲットデバイスとワークフローがサポートしている場合は、言語レベル 3 を選択するのが一般的です。
Spire.PDF for .NET の FileFormat.POSTSCRIPT で出力される PostScript の言語レベルについては、公式ドキュメントに明確な記載がありません。特定のレベルが必要な場合は、変換後のファイルを検証することをおすすめします。
変換時の注意点
PDF から PostScript への変換では、PDF と PostScript の仕様の違いに起因するいくつかの制約が存在します。
透明効果の扱い
PostScript は PDF のリアルタイム透明効果をサポートしていません。影、グロー、半透明の重ね合わせなどの要素は、変換時に透明度の統合(フラット化)やページのラスタライズによって処理される必要があります。変換後は、細い白線、継ぎ目、テキストの鮮明さ、ベクターグラフィックスの品質を確認することが推奨されます。
フォントの置換
PDF にフォントが埋め込まれていない場合、変換や印刷時に Courier や Helvetica などの別のフォントに置き換えられる可能性があります。これにより、改行位置、文字幅、ページレイアウトが変化することがあります。PDF 生成時にフォントを埋め込むことが望ましいです。
変換結果の検証
Spire.PDF のフォーラムでは、一部の PDF ファイルが PostScript に変換された際に、出力が期待通りにならないという報告が寄せられています。変換対象の PDF に複雑な要素が含まれる場合は、変換後の PS ファイルを実際の印刷環境でテストすることをおすすめします。
まとめ
Spire.PDF for .NET の SaveToFile() メソッドと FileFormat.POSTSCRIPT を指定することで、C# で PDF を PostScript 形式に変換できます。基本的な変換は数行のコードで実装できます。
変換にあたっては、PostScript が PDF の透明効果をサポートしていないこと、フォントの埋め込み状態によって出力が変化する可能性があることを理解しておくことが重要です。変換後のファイルは、実際の印刷環境でテスト印刷を行い、意図した結果が得られることを確認することをおすすめします。