4

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.

2
  • 3
    Your example cannot be compiled because you include lot of files that are not part of your question. Could you please try to make the example smaller, while still showing the error? Especially try to remove packages that are not related to the error.
    – michal.h21
    Sep 26, 2019 at 8:24
  • 3
    It sounds as if your problems are related to images that you include. Use draft mode to suppress the images and run the validator again. Sep 26, 2019 at 9:48

2 Answers 2

5

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.

2

Having faced a similar issue, the solution in my case was to convert a specific PDF graphic with an embedded raster image (it was a ggplot2 heatmap) to a JPG or a PNG format. For those who stumbled upon this thread while googling, I'd suggest removing every image one by one, generating the PDF file without each image, and running the PDF/A validation for each of these to pinpoint which of the graphics was causing the issue.

1
  • Very good advice. LaTeX does not check images for PDF/X or PDF/A conformance (it can be done with lualatex, but only by custom Lua coding). Also, it may be that the pdfx package is out of sync with other developments in TeX, but I am not certain of this.
    – rallg
    Apr 22 at 18:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .