Licenças

O PDFGym se monta com bibliotecas de código aberto e envia seu código ao seu navegador para trabalhar. Quase todas são permissivas. Duas são copyleft, e cada uma vive em exatamente uma rota. Abaixo, cada biblioteca agrupada por trabalho, com sua licença e onde lê-la.

Ler e escrever

As duas metades de cada operação. O leitor também verifica: reabre cada resultado e informa o que chegou de verdade à página.

BibliotecaPapel aquiLicençaFonte
pdf.js Papel aquiLê e renderiza PDF, e verifica cada resultado. LicençaApache-2.0 FonteTexto completo
@cantoo/pdf-lib Papel aquiEscreve PDF. LicençaMIT FonteTexto completo

Fotos e fontes

Tudo que forma uma página PDF além do texto: o codificador JPEG, os decodificadores dentro do pdf.js, suporte TIFF e o cortador de fontes que mantém pequenas as fontes embutidas.

BibliotecaPapel aquiLicençaFonte
@jsquash/jpeg Papel aquiRoda o codificador JPEG no navegador. LicençaApache-2.0 FonteTexto completo
mozjpeg, libjpeg-turbo Papel aquiO codificador JPEG em si. LicençaTrês licenças estilo BSD, incluindo IJG FonteTexto completo
harfbuzzjs Papel aquiRecorta as fontes embutidas para os glifos que o documento desenha. LicençaMIT FonteTexto completo
UTIF.js Papel aquiDecodifica TIFF normais e multipágina. LicençaMIT FonteTexto completo
pako Papel aquiInfla dados TIFF comprimidos para o UTIF.js. LicençaMIT e Zlib FonteTexto completo
OpenJPEG Papel aquiDecodifica imagens JPEG 2000 dentro do pdf.js. LicençaBSD-2-Clause FonteTexto completo
JBIG2, de PDFium Papel aquiDecodifica imagens JBIG2 dentro do pdf.js. LicençaBSD, Os autores do PDFium FonteTexto completo
qcms Papel aquiAplica perfis de cor ICC dentro do pdf.js. LicençaMIT, Mozilla FonteTexto completo

Sugerir texto privado

As ferramentas de privacidade sugerem o que pode ser informação pessoal. O modelo e seu executor viajam ao navegador; as sugestões nunca saem dele.

BibliotecaPapel aquiLicençaFonte
Google BERT Mini Papel aquiModelo base de quatro camadas para sugerir informação privada. LicençaApache-2.0 FonteRegistro de fonte
ONNX Runtime Web 1.29.0 Papel aquiRoda esse detector em um worker do navegador. LicençaMIT FonteTexto completo

Dois convidados com normas da casa

Dois motores PDF conhecidos, MuPDF e Ghostscript, são AGPL v3. Rodar qualquer um atrás de um serviço web obriga o operador a publicar todo o serviço sob os mesmos termos.

O PDFGym não usa nenhum.

Os dois componentes copyleft que ele inclui ficam cada um em uma rota.

O decodificador HEIC só é trazido após você escolher uma foto HEIC ou HEIF em HEIC para PDF. O renderizador de chapas de Preflight só responde a partir de Preflight de impressão e roda em seu próprio worker.

Nenhuma outra ferramenta importa nem vincula nenhum.

BibliotecaPapel aquiLicençaFonte
@discourse/heic Papel aquiCarrega o decodificador HEIC só na rota HEIC para PDF. LicençaApache-2.0 FonteTexto completo
libheif 1.19.7 Papel aquiLê o contêiner HEIC dentro do decodificador da rota. LicençaLGPL-3.0-or-later FonteFonte exata
libde265 1.0.15 Papel aquiDecodifica a imagem HEVC dentro do decodificador da rota. LicençaLGPL-3.0-or-later FonteFonte exata
Poppler 26.02.0 Papel aquiRenderiza chapas de separação para Preflight, em seu próprio worker. LicençaGPL-2.0-or-later FonteTexto completo
OpenJPEG 2.5.3 Papel aquiDecodifica JPEG 2000 dentro desse mesmo worker. LicençaBSD-2-Clause FonteTexto completo

Ambos usam o código oficial publicado, sem mudanças.

A build de Preflight pode ser repetida a partir de fontes publicadas: o registro de fonte nomeia os arquivos exatos de Poppler e OpenJPEG com seus SHA-256, a imagem Emscripten por digest, e o adaptador e script que produziu o WebAssembly.

Perguntam com frequência

Posso reusar este código no meu projeto?
Cada biblioteca guarda sua própria licença, acima com seu texto completo. As permissivas (MIT, BSD, Apache-2.0) permitem reusar com atribuição; o decodificador LGPL e o renderizador GPL trazem os deveres copyleft de seus textos.
Por que o copyleft vive cercado em uma rota?
Para que seus deveres sejam pequenos e comprováveis. O decodificador HEIC só carrega onde se leem fotos HEIC, e o worker Poppler só responde a Preflight. Nada mais importa nem vincula nenhum.
As bibliotecas foram modificadas?
Não. Tudo viaja tal como publicado: por isso os números de versão e registros acima são exatos. Os consertos da comunidade chegam com a próxima atualização em vez de viver em um fork privado.
Onde está o código próprio do site?
As ferramentas que unem estas bibliotecas (o workspace, as verificações, as páginas) são trabalho próprio do projeto. As bibliotecas fazem o trabalho pesado sob os termos acima; a verificação que rejeita um download ruim é nossa.

Para onde ir agora