From 46f4238a2a40b5542612bc745e63ce503ce12a32 Mon Sep 17 00:00:00 2001 From: Henri Menke <henri@icp.uni-stuttgart.de> Date: Sun, 18 Mar 2018 17:05:55 +1300 Subject: [PATCH] ConTeXt template: pdfa variable to generate PDF/A (#4294) The resulting PDF can be verified using the Apache PDFBox preflight app. ``` $ java -jar preflight-app-2.0.8.jar test.pdf The file test.pdf is a valid PDF/A-1b file ``` Instructions on how to install the ICC profiles on ConTeXt standalone can be found in the wiki: <http://wiki.contextgarden.net/PDFX#ICC_profiles>. If the ICC profiles are not available the log will contain messages like these ``` backend > profiles > profile specification 'sRGB.icc' loaded from '/usr/local/texlive/2017/texmf-dist/tex/context/colors/icc/context/colorprofiles.xml' backend > profiles > error, couldn't locate profile 'srgb.icc' backend > profiles > no default profile 'srgb.icc' for colorspace 'rgb' backend > profiles > profile specification 'sRGB IEC61966-2.1' loaded from '/usr/local/texlive/2017/texmf-dist/tex/context/colors/icc/context/colorprofiles.xml' backend > profiles > error, couldn't locate profile 'srgb.icc' backend > profiles > invalid output intent 'sRGB IEC61966-2.1' ``` and the resulting PDF will not be valid PDF/A: ``` $ java -jar preflight-app-2.0.8.jar test.pdf The file test.pdf is not a valid PDF/A-1b file, error(s) : 2.4.3 : Invalid Color space, The operator "g" can't be used without Color Profile on page 1 2.4.3 : Invalid Color space, The operator "G" can't be used without Color Profile on page 1 2.4.3 : Invalid Color space, /DeviceGray default for operator "TJ" can't be used without Color Profile on page 1 2.4.3 : Invalid Color space, /DeviceGray default for operator "TJ" can't be used without Color Profile on page 1 2.4.3 : Invalid Color space, The operator "g" can't be used without Color Profile on page 1 2.4.3 : Invalid Color space, The operator "G" can't be used without Color Profile on page 1 2.4.3 : Invalid Color space, /DeviceGray default for operator "TJ" can't be used without Color Profile on page 1 ``` However, the PDF will still be generated and the "errors" shown in the log do not break anything. --- MANUAL.txt | 10 ++++++++++ data/templates/default.context | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/MANUAL.txt b/MANUAL.txt index 8960d9bc3..cdfdcda2c 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -1624,12 +1624,22 @@ Variables for ConTeXt `lof`, `lot` : include list of figures, list of tables +`pdfa` +: adds to the preamble the setup necessary to generate PDF/A-1b:2005. + To successfully generate PDF/A the required ICC color profiles have to + be available and the content and all included files (such as images) + have to be standard conforming. The ICC profiles can be obtained + from [ConTeXt ICC Profiles]. See also [ConTeXt PDFA] for more + details. + [ConTeXt Paper Setup]: http://wiki.contextgarden.net/PaperSetup [ConTeXt Layout]: http://wiki.contextgarden.net/Layout [ConTeXt Font Switching]: http://wiki.contextgarden.net/Font_Switching [ConTeXt Color]: http://wiki.contextgarden.net/Color [ConTeXt Headers and Footers]: http://wiki.contextgarden.net/Headers_and_Footers [ConTeXt Indentation]: http://wiki.contextgarden.net/Indentation +[ConTeXt ICC Profiles]: http://wiki.contextgarden.net/PDFX#ICC_profiles +[ConTeXt PDFA]: http://wiki.contextgarden.net/PDF/A [`setupwhitespace`]: http://wiki.contextgarden.net/Command/setupwhitespace [`setupinterlinespace`]: http://wiki.contextgarden.net/Command/setupinterlinespace [`setuppagenumbering`]: http://wiki.contextgarden.net/Command/setuppagenumbering diff --git a/data/templates/default.context b/data/templates/default.context index 56f4e9cf7..039b6cdaf 100644 --- a/data/templates/default.context +++ b/data/templates/default.context @@ -38,6 +38,13 @@ $endif$ $if(pagenumbering)$ \setuppagenumbering[$for(pagenumbering)$$pagenumbering$$sep$,$endfor$] $endif$ +$if(pdfa)$ +% attempt to generate PDF/A +\setupbackend + [format=PDF/A-1b:2005, + intent=sRGB IEC61966-2.1, + profile=sRGB.icc] +$endif$ % use microtypography \definefontfeature[default][default][script=latn, protrusion=quality, expansion=quality, itlc=yes, textitalics=yes, onum=yes, pnum=yes]