Альтернатива Ghostscript, которую можно поставлять в виде программного обеспечения с закрытым исходным кодом.

Конвертируйте PostScript, EPS и XPS в PDF и изображения из управляемой библиотеки .NET без каких-либо обязательств по встроенному конвертеру двоичных файлов или авторскому левому.

 

Вам необходимо конвертировать файлы PostScript, EPS или XPS внутри вашего продукта. Инструменты Artifex хорошо справляются с этой задачей и доступны для бесплатной загрузки: Ghostscript интерпретирует PostScript и EPS, а GhostXPS обрабатывает XPS. Затем ваша юридическая команда читает лицензию, и проект останавливается.

На этой странице объясняется, каковы ограничения лицензирования, какие у вас есть варианты, включая те, которые не связаны с нами, и как выполнить миграцию, если Aspose.Page подходит.

Aspose.Page — коммерческая библиотека .NET для преобразования и рендеринга. Он предназначен для распространения в приложениях с закрытым исходным кодом без необходимости установки встроенного Ghostscript.

Что на самом деле требует лицензия

Ghostscript имеет двойную лицензию GNU Affero General Public License v3, начиная с версии 9.07 в феврале 2013 года. До этого это была GPL v3. Artifex Software владеет авторскими правами и продает коммерческую лицензию в качестве альтернативы стандарту AGPL. Та же двойная лицензия распространяется на более широкое дерево исходного кода GhostPDL, включающее интерпретатор GhostXPS, поэтому обработка XPS вместо PostScript не меняет вопрос лицензирования.

Положение о копилефте AGPL может требовать, чтобы полный соответствующий исходный код производного произведения был выпущен под AGPL. Оно также распространяется на программное обеспечение, предлагаемое пользователям по сети, поэтому продукт SaaS, который никогда не поставляет двоичный файл, автоматически не выходит за рамки его действия.

Нюанс, который имеет значение: связывание или удаление ссылок

Распространенной точкой зрения является то, что вызов `gs` как отдельного процесса позволяет избежать авторского лева, поскольку приложение не связано с библиотекой. Это действительно спорная территория. Рекомендации различаются в зависимости от того, являются ли границы процесса решающими или большее значение имеют близость коммуникации и структура объединенной программы.

Мы не ваши юристы, и эта страница не является юридической консультацией. Ваша юридическая команда должна оценить, как создается, предлагается и распространяется ваш продукт. Для многих команд неопределенность сама по себе является ценой, которую они не хотят нести.

Прецедентное право

В деле *Artifex Software, Inc. v. Hancom, Inc.* компания Artifex утверждала, что Hancom внедрила Ghostscript под лицензией GPL в Hancom Office, не покупая коммерческую лицензию и не соблюдая требования GPL о раскрытии источника.

На 25 April 2017 U.S. District Court for the Northern District of California отклонил ходатайство Hancom об отклонении. Решение позволило Artifex действовать как по нарушению контракта, так и по нарушению авторских прав. Стороны урегулировали спор в декабре 2017 года.

Значение узкое: лицензия на открытый исходный код подлежит принудительному исполнению. Постановление не решает, что каждая интеграция или вызов отдельного процесса создает производную работу.

Ваши варианты

Есть три честных пути, и только один из них касается нас.

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 программным способом.
  • Чтение и запись метаданных XMP в файлы EPS.
  • Обрезайте, изменяйте размер и преобразуйте файлы EPS.
  • Запускайте преобразование внутри коммерческого продукта с закрытым исходным кодом, сервера, контейнера или бессерверной функции.

Aspose.Page — неправильный инструмент, если вам нужно:

  • Полный интерпретатор PostScript или RIP с контролем на уровне устройства.
  • В качестве входных данных используйте файлы PDF — используйте Aspose.PDF , который является другим продуктом.
  • CMYK цветоделение или вывод на печатающее устройство уровня допечатной подготовки.
  • Поведение дистиллятора Ghostscript pdfwrite воспроизведено точно.

Если вы находитесь во втором списке, коммерческая лицензия Artifex подойдет лучше. Это будет стоить меньше, чем миграция, которая не может достичь паритета.

Сколько стоит родной конвертер в контейнере

Каждый путь к Ghostscript из .NET — `Ghostscript.NET`, прямой P/Invoke или вызов `gs` как процесса — заканчивается собственным двоичным файлом и его общими библиотеками в образе. Это создает непрерывную оперативную работу:

  • Размер изображения. Вы отправляете переводчик, а не только конвертер.
  • Исправление CVE. Уязвимости Ghostscript становятся частью вашего регулярного исправления и восстановления.
  • Фиксация базового образа. Собственные сборки и общие библиотеки ограничивают использование базовых образов; Сборки glibc и musl не являются взаимозаменяемыми.
  • Изменение среды. Компьютеры разработки, исполнители CI и производственные хосты должны иметь совместимые собственные версии.
  • План использования функций Azure. Там нельзя установить собственные пакеты, что является скорее жесткой остановкой, чем неудобством при развертывании. См. техническое руководство по Docker и бессерверному развертыванию .

Управляемая библиотека избавляет собственный преобразователь от этих проблем. Вам по-прежнему необходимо упаковать и настроить шрифты, необходимые для ваших документов.

Ghostscript против Aspose.Page для .NET

  • Лицензия — 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 требуется GhostXPS — отдельный интерпретатор из того же дерева GhostPDL. Aspose.Page: 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

Преобразование C#, заменяющее команду `gs` pdfwrite

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 для изображений

Преобразование C#, заменяющее команду `gs` png16m

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 — `gxps` из GhostPDL, распространяемый по той же двойной лицензии.

Какая лицензия вам нужна?

Эти опубликованные цены были проверены 26 октября 2026 г. Подтвердите текущие цены на [странице цен Aspose.Page для .NET](https://purchase.aspose.com/pricing/page/net).

  • Внутренний инструмент, один разработчик и одно место развертывания: Developer Small Business — US$599.
  • Встроен в продукт, распространяемый среди клиентов, или общедоступное веб-приложение: Developer OEM — US$1,797.
  • Распространяется как часть продаваемого вами SDK или API: Developer SDK — US$11,980.
  • Развертывание в команде или более широкой организации: Доступны лицензии для объектов; смотрите страницу цен.

Для замены Ghostscript, поставляемой внутри коммерческого продукта или общедоступного веб-приложения, обычно подходящим уровнем является Developer OEM. Он охватывает одного разработчика, неограниченное количество мест развертывания и внешнее распространение.

Бессрочные лицензии включают один год обновлений с возможностью продления со скидкой.

Попробуйте, прежде чем совершать

Нелицензированные оценочные результаты имеют водяной знак. Бесплатная 30-дневная временная лицензия снимает ограничения на оценку, поэтому вы можете протестировать свои собственные файлы перед покупкой.

Принесите свой самый сложный файл PostScript. Если конвертируется некорректно, лучше это выяснить во время оценки, чем после покупки.