Wir erstellen ZUGFeRD-Rechnungen mit der PDF24-Toolbox (11.28.2) mittels "createInvoice". Seit Kurzem erhalten wir von verschiedenen Validierern die Meldung, dass das ZUGFeRD-PDF nicht valide ist:
"Der DeviceRGB-Farbraum wird ohne RGB-OutputIntent-Profil verwendet. DeviceRGB darf nur verwendet werden, wenn bei Verwendung des DeviceRGB-Farbraums ein geräteunabhängiger DefaultRGB-Farbraum festgelegt wurde oder wenn die Datei einen PDF/A OutputIntent hat, der ein RGB-Zielprofil enthält."
Zum Drucken erzeugen wir ein Profil mit folgenden Einstellungen:
[HKEY_CURRENT_USER\SOFTWARE\PDF24\Profiles\fo\A3]
"bmp-colorModel"="c24"
"bmp-resolution"="150"
"eps-languageLevel"="2"
"firstPage"=""
"jpg-colorModel"="c24"
"jpg-quality"="95"
"jpg-resolution"="150"
"lastPage"=""
"outputIntent"="pdf"
"pageSelectionMode"="all"
"pcl-colorModel"="c24"
"pcl-resolution"="300"
"pcx-colorModel"="c24"
"pcx-resolution"="150"
"pdf-allowComments"="true"
"pdf-allowCopyTextAndImg"="true"
"pdf-allowEdit"="true"
"pdf-allowFillForms"="true"
"pdf-allowPrint"="true"
"pdf-allowRestructures"="true"
"pdf-certCustomReason"=""
"pdf-certIssuer"=""
"pdf-certLocation"=""
"pdf-certReason"="Ich bin der Verfasser des Dokuments"
"pdf-certSerialNumber"=""
"pdf-colorConversion"="RGB"
"pdf-colorImageCompression"="auto"
"pdf-colorImageResolution"="300"
"pdf-colorModel"="RGB"
"pdf-cropApplyCropBox"="true"
"pdf-cropApplyTrimBox"="false"
"pdf-cropBottom"="0"
"pdf-cropLeft"="0"
"pdf-cropRight"="0"
"pdf-cropTop"="0"
"pdf-dpi"="300"
"pdf-embedFonts"="true"
"pdf-encryptionDepth"="256"
"pdf-encryptPasswords"="true"
"pdf-fileToAppend"=""
"pdf-fileToPrepend"=""
"pdf-grayImageCompression"="auto"
"pdf-grayImageResolution"="300"
"pdf-info-author"=""
"pdf-info-keywords"=""
"pdf-info-subject"=""
"pdf-info-title"=""
"pdf-jpegQuality"="good"
"pdf-monoImageCompression"="auto"
"pdf-monoImageResolution"="300"
"pdf-needUserPass"="false"
"pdf-overlayFile"=""
"pdf-ownerPass"=""
"pdf-pageNumAngle"="0"
"pdf-pageNumColorA"="255"
"pdf-pageNumColorB"="0"
"pdf-pageNumColorG"="0"
"pdf-pageNumColorR"="0"
"pdf-pageNumFont"="Calibri"
"pdf-pageNumFontSize"="10"
"pdf-pageNumMarginX"="0"
"pdf-pageNumMarginY"="3"
"pdf-pageNumPattern"="{NUM} / {COUNT}"
"pdf-pageNumPos"="7"
"pdf-pageNumShift"="0"
"pdf-pageNumStartOffset"="0"
"pdf-pageRotation"="PageByPage"
"pdf-paperFile"=""
"pdf-preserveAnnots"="true"
"pdf-quality"="good"
"pdf-repeatLastOverlayPage"="true"
"pdf-repeatLastPaperPage"="true"
"pdf-rotateOverlay"="auto"
"pdf-rotatePaper"="auto"
"pdf-standard"="a-3"
"pdf-subsetFonts"="true"
"pdf-useAes"="true"
"pdf-useCrop"="false"
"pdf-useInfo"="false"
"pdf-useOverlay"="false"
"pdf-usePageNum"="false"
"pdf-usePaper"="false"
"pdf-useResolution"="true"
"pdf-userPass"=""
"pdf-userPassPrompt"="false"
"pdf-useSecurity"="false"
"pdf-useSignature"="false"
"pdf-useWatermark"="false"
"pdf-watermarkAngle"="315"
"pdf-watermarkColorA"="128"
"pdf-watermarkColorB"="255"
"pdf-watermarkColorG"="204"
"pdf-watermarkColorR"="153"
"pdf-watermarkFont"="Calibri-Bold"
"pdf-watermarkFontSize"="100"
"pdf-watermarkMarginX"="0"
"pdf-watermarkMarginY"="0"
"pdf-watermarkPos"="4"
"pdf-watermarkText"=""
"pdf-watermarkZPos"="1"
"pdf-web"="false"
"pdfa-customDestOutputProfile"=""
"pdfa-customInfo"=""
"pdfa-customOutputCondition"=""
"pdfa-customOutputConditionIdentifier"="Custom"
"pdfa-customRegistryName"="http://www.color.org"
"pdfa-profile"="sRGB_IEC61966-2.1.icc"
"pdfa-title"="Titel"
"pdfx-customDestOutputProfile"=""
"pdfx-customInfo"=""
"pdfx-customOutputCondition"=""
"pdfx-customOutputConditionIdentifier"="http://www.color.org"
"pdfx-customRegistryName"="http://www.color.org"
"pdfx-profile"="FOGRA32"
"pdfx-title"=""
"png-colorModel"="c24"
"png-resolution"="150"
"ps-languageLevel"="2"
"psd-colorModel"="c24"
"psd-resolution"="150"
"tiff-colorModel"="c24"
"tiff-multipage"="true"
"tiff-resolution"="150"
"txt-encoding"="utf8"
Mit welchen Einstellungen können wir dieses Problem vermeiden?
Gibt es zu der Problematik schon weitere Erkenntnisse? Wir haben mittlerweile weitere Validierungsfehler bei ZUGFeRD-Rechnungen, die sich alle auf die fehlende PDF/A3-Konformität beziehen:
- The Font dictionary of all fonts shall define the map of all used character codes to Unicode values, either via a ToUnicode entry, or other mechanisms as defined in ISO 19005-2, 6.2.11.7.2. Level: Glyph
- All Separation arrays within a single PDF/A-2 file (including those in Colorants dictionaries) that have the same name
shall have the same tintTransform and alternateSpace. In evaluating equivalence, the PDF objects shall be compared,
rather than the computational result of the use of those PDF objects. Compression and whether or not an object is
direct or indirect shall be ignored.
Level: PDSeparation
Vielen Dank für die Antwort!
Die Fehlermeldung zum "PDDeviceRGB" ist mit der Verwendung von [-pdfFile PDF_FILE] wird vom Validator jetzt nicht mehr ausgegeben. Jedoch bleiben die Validierungsfehler zur PDF/A Kompatibilität zu "Glyph" (Die Glyphe kann nicht auf Unicode abgebildet werden. Das Font-Wörterbuch aller Fonts muss die Zuordnung aller verwendeten Zeichencodes zu Unicode-Werten definieren, entweder über einen ToUnicode-Eintrag oder andere Mechanismen, wie in ISO 19005-3, 6.2.11.7.2 definiert.) und "PDSeparation" (Mehrere Vorkommen eines Separation-Farbraums mit demselben Namen sind nicht konsistent. Alle Separation-Arrays innerhalb einer einzelnen PDF/A-3-Datei (einschließlich derjenigen in Colorants-Dictionaries), die denselben Namen tragen, müssen dieselbe tintTransform und alternateSpace haben. Bei der Bewertung der Äquivalenz werden die PDF-Objekte verglichen und nicht das rechnerische Ergebnis der Verwendung dieser PDF-Objekte. Die Komprimierung und die Frage, ob ein Objekt direkt oder indirekt ist, werden ignoriert.)
Zur Nachvollziehbarkeit sende ich noch einmal die Ausgangsdaten an forum@pdf24.org.
Vielen Dank für Ihre Unterstützung!
Die Glyphe kann nicht auf Unicode abgebildet werden. Das Font-Wörterbuch aller...
Das muss bei der PDF Erstellung selber sichergestellt werden und das kann auch durch die Umwandlung PDF/A in der Regel nicht hinzugefügt werden. Prüfen Sie bitte den PDF Erstellungsprozess, dort muss dies sichergestellt werden.
pdf24-Toolbox.exe -createInvoice INPUT_FILE OUTPUT_FILE [-outputType OUTPUT_TYPE] [-pdfFile PDF_FILE] [-pdfaFile PDFA_FILE] [-passthrough] [-langCode xx] [-langFile LANG_FILE] [-regenerateXml]
In der Regel genügt es, wenn man [-pdfFile PDF_FILE] verwendet. Dann wird intern aus dem PDF ein PDF/A Dokument gemacht.
Verwendet man [-pdfaFile PDFA_FILE], dann muss man sicherstellen, dass ein valides PDF/A angegeben wird. Erstellt man ein PDF/A über ein Ausgabeprofil, dann muss dieses korrekt konfiguriert sein. Die ICC Datei z.b. muss auch vorhanden sein, damit diese eingebunden werden kann.