[Tex/LaTex] Trouble creating a PDF/ A-1B or A-2B compliant document using pdflatex

fontspdf-apdftex

UPDATE this website worked. First, I added the pdfx (using a-2b option) and hyperref packages and compiled. Then I used the website to convert PDF->PDFA. Passed this validator


I am following this tutorial for convert my MSc thesis; he uses

\usepackage[a-2b]{pdfx}
\usepackage{hyperref}

My university suggests this approach, but the result is very blurry; in short they

-> Download Acrobat Pro
-> Open Thesis.pdf in latex (compiled without hyperref/pdfx packages}
-> Save as postscript
-> Use Adobe Distiller to go postscript to PDF/A
-> Use Acrobat Pro verification and fix to output final file (very blurry)

Using the first method, I run A-1B/A-2B verifcation after compiling using verapdf. The program stalls after 10 seconds. When I shorten my pdf and rerun, I get a lot of errors. Eg,

Rule    Status
Specification: ISO 19005-2:2011, Clause: 6.2.8, Test number: 3  
If an Image dictionary contains the Interpolate key, its value shall be false. For an inline image, the I key shall have a value of false.  Failed
9 occurrences   Hide
PDXImage    
Interpolate == false    
root/document[0]/pages[10](220 0 obj PDPage)/contentStream[0](221 0 obj PDContentStream)/operators[34]/xObject[0](217 0 obj PDXForm)/contentStream[0](217 0 obj PDContentStream)/operators[806]/xObject[0](235 0 obj PDXImage)/SMask[0](257 0 obj PDSMaskImage)
root/document[0]/pages[28](721 0 obj PDPage)/contentStream[0](722 0 obj PDContentStream)/operators[13]/xObject[0](707 0 obj PDXForm)/contentStream[0](707 0 obj PDContentStream)/operators[10]/xObject[0](727 0 obj PDXImage)
root/document[0]/pages[11](277 0 obj PDPage)/contentStream[0](278 0 obj PDContentStream)/operators[51]/xObject[0](270 0 obj PDXForm)/contentStream[0](270 0 obj PDContentStream)/operators[14]/xObject[0](285 0 obj PDXForm)/contentStream[0](285 0 obj PDContentStream)/operators[4]/xObject[0](291 0 obj PDXImage)/SMask[0](294 0 obj PDSMaskImage)
root/document[0]/pages[28](721 0 obj PDPage)/contentStream[0](722 0 obj PDContentStream)/operators[13]/xObject[0](707 0 obj PDXForm)/contentStream[0](707 0 obj PDContentStream)/operators[40]/xObject[0](730 0 obj PDXImage)
root/document[0]/pages[11](277 0 obj PDPage)/contentStream[0](278 0 obj PDContentStream)/operators[51]/xObject[0](270 0 obj PDXForm)/contentStream[0](270 0 obj PDContentStream)/operators[14]/xObject[0](285 0 obj PDXForm)/contentStream[0](285 0 obj PDContentStream)/operators[4]/xObject[0](291 0 obj PDXImage)
root/document[0]/pages[10](220 0 obj PDPage)/contentStream[0](221 0 obj PDContentStream)/operators[34]/xObject[0](217 0 obj PDXForm)/contentStream[0](217 0 obj PDContentStream)/operators[806]/xObject[0](235 0 obj PDXImage)
root/document[0]/pages[28](721 0 obj PDPage)/contentStream[0](722 0 obj PDContentStream)/operators[13]/xObject[0](707 0 obj PDXForm)/contentStream[0](707 0 obj PDContentStream)/operators[20]/xObject[0](728 0 obj PDXImage)
root/document[0]/pages[11](277 0 obj PDPage)/contentStream[0](278 0 obj PDContentStream)/operators[51]/xObject[0](270 0 obj PDXForm)/contentStream[0](270 0 obj PDContentStream)/operators[9]/xObject[0](284 0 obj PDXForm)/contentStream[0](284 0 obj PDContentStream)/operators[4]/xObject[0](290 0 obj PDXImage)
root/document[0]/pages[28](721 0 obj PDPage)/contentStream[0](722 0 obj PDContentStream)/operators[13]/xObject[0](707 0 obj PDXForm)/contentStream[0](707 0 obj PDContentStream)/operators[30]/xObject[0](729 0 obj PDXImage)


Specification: ISO 19005-2:2011, Clause: 6.2.11.5, Test number: 1   
For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and in the embedded font program shall be consistent.   Failed
2 occurrences   Hide
Glyph   
renderingMode == 3 || isWidthConsistent == null || isWidthConsistent == true    
root/document[0]/pages[36](837 0 obj PDPage)/contentStream[0](838 0 obj PDContentStream)/operators[185]/usedGlyphs[0](VLXJBU+PazoMathBlackboardBold 67 0 0)
root/document[0]/pages[36](837 0 obj PDPage)/contentStream[0](838 0 obj PDContentStream)/operators[202]/usedGlyphs[0](VLXJBU+PazoMathBlackboardBold 82 0 0)


Specification: ISO 19005-2:2011, Clause: 6.2.11.3, Test number: 2   
ISO 32000-1:2008, 9.7.4, Table 117 requires that all embedded Type 2 CIDFonts in the CIDFont dictionary shall contain a CIDToGIDMap entry that shall be a stream mapping from CIDs to glyph indices or the name Identity, as described in ISO 32000-1:2008, 9.7.4, Table 117.   Failed
2 occurrences   Hide
PDCIDFont   
Subtype != "CIDFontType2" || CIDToGIDMap != null    
root/document[0]/pages[36](837 0 obj PDPage)/contentStream[0](838 0 obj PDContentStream)/operators[231]/xObject[0](834 0 obj PDXForm)/contentStream[0](834 0 obj PDContentStream)/operators[406]/font[0](WQQTJP+LucidaSansUnicode)/DescendantFonts[0](WQQTJP+LucidaSansUnicode)
root/document[0]/pages[36](837 0 obj PDPage)/contentStream[0](838 0 obj PDContentStream)/operators[231]/xObject[0](834 0 obj PDXForm)/contentStream[0](834 0 obj PDContentStream)/operators[418]/font[0](XPXPKK+Verdana)/DescendantFonts[0](XPXPKK+Verdana)

Here is my Thesis.tex file.

\documentclass[titlepage, openany, 11pt]{report} % for longer reports containing several chapters. Draft copy, with detached titlepage, chapter start on any page
\usepackage{float} % to ensure tables and figures cannot be split across pages
\usepackage{afterpage}
\usepackage{mathpazo}
\usepackage{tabularx}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{color}
\usepackage{listings}
\usepackage{float}
\usepackage[toc, page]{appendix}
\graphicspath{{fig/}}
\usepackage[T1]{fontenc}    
\fontfamily{georgia}
\usepackage{mathtools}
\usepackage{bm}
\usepackage{subcaption} 
\usepackage{url}
\usepackage{pdflscape}
\usepackage[toc,page]{appendix}
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}
\newcommand{\hl}[1]{\textcolor{red}{#1}}
\emergencystretch 3em
\usepackage{cite}
\usepackage{amssymb}
\usepackage{framed}
\usepackage[a-2b]{pdfx}
\usepackage{hyperref}

\include{abbr}

\DeclarePairedDelimiter\abs{\lvert}{\rvert}%

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Python,
  aboveskip=3mm,
  belowskip=6mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle={\small\ttfamily},
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=4
}

%\pagestyle{plain} % page numbers at the bottom in the middle of the footer section
\includeonly{titlepage, abstract, preface, acknowledgements, blankpage, 1introduction, 2relatedwork, 3background, 4experimentalresultsandanalysis, 5simulationapproximationmethodology, 6conclusion, appendices, abbr}


%TEX WILL MAKE 'OVERFULL' LINES IF IT'S ALGORITHM CANNOT NICELY FORMAT A LINE. RESULTS IN BLACK BOX AT END OF LINE
\begin{document}
\onehalfspacing
\pagenumbering{roman}
    \include{titlepage}
\doublespacing
    \include{abstract}
\onehalfspacing
%   \include{preface}
    \include{acknowledgements}

    \tableofcontents
    \listoffigures
    \listoftables

    \printglossary[type=\acronymtype,title=Abbreviations, nonumberlist]
    \printglossary[title=Symbols, nonumberlist]

    \glsresetall %  reset glossary so abbreviations (ABBR) are re-defined in chapters 
    \include{1introduction}
    \include{2relatedwork}
    \include{3background}
    \include{4experimentalresultsandanalysis}
    \include{5simulationapproximationmethodology}
    \include{6conclusion}

    \bibliographystyle{IEEEtran} % sorting bibliography alphebetically
    \bibliography{masters, IEEEabrv}

%   \include{appendices}
\end{document}
  1. I tried using lualatex to see if pdflatex was suppressing an error… nope
  2. I tried google the errors, but none of the suggestions are remotely in my wheelhouse to implement on two days notice
If an Image dictionary contains the Interpolate key, its value shall be false. For an inline image, the I key shall have a value of false.
For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and in the embedded font program shall be consistent.

Does anyone see obvious issues in my Thesis.tex file? Or any suggestions at all are very appreciated. Also if there's a service/person I could pay to handle this I would be interested.

Best Answer

Using an online converter is not really a solution to the problem. The reasons are well explained in Peter Selingers website you linked in the question.

For those very same reasons the workflow proposed by your university is not up to date anymore.

As of 2020 you can create PDF/A-Nb documents directly out of pdfLaTeX or LuaLaTeX (N being 1, 2 or 3). See this PDF/A Minimal Working Example.

As Ulrike said, the documents you include are preferably PDF/A.

Related Question