Альтернатива 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 включив GPL Ghostscript в 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 або вихід додрукарського пристрою.
- Поведінка
pdfwriteдистилятора Ghostscript точно відтворена.
Якщо ви перебуваєте в другому списку, комерційна ліцензія 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-денна тимчасова ліцензія скасовує обмеження на оцінку, тому ви можете перевірити власні файли перед покупкою.
- Подати запит на тимчасову ліцензію
- Завантажити Aspose.Page з NuGet
- Читати документацію
- Перегляньте робочі приклади на GitHub
Принесіть свій найскладніший файл PostScript. Якщо він не конвертується належним чином, це краще дізнатися під час оцінки, ніж після покупки.