SetPDFAMode

Właściwości dokumentu, Zgodność

Opis

Aktywuje tryb zgodności PDF/A dla wybranego dokumentu. Jedno wywołanie wykonuje całą konfigurację na poziomie dokumentu wymaganą przez wybraną część i poziom zgodności PDF/A: wersja PDF zostaje podniesiona do wymaganego minimum, wpis /MarkInfo jest zapisywany po wybraniu poziomu zgodności Tagged PDF (A), do Catalog dodawany jest OutputIntent (profil ICC sRGB DeviceRGB), a wpisy przestrzeni nazw XMP pdfaid:part/pdfaid:conformance zostają zapisane. Biblioteka aktywuje także kontrolę zgodności podczas generowania, która odrzuca późniejsze wywołania emitujące zawartość zabronioną przez wybraną część (zobacz Uwagi)

Wywołaj tę metodę jeden raz dla nowo utworzonego dokumentu, przed dodaniem jakiejkolwiek zawartości. Aby zweryfikować istniejący plik PDF/A utworzony przez tę lub inną bibliotekę, użyj CheckFileCompliance z ComplianceTest = 1

Składnia

Delphi

Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;

ActiveX

Function PDFlib::SetPDFAMode(NewMode As Long) As Long

DLL

int DLSetPDFAMode(int InstanceID, int NewMode);

Parametry

NewModeTryb zgodności PDF/A do aktywowania. Każdy tryb jest określony przez część PDF/A (1, 2, 3 lub 4 — ISO 19005-1/-2/-3/-4) i poziom zgodności (B dla podstawowej reprodukcji wizualnej, A dla dostępności Tagged PDF).

0 — Wyłącza tryb PDF/A (domyślnie).
1 — PDF/A-1a (ISO 19005-1 Level A). PDF 1.4. Wymagany Tagged PDF.
2 — PDF/A-1b (ISO 19005-1 Level B). PDF 1.4. Tylko reprodukcja wizualna.
3 — PDF/A-2b (ISO 19005-2 Level B). PDF 1.7. Reprodukcja wizualna; przezroczystość i warstwy są dozwolone.
4 — PDF/A-2a (ISO 19005-2 Level A). PDF 1.7. Wymagany Tagged PDF.
5 — PDF/A-3b (ISO 19005-3 Level B). PDF 1.7. Jak PDF/A-2b, ale dopuszcza dowolne pliki osadzone.
6 — PDF/A-3a (ISO 19005-3 Level A). PDF 1.7. Jak PDF/A-2a, ale dopuszcza dowolne pliki osadzone.
7 — PDF/A-3u (ISO 19005-3 Level U). PDF 1.7. Jak PDF/A-3b, ale deklaruje, że tekst powinien mieć mapowania Unicode.
8 — PDF/A-2u (ISO 19005-2 Level U). PDF 1.7. Jak PDF/A-2b, ale deklaruje, że tekst powinien mieć mapowania Unicode; pliki osadzone pozostają zabronione.
9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Identyfikowany przez część i rok rewizji, a nie poziom zgodności; tekst wymaga mapowań Unicode, a tagowanie nie jest wymagane.
10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Jak PDF/A-4, a dodatkowo dopuszcza treści 3D i rich media w dokumentach technicznych.
11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Jak PDF/A-4, a dodatkowo dopuszcza plik osadzony w dowolnym formacie

Wartości zwracane

0Niepowodzenie — żaden dokument nie jest otwarty albo NewMode znajduje się poza zakresem 0–11
1Tryb PDF/A został pomyślnie aktywowany

Uwagi

Wybrany tryb steruje kontrolą zgodności podczas generowania. Po jego aktywowaniu biblioteka odrzuca lub przekształca późniejsze wywołania, które emitowałyby zawartość zabronioną przez daną część, zgodnie z ISO 19005:

Kolory CMYK / Separation / ShaderBlokowane w każdym trybie PDF/A (1–11) — dokument jest skonfigurowany z wyjściowym profilem sRGB, dlatego można używać wyłącznie kolorów zgodnych z klasą urządzenia tego profilu
SzyfrowanieBlokowane w każdym trybie PDF/A. Ustaw tryb przed wywołaniem dowolnego interfejsu API związanego z szyfrowaniem
Przezroczystość / tryby mieszania / grupy przezroczystości stronyBlokowane w trybach 1 i 2 (PDF/A-1 zabrania przezroczystości). Dozwolone w trybach 3–11 (PDF/A-2, -3 i -4 dopuszczają przezroczystość)
Akcje JavaScriptBlokowane w każdym trybie PDF/A — ISO 19005-1 §6.6.1 zabrania JavaScript, a zakaz zachowano w PDF/A-2/3
Pliki osadzone / załączniki plikówBlokowane w trybach 1–4 (PDF/A-1 ich zabrania; PDF/A-2 dopuszcza wyłącznie osadzone pliki PDF zgodne z PDF/A, czego biblioteka nie wymusza). Dozwolone w trybach 5, 6, 7, 9, 10 i 11. PDF/A-3 dopuszcza pliki osadzone dowolnego typu MIME poprzez powiązanie AFRelationship, a PDF/A-4 zachowuje tę możliwość; w zwykłym PDF/A-4 plik osadzony musi sam być zgodny z PDF/A, czego ograniczenie PDF/A-4f nie wymaga

Wymagana zawartość Tagged PDF (struktura nagłówków, tekst alternatywny ilustracji, atrybuty zakresu tabeli, wpisy RoleMap dla typów niestandardowych) pozostaje obowiązkiem kodu wywołującego dla poziomów a (tryby 1, 4 i 6). Użyj BeginTag, BeginArtifact, AddRoleMap oraz metod ustawiających elementy struktury, aby zbudować drzewo struktury. Przed zapisem wywołaj GetPDFUADiagnostics, aby ujawnić najczęstsze problemy Tagged PDF. Dla poziomu u (tryb 7) dopilnuj, aby zasoby czcionek dokumentu zapewniały mapowania tekstu Unicode dla całego renderowanego tekstu

Tryby PDF/A i PDF/UA można aktywować w tym samym dokumencie. Najpierw aktywuj SetPDFAMode (części 1a/2a/3a już wymagają Tagged PDF), a następnie wywołaj SetPDFUAMode, aby dodać ustawienia katalogu właściwe dla PDF/UA (DisplayDocTitle, pdfuaid:part, automatyczne /Tabs /S)

Przykład

// 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');

Zobacz również

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