Erstellen PDF/A-konformer Dokumente

Bei PDF/A handelt es sich um einen von der International Organization for Standardization (ISO) definierten Standard für die Langzeitarchivierung von PDF-Dokumenten. Ziel der Norm ist, dass ein PDF-Dokument auch Jahre nach der Erstellung noch lesbar ist. So darf ein PDF/A-konformes Dokument keine Referenzen zu externen Quellen, wie zum Beispiel Bildern, beinhalten und die verwendeten Fonts müssen in dem Dokument vollständig eingebettet sein.


Auf das Thema Verarbeiten von PDF-Dokumenten sind wir bereits in dem Artikel /Blog/2012/03/PDF-Verarbeitung-in-CONZEPT-16 eingegangen. Im heutigen Artikel möchten wir zeigen, wie mit CONZEPT 16 PDF-Dokumente für die Langzeitarchiverung erzeugt werden können.

Druckjob-Objekt

Soll ein Druckauftrag als PDF gespeichert werden, wird bei der Funktion PrtJobClose() die Konstante _PrtJobPdf angegeben. Pfad und Name der zu erzeugenden PDF-Datei wird über die Eigenschaft ppPdfFileName des Druckjob-Objekts vorgegeben. Um ein PDF/A-konformes Dokument zu erzeugen, muss zusätzlich die Eigenschaft ppPdfMode auf den Wert _PdfModePdfA gesetzt werden.

tJob # PrtJobOpen(mObject,'',_PrtJobOpenWrite |
                             _PrtJobOpenTemp,
                             _PrtTypePrintDocRecord);
if (tJob > 0)
{
   // Dateiname des PDF-Dokuments setzen
   tJob->ppPdfFileName    # _Sys->spPathMyDocuments
                            + '\MyDocument.pdf';
   // PDF/A-Dokument erzeugen
    tJob->ppPdfMode # _PdfModePdfA;
   // Druckjob schreiben
   tJob->PrtJobWrite(_PrtJobDoc);
   // Druckjob schließen
   tJob->PrtJobClose(_PrtJobPdf);
}
PDF-Objekt

Über das PDF-Objekt können neue Dokumente erstellt oder auch bestehende zur Verarbeitung geöffnet werden. Über Angabe der Option _PdfModePdfA beim Schließen des Objekts wird ein PDF/A- Dokument erstellt.

// Neues Dokument erstellen
tPdf # PdfNew();
// Seite öffnen
tPdf->PdfPageOpen(1);
// Font auswählen
tPdf->PdfTextFont('Arial',5.0);
// Text einfügen
tPdf->PdftextWrite(20.0,20.0,'PDF/A-konformes Dokument')
// Seite schließen
tPdf->PdfPageClose();
// PDF-Objekt schließen
tPdf->PdfClose(_Sys->spPathMyDocuments
               + '\MyDocument.pdf',_PdfModePdfA);
PDF-Drucker

Über den CONZEPT 16-PDF-Druckertreiber werden eingehende Druckaufträge an eine CONZEPT 16-Prozedur weitergeleitet und können dort mit Hilfe von Ghostscript in ein PDF-Dokument umgewandelt werden. Um ein PDF/A-Dokument erstellen zu können, müssen Ghostscript über die Eigenschaft ppGSOptions des Druckprozessor-Objekts
die notwendigen Optionen mitgeteilt werden.

// Optionen für Ghostscript
aPpcOpbject->ppGSOptions  # '-dPDFA;-dNOOUTERSAVE;-dUseCIEColor;' +
                            '-sProcessColorModel=DeviceCMYK';
//PDF-Dokument erstellen
aPpcOpbject->PpcMakePdf(_Sys->spPathMyDocuments +
                        '\MyDocument.pdf',_PpcPdfDefault);

Beim Erzeugen eines PDF/A-Dokuments findet grundsätzlich eine Validierung statt. Kann die Konformität nicht gewährleistet werden, da zum Beispiel die Lizenzierung einer verwendeten Schriftart das Einbetten nicht zulässt, geben die Funktionen PdfClose() und PrtJobClose() als Resultat _ErrPdfNotPdfA zurück.

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

2 Antworten

  1. @Th.Eichele
    Kann kein PDF/A-konformes Dokument erzeugt werden, wird auch keine PDF-Datei erstellt. Anders verhält sich das bei dem PDF-Drucker. Dieser erstellt in jedem Fall eine Datei.

    Jeder True-Type- und OpenType-Font verfügt über verschiedene Flags ( Embedding-Bits), welche bestimmen wie der Font eingebettet bzw. verwendet werden darf.

    Kann die PDF-Datei nicht erstellt werden, muss die Druck-Routine erneut durchgeführt werden.

  2. wird bei _ErrPdfNotPdfA trotzdem eine Pdf-Datei erstellt, oder muß man nochmals ohne OdfA drucken ?
    woran erkennt man solche Schriftarten ?
    Kann man dem Druckjob-Objekt bzw. Drucker z.B. sagen, das er in solchen Fällen alles als Bild speichern soll ?

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner