SetPDFAMode

Propriedades do documento, conformidade

Descrição

Ativa um modo de conformidade PDF/A para o documento selecionado. Uma única chamada efetua toda a configuração ao nível do documento exigida pela parte e pelo nível de conformidade PDF/A escolhidos: a versão PDF é elevada ao mínimo exigido, a entrada /MarkInfo é escrita quando é selecionado o nível de conformidade de PDF etiquetado (A), um objetivo de saída (perfil ICC sRGB DeviceRGB) é adicionado ao Catalog e são escritas as entradas do espaço de nomes XMP pdfaid:part/pdfaid:conformance. A biblioteca também ativa uma proteção de conformidade do lado da geração que rejeita chamadas posteriores que emitiriam conteúdo proibido pela parte escolhida (consulte Remarks)

Invoque uma vez num documento recém-criado e antes de adicionar conteúdo. Para validar um ficheiro PDF/A existente produzido por esta ou outra biblioteca, utilize 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

NewModeO modo de conformidade PDF/A a ativar. Cada modo é identificado por uma parte 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 etiquetado).

0 — Desativar o modo PDF/A (predefinição).
1 — PDF/A-1a (ISO 19005-1 Nível A). PDF 1.4. Requer PDF etiquetado.
2 — PDF/A-1b (ISO 19005-1 Nível B). PDF 1.4. Apenas reprodução visual.
3 — PDF/A-2b (ISO 19005-2 Nível B). PDF 1.7. Reprodução visual; são permitidas transparências e camadas.
4 — PDF/A-2a (ISO 19005-2 Nível A). PDF 1.7. Requer PDF etiquetado.
5 — PDF/A-3b (ISO 19005-3 Nível B). PDF 1.7. Semelhante ao PDF/A-2b, mas permite ficheiros incorporados arbitrários.
6 — PDF/A-3a (ISO 19005-3 Nível A). PDF 1.7. Semelhante ao PDF/A-2a, mas permite ficheiros incorporados arbitrários.
7 — PDF/A-3u (ISO 19005-3 Nível U). PDF 1.7. Semelhante ao PDF/A-3b, mas declara que o texto deve ter mapeamentos Unicode.
8 — PDF/A-2u (ISO 19005-2 Nível U). PDF 1.7. Semelhante ao PDF/A-2b, mas declara que o texto deve ter mapeamentos Unicode; os ficheiros incorporados continuam proibidos.
9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Identificado pela parte e pelo ano de revisão, em vez de por um nível de conformidade; o texto necessita de mapeamentos Unicode e a etiquetagem não é obrigatória.
10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Semelhante ao PDF/A-4 e permite adicionalmente 3D e multimédia enriquecida em documentos de engenharia.
11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Semelhante ao PDF/A-4 e permite adicionalmente um ficheiro incorporado de qualquer formato

Valores devolvidos

0Falha — nenhum documento aberto ou NewMode fora do intervalo 0–11
1Modo PDF/A ativado com êxito

Observações

O modo escolhido controla uma proteção de conformidade durante a geração. Depois de ativado, a biblioteca recusa ou reescreve chamadas posteriores que emitiriam conteúdo proibido pela parte, de acordo com ISO 19005:

CMYK / Separation / Shader colorsBloqueado em todos os modos PDF/A (1–11) — o documento está configurado com uma intenção de saída sRGB e apenas podem ser utilizadas cores compatíveis com a classe de dispositivo da intenção de saída
EncryptionBloqueado em todos os modos PDF/A. Defina o modo antes de chamar qualquer API relacionada com encriptação
Transparency / blend modes / page transparency groupsBloqueado nos modos 1 e 2 (o PDF/A-1 proíbe a transparência). Permitido nos modos 3–11 (PDF/A-2, -3 e -4 permitem transparência)
JavaScript actionsBloqueado em todos os modos PDF/A — ISO 19005-1 §6.6.1 proíbe JavaScript, e a proibição mantém-se em PDF/A-2/3
Embedded files / file attachmentsBloqueado nos modos 1–4 (PDF/A-1 proíbe-os; PDF/A-2 só permite PDFs incorporados conformes com PDF/A, o que a biblioteca não impõe). Permitido nos modos 5, 6, 7, 9, 10 e 11. PDF/A-3 permite ficheiros incorporados de qualquer tipo MIME através da associação AFRelationship, e PDF/A-4 mantém essa permissão; em PDF/A-4 simples, o ficheiro incorporado tem de estar em conformidade com PDF/A, requisito que PDF/A-4f elimina

O conteúdo PDF etiquetado obrigatório (estrutura de cabeçalhos, texto alternativo nas figuras, atributos de âmbito das tabelas, entradas RoleMap para tipos personalizados) é da responsabilidade do chamador nos níveis a (modos 1, 4, 6). Utilize BeginTag, BeginArtifact, AddRoleMap e os definidores de elementos de estrutura para criar a árvore de estrutura. Chame GetPDFUADiagnostics antes de guardar para detetar os problemas mais comuns do PDF etiquetado. Para o nível u (modo 7), garanta que os recursos de tipos de letra do documento fornecem mapeamentos de texto Unicode para todo o texto composto

PDF/A e PDF/UA podem ser ativados no mesmo documento. Ative primeiro SetPDFAMode (as partes 1a/2a/3a já implicam Tagged PDF) e, em seguida, invoque SetPDFUAMode para adicionar a configuração de catálogo específica de 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');

Consulte também

CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation