Uma alternativa Ghostscript que você pode enviar em software de código fechado

Converta PostScript, EPS e XPS em PDF e imagens de uma biblioteca .NET gerenciada sem obrigações binárias de conversor nativo ou copyleft.

 

Você precisa converter arquivos PostScript, EPS ou XPS dentro do seu produto. As ferramentas da Artifex fazem isso bem e podem ser baixadas gratuitamente: o Ghostscript interpreta PostScript e EPS, e o GhostXPS processa XPS. Então sua equipe jurídica lê a licença e o projeto para.

Esta página explica qual é a restrição de licenciamento, quais são suas opções — incluindo aquelas que não nos envolvem — e como migrar se Aspose.Page for a opção certa.

Aspose.Page é uma biblioteca comercial .NET para conversão e renderização. Ele foi projetado para redistribuição em aplicativos de código fechado sem exigir uma instalação nativa do Ghostscript.

O que a licença realmente exige

Ghostscript foi licenciado duplamente sob a Licença Pública Geral GNU Affero v3 desde a versão 9.07 em fevereiro de 2013. Antes disso, era GPL v3. Artifex Software detém os direitos autorais e vende uma licença comercial como alternativa à conformidade com AGPL. O mesmo licenciamento duplo abrange a árvore de código-fonte mais ampla do GhostPDL, que inclui o interpretador GhostXPS; portanto, processar XPS em vez de PostScript não altera a questão do licenciamento.

A provisão copyleft do AGPL pode exigir que o código-fonte correspondente completo de um trabalho derivado seja lançado sob o AGPL. Também se estende ao software oferecido aos usuários em uma rede, portanto, um produto SaaS que nunca envia um binário não está automaticamente fora de seu escopo.

A nuance que importa: vincular versus desembolsar

Uma posição comum é que invocar `gs` como um processo separado evita o copyleft porque o aplicativo não está vinculado à biblioteca. Este é um território genuinamente contestado. As orientações divergem sobre se um limite de processo é decisivo ou se a intimidade da comunicação e a concepção do programa combinado são mais importantes.

Não somos seus advogados e esta página não é um aconselhamento jurídico. Sua equipe jurídica deve avaliar como seu produto é construído, oferecido e distribuído. Para muitas equipes, a própria incerteza é um custo que não estão dispostas a arcar.

Jurisprudência

Em *Artifex Software, Inc. v. Hancom, Inc.*, Artifex alegou que a Hancom incorporou o GPL licenciado pelo Ghostscript no Hancom Office sem comprar uma licença comercial ou cumprir os requisitos de divulgação da fonte do GPL.

Em 25 April 2017, o U.S. District Court for the Northern District of California negou a moção de Hancom para rejeitar. A decisão permitiu à Artifex prosseguir tanto com a quebra de contrato quanto com a violação de direitos autorais. As partes chegaram a um acordo em dezembro de 2017.

O significado é limitado: uma licença de código aberto é aplicável. A decisão não decide que toda integração ou invocação de processo separado cria um trabalho derivado.

Suas opções

Existem três caminhos honestos e apenas um deles nos envolve.

1. Compre uma licença comercial da Artifex

Artifex vende uma licença comercial para que as empresas possam usar Ghostscript em produtos de código fechado. Esta é uma rota legítima e suportada e provavelmente a escolha certa quando você depende do conjunto completo de recursos do Ghostscript.

Escolha isto se: você usa Ghostscript como um interpretador PostScript completo ou PDF ou RIP, incluindo separações de cores, dispositivos de impressão, entrada PDF ou fluxos de trabalho complexos de RIP.

2. Substitua o componente

Se o requisito for mais restrito – converter arquivos PS, EPS ou XPS em PDF ou imagens – uma biblioteca comercial desenvolvida especificamente pode cobri-lo sem a mesma questão de licenciamento.

Escolha isto se: seu uso é conversão e renderização, e você prefere um pacote NuGet gerenciado a um binário nativo em cada implantação.

3. Abandone o recurso

Se a conversão de formato for uma conveniência raramente usada, removê-la poderá custar menos do que qualquer uma das licenças.

Escolha isto se: o recurso não é importante o suficiente para justificar uma licença comercial ou uma migração.

Onde Aspose.Page cabe - e onde não cabe

Aspose.Page é uma boa opção se você precisar:

  • Converta arquivos PostScript (PS) e EPS em PDF.
  • Converta documentos XPS e OXPS em PDF.
  • Renderize qualquer um desses formatos para PNG, JPEG, TIFF ou BMP.
  • Mesclar vários documentos PS ou XPS.
  • Crie e edite documentos XPS programaticamente.
  • Leia e grave metadados XMP em arquivos EPS.
  • Corte, redimensione e transforme arquivos EPS.
  • Execute a conversão dentro de um produto comercial de código fechado, servidor, contêiner ou função sem servidor.

Aspose.Page é a ferramenta errada se você precisar:

  • Um interpretador PostScript completo ou RIP com controle em nível de dispositivo.
  • Arquivos PDF como entrada — use Aspose.PDF , que é um produto diferente.
  • CMYK separações de cores ou saída de dispositivo de impressão com nível de pré-impressão.
  • O comportamento do destilador pdfwrite do Ghostscript foi reproduzido exatamente.

Se você estiver na segunda lista, a licença comercial Artifex é a mais adequada. Custará menos do que uma migração que não consegue atingir a paridade.

Quanto custa um conversor nativo em um contêiner

Cada rota para Ghostscript do .NET — `Ghostscript.NET`, P/Invoke direto ou invocação de `gs` como um processo — termina com o binário nativo e suas bibliotecas compartilhadas na imagem. Isso cria um trabalho operacional contínuo:

  • Tamanho da imagem. Você está enviando um intérprete, não apenas um conversor.
  • Aplicação de patches CVE. As vulnerabilidades Ghostscript tornam-se parte de sua cadência de aplicação de patches e reconstrução.
  • Bloqueio de imagem base. Compilações nativas e bibliotecas compartilhadas restringem quais imagens base você pode usar; As compilações glibc e musl não são intercambiáveis.
  • Desvio de ambiente. Máquinas de desenvolvimento, executores de CI e hosts de produção devem ter versões nativas compatíveis.
  • Plano de consumo do Azure Functions. Os pacotes nativos não podem ser instalados lá, o que é uma parada difícil e não um inconveniente de implantação. Consulte o guia técnico para Docker e implantação sem servidor .

Uma biblioteca gerenciada elimina essas preocupações do conversor nativo. Você ainda deve empacotar e configurar as fontes exigidas pelos seus documentos.

Ghostscript versus Aspose.Page para .NET

  • Licença — Ghostscript: AGPL v3 ou comercial da Artifex. Aspose.Page: apenas comercial.
  • Divulgação da fonte — Ghostscript: obrigatório quando o AGPL se aplica. Aspose.Page: não obrigatório.
  • Rede e SaaS — Ghostscript: o uso da rede está dentro do escopo AGPL. Aspose.Page: a implantação comercial é coberta pela licença adquirida.
  • Implementação — Ghostscript: binário C nativo. Aspose.Page: biblioteca .NET gerenciada sem conversor binário nativo.
  • Integração .NET — Ghostscript: invocação de processo ou um wrapper como Ghostscript.NET. Aspose.Page: pacote NuGet e API direta.
  • Implantação — Ghostscript: instale ou agrupe o binário nativo e as bibliotecas compartilhadas. Aspose.Page: empacota os assemblies gerenciados com o aplicativo.
  • Formatos de entrada — Ghostscript: PS, EPS, PDF e outros; XPS requer o GhostXPS, um interpretador separado da mesma árvore GhostPDL. Aspose.Page: PS, EPS, XPS e OXPS em uma única biblioteca.
  • Saída — Ghostscript: PDF além de uma ampla variedade de dispositivos raster e de impressão. Aspose.Page: PDF, PNG, JPEG, TIFF e BMP.
  • Escopo — Ghostscript: intérprete completo e RIP. Aspose.Page: conversão, renderização e manipulação de documentos.
  • Preço — Ghostscript: o preço comercial é cotado pela Artifex. Aspose.Page: camadas publicadas de US$599.

Migração

PostScript ou EPS a PDF

Conversão C# substituindo o comando `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);
}

Substitui: `gs -sDEVICE=pdfwrite -o output.pdf input.ps`

PostScript ou EPS para imagens

Conversão C# substituindo o comando `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.

Substitui: `gs -sDEVICE=png16m -o page_%d.png input.ps`

XPS para PDF

Conversão C# XPS para 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.

O `gs` não lê XPS. O equivalente da Artifex é o `gxps` do GhostPDL, sob a mesma licença dupla.

Qual licença você precisa?

Esses preços publicados foram verificados em 26 de outubro de 2026. Confirme os preços atuais na [página de preços Aspose.Page para .NET](https://purchase.aspose.com/pricing/page/net).

  • Ferramenta interna, um desenvolvedor e um local de implantação: Developer Small Business — US$599.
  • Incorporado em um produto distribuído aos clientes ou em um aplicativo Web público: Developer OEM — US$1,797.
  • Distribuído como parte de um SDK ou API que você vende: Developer SDK — US$11,980.
  • Uma implantação em equipe ou em uma organização mais ampla: Licenças de site estão disponíveis; veja a página de preços.

Para uma substituição do Ghostscript enviada dentro de um produto comercial ou aplicativo da Web público, o Developer OEM normalmente é o nível certo. Abrange um desenvolvedor, locais de implantação ilimitados e distribuição externa.

As licenças perpétuas incluem um ano de atualizações, com renovação com desconto disponível.

Experimente antes de se comprometer

A saída da avaliação não licenciada traz uma marca d’água. Uma licença temporária gratuita de 30 dias remove os limites de avaliação para que você possa testar seus próprios arquivos antes de comprar.

Traga seu arquivo PostScript mais difícil. Se não converter corretamente, é melhor descobrir durante a avaliação do que após a compra.