Pular para o conteúdo

Conformidade PDF/X: o output intent de produção gráfica emitido pelo NextPDF

Declaração de limite. Um perfil testado não equivale a uma certificação.

Ressalva de escopo (leia primeiro). A ISO 15930 (o padrão da família PDF/X) não está no corpus de verificação do NextPDF. Esta página não reivindica certificação independente PDF/X-4 ou PDF/X-6. O NextPDF emite o output intent de produção gráfica e a infraestrutura de perfis do International Color Consortium (ICC) que os fluxos PDF/X exigem. O NextPDF verifica essas estruturas em relação à ISO 32000-2 §14.11.5 (o dicionário OutputIntent que a ISO 15930 importa por referência) e à estrutura de perfil ICC.1 / ISO 15076-1. Uma ferramenta de preflight de pré-impressão externa, e não esta biblioteca, decide se um arquivo está em conformidade com uma parte do PDF/X.

O NextPDF Core emite um OutputIntent /GTS_PDFX que referencia um DestOutputProfile ICC embutido quando um espaço de trabalho de gamut amplo é selecionado. O NextPDF Core restringe o perfil ICC embutido à versão 4. Esses artefatos são os pré-requisitos estruturais verificados por um preflight PDF/X-4 / PDF/X-6. A biblioteca os produz. Uma ferramenta de preflight decide a conformidade.

Terminal window
composer require nextpdf/core:^3

O caminho de output intent do PDF/X é uma capacidade do Core. O OutputColorProfile do documento controla esse caminho. Você não precisa de um pacote Premium para o próprio OutputIntent GTS_PDFX.

NextPDF\Core\OutputColorProfile seleciona o espaço de trabalho: DeviceRGB (padrão, sem intent de gamut amplo), DisplayP3, Rec2020, A98RGB, ou ProphotoRGB. Quando você seleciona qualquer caso de gamut amplo, o PdfWriter emite, conforme a ISO 32000-2 §14.11.5:

  • um dicionário /Type /OutputIntent /S /GTS_PDFX no array /OutputIntents do catálogo;
  • um fluxo (stream) ICC embutido como o DestOutputProfile (o perfil do espaço de trabalho, por exemplo display-p3-v4.icc);
  • os campos de OutputConditionIdentifier / registro exigidos pelo dicionário.

NextPDF\Graphics\ColorSpace\IccVersionTier restringe o perfil embutido. V4 é obrigatório para output intents PDF 2.0 / PDF/A-4 / PDF/X-6. requiresV4Strict() rejeita um perfil v2 para que uma reivindicação PDF/X-6 não seja feita com um perfil ICC não-v4. Esse é o pré-requisito estrutural que um preflight PDF/X-6 verifica; não é o próprio preflight.

SímboloEfeito
OutputColorProfile (enum)Discrimina o espaço de trabalho; casos de gamut amplo acionam a emissão do OutputIntent /GTS_PDFX.
OutputColorProfile::isWideGamut(): boolÉ verdadeiro para qualquer caso não-DeviceRGB.
OutputColorProfile::iccFilename(): ?stringO recurso de perfil ICC embutido para o caso.
IccVersionTier::requiresV4Strict()Gate que rejeita perfis ICC não-v4 ao reivindicar estrutura PDF/A-4 / PDF/X-6.
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Config;
use NextPDF\Core\Document;
use NextPDF\Core\OutputColorProfile;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/print.pdf';
$config = new Config(outputColorProfile: OutputColorProfile::DisplayP3);
$doc = Document::createStandalone($config);
$doc->setTitle('Print production sample');
$doc->writeHtml('<h1>Wide-gamut artwork</h1>');
$doc->save($out); // /GTS_PDFX OutputIntent + display-p3-v4.icc emitted here
echo "Wrote {$out} — run an external PDF/X preflight to validate.\n";

Em produção, envie a saída para um preflight de pré-impressão externo: a ferramenta de referência do fluxo de impressão de destino. Trate o relatório do preflight como o gate. O NextPDF emite o OutputIntent GTS_PDFX e o ICC v4. A ferramenta de preflight determina a conformidade PDF/X-4 / PDF/X-6. O NextPDF não fornece um validador PDF/X.

  • DeviceRGB não emite nenhum intent PDF/X. O perfil padrão é idêntico byte a byte à saída legada e não carrega nenhum OutputIntent /GTS_PDFX. Você deve selecionar explicitamente um perfil de gamut amplo para um fluxo PDF/X.
  • Um perfil ICC v2 bloqueia uma reivindicação PDF/X-6. requiresV4Strict() rejeita um perfil v2; não reivindique estrutura PDF/X-6 com um perfil ICC não-v4.
  • Cores spot / sobreimpressão. Fluxos completos PDF/X-1a/X-3 CMYK + cores spot ficam fora do escopo do caminho de OutputIntent do Core. Esta página cobre apenas o output intent baseado em ICC do PDF/X-4 / PDF/X-6.
  • Nenhuma reivindicação de certificação. Emitir o OutputIntent é suporte estrutural. A conformidade PDF/X é um veredito de preflight, não um estado da biblioteca.

Um OutputIntent de gamut amplo adiciona um fluxo (stream) ICC embutido em save(). Seu tamanho é fixo para o espaço de trabalho. Orçado em wall ≤ 1500 ms, pico ≤ 128 MB.

Output intents de produção gráfica são metadados de gerenciamento de cores, não controles de segurança. O perfil ICC embutido contém dados públicos.

A emissão do OutputIntent ocorre dentro do processo. Apenas o documento e o perfil ICC embutido são gravados. Nenhum conteúdo deixa o processo; o perfil não carrega nenhuma informação de identificação pessoal (PII).

O exemplo registra apenas o caminho de saída e uma dica de validação. Ele não registra nenhum byte do documento; NEXTPDF_COOKBOOK_OUTPUT é respeitado.

Um arquivo PDF/X não tem controle de acesso. O OutputIntent fornece reprodutibilidade de cor para uma condição de impressão, não confidencialidade.

O caminho de OutputIntent do PDF/X não realiza nenhuma criptografia. O modo FIPS não tem efeito.

ReivindicaçãoSpecCláusulareference_id
Um OutputIntent referencia um fluxo (stream) ICC DestOutputProfile para a condição de renderização de saída.ISO 32000-2§14.11.5
O OutputIntent carrega um OutputConditionIdentifier / identificador de registro.ISO 32000-2§14.11.5
Output intents residem no array OutputIntents do catálogo do documento.ISO 32000-2§14.11.5
Um perfil ICC em conformidade carrega um cabeçalho definido com um campo de versão.ICC.1 / ISO 15076-1§7
O DestOutputProfile embutido usa a estrutura de perfil ICC v4.ICC.1 / ISO 15076-1§7

ISO 15930 (PDF/X) não está no corpus de verificação. As reivindicações acima são os pré-requisitos da ISO 32000-2 §14.11.5 + ICC.1 que um preflight PDF/X verifica. As citações são ponteiros de clause-id + reference_id para o corpus de verificação (manifesto). Nenhum texto de norma é reproduzido.