クローズドソース ソフトウェアで出荷できる Ghostscript の代替品
ネイティブ コンバーター バイナリやコピーレフトの義務なしで、PostScript、EPS、XPS を PDF に変換し、マネージド .NET ライブラリのイメージを変換します。
製品内で PostScript、EPS、または XPS ファイルを変換する必要があります。Artifex のツールはこれを適切に処理し、無料でダウンロードできます。Ghostscript は PostScript と EPS を解釈し、GhostXPS は XPS を処理します。その後、法務チームがライセンスを読み、プロジェクトは停止します。
このページでは、ライセンスの制約とは何か、オプションは何か (当社が関与しないオプションも含む)、および Aspose.Page が適切な場合の移行方法について説明します。
Aspose.Page は、変換およびレンダリング用の商用 .NET ライブラリです。これは、ネイティブ Ghostscript インストールを必要とせずに、クローズド ソース アプリケーションで再配布できるように設計されています。
ライセンスに実際に必要なもの
Ghostscript は、2013 年 2 月のバージョン 9.07 以降、GNU Affero General Public License v3 に基づいてデュアルライセンスになっています。それ以前は、GPL v3 でした。 Artifex Software は著作権を所有しており、AGPL 準拠の代替として商用ライセンスを販売しています。 同じデュアルライセンスは GhostXPS インタープリターを含む、より広範な GhostPDL ソースツリーにも適用されるため、PostScript の代わりに XPS を処理してもライセンスの問題は変わりません。
AGPL のコピーレフト条項では、AGPL に基づいてリリースされる派生作品の完全に対応するソース コードが必要になる場合があります。また、ネットワーク経由でユーザーに提供されるソフトウェアにも適用されるため、バイナリを配布しない SaaS 製品が自動的に対象範囲外になるわけではありません。
重要なニュアンス: リンクとシェルアウト
一般的な見解は、アプリケーションがライブラリにリンクされていないため、`gs` を別のプロセスとして呼び出すことでコピーレフトを回避できるというものです。これは本当に争われている領域です。プロセスの境界が決定的なのか、それともコミュニケーションの親密さと組み合わせたプログラムの設計がより重要なのかによって、ガイダンスは異なります。
私たちはあなたの弁護士ではなく、このページは法的アドバイスではありません。法務チームは、製品がどのように構築、提供、配布されているかを評価する必要があります。多くのチームにとって、不確実性自体は背負いたくないコストです。
判例法
Artifex は、*Artifex Software, Inc. v. Hancom, Inc.* で、Hancom が商用ライセンスを購入せず、または GPL のソース開示要件に準拠することなく、GPL ライセンスの Ghostscript を Hancom Office に組み込んだと主張しました。
25 April 2017 では、U.S. District Court for the Northern District of California はハンコムの却下動議を拒否しました。この判決により、Artifexは契約違反と著作権侵害の両方で訴訟を起こすことが認められた。両当事者は2017年12月に和解した。
意味は狭く、オープンソース ライセンスには強制力があります。この判決は、すべての統合または別個のプロセスの呼び出しが派生著作物を作成すると判断するものではありません。
あなたのオプション
正直なルートは 3 つありますが、そのうちの 1 つだけが私たちに関係します。
1. Artifex から商用ライセンスを購入します。
Artifex は、企業がクローズドソース製品で Ghostscript を使用できるように商用ライセンスを販売しています。これは正当でサポートされているルートであり、Ghostscript の完全な機能セットに依存する場合はおそらく正しい選択です。
次の場合にこれを選択します。 Ghostscript を完全な PostScript として使用するか、PDF インタープリターまたは RIP (色分解、印刷デバイス、PDF 入力、または複雑な RIP ワークフローを含む) を使用します。
2. コンポーネントを交換する
要件がより狭い場合 (PS、EPS、または XPS ファイルを PDF または画像に変換する) の場合は、同じライセンスの問題を抱えずに専用の商用ライブラリで対応できます。
次の場合にこれを選択します。 使用法は変換とレンダリングであり、すべてのデプロイメントでネイティブ バイナリよりもマネージド NuGet パッケージを優先します。
3. 機能を削除する
形式変換があまり使用されない便利な場合は、それを削除した方が、どちらのライセンスよりも費用がかからない可能性があります。
次の場合にこれを選択します。 この機能は、商用ライセンスや移行を正当化するほど重要ではありません。
Aspose.Page が適合する場所と適合しない場所
Aspose.Page は、次のような場合に適しています。
- PostScript (PS) および EPS ファイルを PDF に変換します。
- XPS および OXPS ドキュメントを PDF に変換します。
- これらの形式のいずれかを PNG、JPEG、TIFF、または BMP にレンダリングします。
- 複数の PS または XPS ドキュメントを結合します。
- XPS ドキュメントをプログラムで作成および編集します。
- EPS ファイル内の XMP メタデータの読み取りと書き込み。
- EPS ファイルを切り抜き、サイズ変更し、変換します。
- クローズドソースの商用製品、サーバー、コンテナー、またはサーバーレス機能内で変換を実行します。
以下が必要な場合、Aspose.Page は間違ったツールです。
- デバイスレベルの制御を備えた完全な PostScript インタープリターまたは RIP。
- 入力として PDF ファイル — 別の製品である Aspose.PDF を使用します。
- CMYK 色分解または製版グレードの印刷デバイス出力。
- Ghostscript の
pdfwrite蒸留器の動作を正確に再現しました。
2 番目のリストに該当する場合は、Artifex 商用ライセンスの方が適しています。同等に達しない移行よりもコストが低くなります。
コンテナー内でネイティブ コンバーターにかかる費用
.NET から Ghostscript へのすべてのルート (`Ghostscript.NET`、直接 P/Invoke、またはプロセスとして `gs` を呼び出す) は、イメージ内のネイティブ バイナリとその共有ライブラリで終了します。これにより、継続的な運用作業が発生します。
- 画像サイズ コンバータだけではなく、インタープリタも出荷しています。
- CVE パッチ適用。 Ghostscript 脆弱性は、パッチ適用と再構築の周期の一部になります。
- ベースイメージのロックイン。 ネイティブ ビルドと共有ライブラリにより、使用できるベース イメージが制限されます。 glibc ビルドと musl ビルドには互換性がありません。
- 環境ドリフト。 開発マシン、CI ランナー、実稼働ホストは、互換性のあるネイティブ バージョンを搭載している必要があります。
- Azure Functions 従量課金プラン。 ネイティブ パッケージをそこにインストールすることはできません。これは、デプロイの不便さというよりも、困難な問題です。 Docker とサーバーレス展開のテクニカル ガイド を参照してください。
マネージド ライブラリを使用すると、ネイティブ コンバーターはこうした懸念から解放されます。ドキュメントに必要なフォントをパッケージ化して構成する必要があります。
.NET の Ghostscript と Aspose.Page の比較
- ライセンス — Ghostscript: AGPL v3、または Artifex からの商用。 Aspose.Page: 商用のみ。
- 出典開示 — Ghostscript: AGPL が適用される場合は必須。 Aspose.Page: 必要ありません。
- ネットワークと SaaS — Ghostscript: ネットワークの使用は AGPL の範囲内です。 Aspose.Page: 商用展開は、購入したライセンスの対象となります。
- 実装 — Ghostscript: ネイティブ C バイナリ。 Aspose.Page: ネイティブ コンバータ バイナリを持たないマネージド .NET ライブラリ。
- .NET 統合 — Ghostscript: プロセス呼び出しまたは
Ghostscript.NETなどのラッパー。 Aspose.Page: NuGet パッケージとダイレクト API。 - 展開 — Ghostscript: ネイティブ バイナリと共有ライブラリをインストールまたはバンドルします。 Aspose.Page: マネージド アセンブリをアプリケーションとともにパッケージ化します。
- 入力形式 — Ghostscript:PS、EPS、PDF など。XPS には、同じ GhostPDL ツリーに含まれる別のインタープリター GhostXPS が必要です。Aspose.Page:1 つのライブラリで PS、EPS、XPS、OXPS を扱います。
- 出力 — Ghostscript: PDF と幅広いラスターおよび印刷デバイス。 Aspose.Page: PDF、PNG、JPEG、TIFF、BMP。
- スコープ — Ghostscript: 完全なインタープリタおよび RIP。 Aspose.Page: 変換、レンダリング、ドキュメント操作。
- 価格 — Ghostscript: 商用価格は Artifex によって見積もられています。 Aspose.Page: US$599 から公開された層。
移住
PostScript または EPS ~ PDF
`gs` pdfwrite コマンドを置き換える C# 変換
using System;
using Aspose.Page.EPS;
using Aspose.Page.EPS.Device;
PsDocument document = new PsDocument("input.ps");
PdfSaveOptions options = new PdfSaveOptions(true);
options.AdditionalFontsFolders = new string[] { @"C:\MyFonts" };
document.SaveAsPdf("output.pdf", options);
foreach (Exception ex in options.Exceptions)
{
Console.WriteLine(ex.Message);
}置き換え: `gs -sDEVICE=pdfwrite -o output.pdf input.ps`
画像への PostScript または EPS
`gs` png16m コマンドを置き換える C# 変換
using System.IO;
using Aspose.Page.EPS;
using Aspose.Page.EPS.Device;
PsDocument document = new PsDocument("input.ps");
ImageSaveOptions options = new ImageSaveOptions();
options.ImageFormat = Aspose.Page.Drawing.Imaging.ImageFormat.Png;
byte[][] imagesBytes = document.SaveAsImagesBytes(options);
for (int i = 0; i < imagesBytes.Length; i++)
{
File.WriteAllBytes("page_" + i + ".png", imagesBytes[i]);
}
// One byte array is returned for each page.置き換え: `gs -sDEVICE=png16m -o page_%d.png input.ps`
XPS ~ PDF
C# XPS から PDF への変換
using System.IO;
using Aspose.Page.XPS;
using Aspose.Page.XPS.Presentation.Pdf;
using (Stream pdfStream = File.Open("output.pdf", FileMode.Create, FileAccess.Write))
{
XpsDocument document = new XpsDocument("input.xps");
PdfSaveOptions options = new PdfSaveOptions
{
JpegQualityLevel = 100,
ImageCompression = PdfImageCompression.Jpeg,
TextCompression = PdfTextCompression.Flate
};
document.SaveAsPdf(pdfStream, options);
}
// gs does not read XPS; the Artifex equivalent is gxps.`gs` は XPS を読み取りません。Artifex で対応するものは、同じデュアルライセンスの GhostPDL に含まれる `gxps` です。
どのライセンスが必要ですか?
これらの公開価格は、2026 年 10 月 26 日に確認されたものです。現在の価格は、[Aspose.Page for .NET 価格ページ](https://purchase.aspose.com/pricing/page/net) で確認してください。
- 内部ツール、1 人の開発者、1 つの展開場所: Developer Small Business — US$599。
- 顧客に配布される製品、またはパブリック Web アプリケーションに埋め込まれます: Developer OEM — US$1,797。
- 販売する SDK または API の一部として配布: Developer SDK — US$11,980。
- チームまたはより広範な組織の展開: サイト ライセンスが利用可能です。料金ページをご覧ください。
商用製品またはパブリック Web アプリケーション内に同梱されている Ghostscript の代替品の場合、通常は Developer OEM が適切な層です。 1 人の開発者、無制限の展開場所、および外部配布をカバーします。
永久ライセンスには 1 年間の更新が含まれており、割引更新も可能です。
コミットする前に試してみる
ライセンスのない評価出力にはウォーターマークが含まれます。無料の 30 日間の一時ライセンスでは評価制限が解除され、購入前に自分のファイルをテストできます。
最も難しい PostScript ファイルを持参してください。正しく変換されない場合は、購入後ではなく評価中に見つけた方がよいでしょう。