SetPDFAMode
Propriedades do documento, Conformidade
Descrição
Ativa um modo de conformidade PDF/A para o documento selecionado. Uma única chamada faz toda a configuração de nível de documento exigida pelo part e nível de conformidade PDF/A escolhidos: a versão do PDF é elevada ao mínimo exigido, a entrada /MarkInfo é gravada quando o nível de conformidade de PDF marcado (A) é selecionado, um output intent (perfil ICC sRGB DeviceRGB) é adicionado ao Catalog, e as entradas de namespace XMP pdfaid:part/pdfaid:conformance são gravadas. A biblioteca também ativa um guarda de conformidade no lado da geração, que rejeita chamadas posteriores que emitiriam conteúdo proibido pelo part escolhido (veja Remarks).
Chame uma única vez em um documento recém-criado e antes de adicionar qualquer conteúdo. Para validar um arquivo PDF/A existente produzido por esta ou qualquer outra biblioteca, use CheckFileCompliance com ComplianceTest = 1.
Sintaxe
Delphi
Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;
ActiveX
Function PDFlib::SetPDFAMode(NewMode As Long) As Long
DLL
int DLSetPDFAMode(int InstanceID, int NewMode);
Parâmetros
| NewMode | O modo de conformidade PDF/A a ativar. Cada modo é identificado por uma part do PDF/A (1, 2, 3 ou 4 — ISO 19005-1/-2/-3/-4) e um nível de conformidade (B para reprodução visual básica, A para acessibilidade de PDF marcado). 0 — Desativa o modo PDF/A (padrão). 1 — PDF/A-1a (ISO 19005-1 Level A). PDF 1.4. PDF marcado obrigatório. 2 — PDF/A-1b (ISO 19005-1 Level B). PDF 1.4. Apenas reprodução visual. 3 — PDF/A-2b (ISO 19005-2 Level B). PDF 1.7. Reprodução visual; transparência e layers permitidos. 4 — PDF/A-2a (ISO 19005-2 Level A). PDF 1.7. PDF marcado obrigatório. 5 — PDF/A-3b (ISO 19005-3 Level B). PDF 1.7. Como o PDF/A-2b, mas permite arquivos embutidos arbitrários. 6 — PDF/A-3a (ISO 19005-3 Level A). PDF 1.7. Como o PDF/A-2a, mas permite arquivos embutidos arbitrários. 7 — PDF/A-3u (ISO 19005-3 Level U). PDF 1.7. Como o PDF/A-3b, mas declara que o texto deve ter mapeamentos Unicode. 8 — PDF/A-2u (ISO 19005-2 Level U). PDF 1.7. Como o PDF/A-2b, mas declara que o texto deve ter mapeamentos Unicode; arquivos embutidos continuam proibidos. 9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Identificado por part e ano de revisão, e não por um nível de conformidade; o texto precisa de mapeamentos Unicode e a marcação não é obrigatória. 10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Como o PDF/A-4 e ainda permite 3D e rich media para documentos de engenharia. 11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Como o PDF/A-4 e ainda permite um arquivo embutido de qualquer formato. |
|---|
Valores retornados
| 0 | Falhou — não há documento aberto, ou NewMode está fora do intervalo 0–7. |
|---|---|
| 1 | PDF/A mode activated successfully. |
Observações
O modo escolhido controla uma guarda de conformidade no lado da geração Uma vez ativado, a biblioteca recusa ou reescreve chamadas subsequentes que emitiriam conteúdo proibido pela parte, em linha com a ISO 19005:
| CMYK / Separation / Shader colors | Bloqueado em todos os modos PDF/A (1–7) — o documento é configurado com um output intent sRGB e só cores compatíveis com a classe de dispositivo do output intent podem ser usadas. |
|---|---|
| Encryption | Bloqueado em todos os modos PDF/A. Defina o modo antes de chamar qualquer API relacionada a criptografia. |
| Transparency / blend modes / page transparency groups | Bloqueado nos modos 1 e 2 (o PDF/A-1 proíbe transparência). Permitido nos modos 3–7 (PDF/A-2/3 permitem transparência). |
| JavaScript actions | Bloqueado em todos os modos PDF/A — a ISO 19005-1 §6.6.1 proíbe JavaScript e a proibição se estende ao PDF/A-2/3. |
| Embedded files / file attachments | Bloqueado nos modos 1–4 (o PDF/A-1 os proíbe; o PDF/A-2 só permite PDFs embutidos conformes ao PDF/A, o que a biblioteca não impõe). Permitido nos modos 5, 6 e 7 — o PDF/A-3 permite explicitamente arquivos embutidos de qualquer tipo MIME via associação AFRelationship. |
O conteúdo de PDF marcado exigido (estrutura de títulos, alt text nas figures, atributos de escopo de tabelas, entradas RoleMap para tipos personalizados) é responsabilidade do chamador nos níveis a (modos 1, 4, 6). Use BeginTag, BeginArtifact, AddRoleMap e os setters de elementos de estrutura para construir a árvore de estruturas. Chame GetPDFUADiagnostics antes de salvar para trazer à tona as ocorrências de PDF marcado mais comuns. Para o nível u (modo 7), garanta que os recursos de fonte do documento forneçam mapeamentos de texto Unicode para todo texto renderizado.
PDF/A e PDF/UA podem ser ativados no mesmo documento. Ative primeiro o SetPDFAMode (os parts 1a/2a/3a já implicam PDF marcado) e depois chame SetPDFUAMode para acrescentar a configuração de catálogo específica do PDF/UA (DisplayDocTitle, pdfuaid:part, /Tabs /S automático).
Exemplo
// PDF/A-1b — minimum-effort archival document
PDF.NewDocument;
PDF.SetPDFAMode(2); // PDF/A-1b
PDF.SetDocumentInfo('Title', 'Quarterly Report Q1 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.SetFontSize(12);
PDF.PrintText(50, 750, 'Quarterly Report — Q1 2026');
PDF.SaveToFile('Q1-Report-PDFA1b.pdf');
// PDF/A-3a — tagged report with an embedded source spreadsheet
PDF.NewDocument;
PDF.SetPDFAMode(6); // PDF/A-3a
PDF.SetPDFUAMode('en-US'); // Optional: also satisfy PDF/UA-1
PDF.SetDocumentInfo('Title', 'Sales Analysis 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Sales Analysis');
PDF.EndTag;
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'See attached spreadsheet for source data.');
PDF.EndTag;
PDF.EmbedFile('Source data', 'data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
PDF.SaveToFile('Sales-PDFA3a.pdf');Veja também
CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation