# How to overcome Acrobat Reader error 131 with a pdfLaTeX doc?

I'm generating a PDF document with pdflatex (more precisely, latexmk invoked from TexMaker 3.4. My LaTeX install is TeXLive 20120719). I can read the document fine in Okular and Gmail's attachment preview, but a colleague that runs Acrobat Reader on Windows reports: "There was a problem reading this document (131)".

EDIT: The error disappears when using \usepackage[demo]{graphicx}, which puts black boxes instead of the real images. They are all PDFs, PNGs and JPGs. Instead of using demo, I added the code for a \demoincludegraphics command, which makes the file work in Reader when using it to replace the logo in the headers, as shown below. But enabling it (using \includegraphics instead of \demoincludegraphics) and removing everything else also works in Reader! There is some strange global interaction that makes the file appear broken to Reader when enabling all the graphics...

My code compiles fine, reason why I only attach the preamble and a simple text for a Minimal Working Example:

\documentclass[12pt,lettersize,twoside]{article}

\usepackage[utf8]{inputenc}
\usepackage[spanish,es-tabla]{babel}
\usepackage[fixlanguage]{babelbib}
\usepackage{amssymb,amsmath}
\usepackage{graphicx}
\usepackage{array}
\usepackage{caption}
\usepackage{subfig}
\usepackage{rotating}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{calc}
\usepackage{stfloats}
\usepackage{fixltx2e}
\usepackage{url}
\usepackage[all]{hypcap}

% Margins
\usepackage[top=2cm, bottom=2cm, left=3cm, right=2cm]{geometry}

% Make header show up in the first page
\makeatletter
\renewcommand\maketitle{\par
\begingroup
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
\long\def\@makefntext##1{\parindent 1em\noindent
\hb@xt@1.8em{%
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@   % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{fancy}\@thanks % was {empty}
\endgroup
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
}
\makeatother

% Remove date field in title; Remove preceding vertical space
\makeatletter
\renewcommand{\@maketitle}{
\vspace{-3cm}
\begin{center}%
{\LARGE \@title}\\
\vspace{2mm}%
{\@author}
\end{center}%
\par} \makeatother
\makeatletter

% Demo includegraphic boxes
\newcommand{\demoincludegraphics}[2][]{%
\setlength{\fboxsep}{-\fboxrule}% Remove frame separator/gap
\framebox{\rule{0pt}{100pt}\rule{150pt}{0pt}}% Framed box of 150pt x 100pt
}

\usepackage{fancyhdr}
\pagestyle{fancy}

% Footers Config
\fancyfoot{}
\renewcommand{\footrulewidth}{0pt}
\fancyfoot[C]{\thepage}

% Notas al pie etiquetadas por simbolos
\renewcommand{\thefootnote}{\fnsymbol{footnote}}

\title{Doc Title}
\author{My name}

\begin{document}

\maketitle

This is a test. It includes graphics and other floats.

\end{document}


EDIT: I found a workaround: Processing the generated pdf file through Ghostscript, as follows:

 gs -dSAFER -dBATCH -dNOPAUSE  -sDEVICE=pdfwrite -sOutputFile=output.pdf input.pdf


where input.pdf is the file generated by pdfLaTeX, and output.pdf the one that will be readable by Adobe Reader and the rest of the PDF readers.

• No problem here with Adobe Reader 10.1.3 (in Windows 7). A search with your favorite searching machine should give you among others this match: helpx.adobe.com/x-productkb/multi/… Jul 23, 2012 at 22:05
• Yes I saw that page before, not particularly illuminating, as it points to some "LiveCycle" software that I'm obviously not using. It tells about some "usage rights", and having looked for how to set that with LaTeX commands, I came out empty... Jul 24, 2012 at 12:33
• I can not recommend your workaround. The pdf is most likely fine; fix your problems with Adobe Reader. Also please add a minimal working example (MWE) that illustrates your problem. Jul 24, 2012 at 15:49
• I don't really know how to go about the MWE, as I would need to attach the images that go along the document. I understand your reasons, and that's precisely why I put the workaround as an edit. However, not being a LaTeX guru, I don't have much more control over the pdf generation process. The workaround also shrunk the file size, from 5.2 Mb to 1.4 Mb with no quality loss whatsoever, so it is a plus... Jul 24, 2012 at 16:13
• I have asked a similar question, and I recommend the given answer, works great (although it's not a problem solution, it's just a workaround, like Martin Schröder pointed out). Take a look at tex.stackexchange.com/questions/78248/… Oct 20, 2012 at 8:16

I solved a similar problem by generating a PDF 1.4 only with pdflatex using \pdfminorversion=4. I'm also only using png's and 1.4 pdf images in my latex document. It worked before with evince but now acroread also reads the file just fine and I preserve the same quality level. The ghostscript workaround resampled my images to jpeg which derogated the quality.

• Thanks for the answer. I had to place \pdfminorversion=4 before \documentclass{beamer}. Dec 1, 2012 at 3:25
• If you don't want to decrease the pdf version setting \pdfobjcompresslevel=0 or \pdfobjcompresslevel=1 also solves the problem Jun 3, 2013 at 12:47
• FYI, it turns out this is related to the problem "Warning: File(s) failed to convert" when submitting a paper to an IEEE journal over the ScholarOne Manuscript Central. Accidentally and luckily, I found out this also causes the error 131 in Acrobat Reader. The above \pdfminorversion=4 fixes it. Aug 1, 2013 at 10:46
• This answer should be the accepted one, it worked for me too May 13, 2014 at 18:31
• Awesome, adobe was giving me a different error about a damaged file. Setting pdfobjcompresslevel fixed the problem. Jun 10, 2014 at 13:10

As a workaround, you may also use pdftk uncompress/compress method:

pdftk original.pdf output uncompressed-original.pdf uncompress


and

pdftk uncompressed-original.pdf output original2.pdf compress


In addition to Linux packages, pdftk also has Windows and OS X builds.

• This did the trick for me. My pdflatex generated file also crashed with Acrobat on Windows, still no clue why though. Feb 2, 2015 at 19:31
• The file size goes up *10, but it's an easy fix. Jan 26, 2017 at 15:37
• This is also good as a troubleshooting method -- when applied to my problematic pdf (which opens in everything else) an embedded .png was scrambled. Mar 31, 2017 at 13:05

In my case it was a png file causing the problem. Converting it to pdf resolved the issue.

convert faulty.png faulty.pdf

• How did you find out which png file was the cause? Apr 21, 2015 at 10:25
• It was the only file not being generated by pdflatex. Unfortunately I cannot provide a methodology or what was the problem in the png file. Apr 22, 2015 at 11:37
• In my case it was also a faulty file, however, for me it was a PDF file that was the cause. The PDF in question was a plot from matplotlib that had been cropped using the boundingbox option in pyplot.savefig May 15, 2015 at 23:42
• @regdoug, do you have a solution to this problem with matplotlib? I have the same issue when using boundingbox with pyplot.savefig. Did you just output png instead of pdf and lose the vector graphic? Or did you do something else? May 27, 2015 at 2:48
• I output eps instead of pdf. That way it is still vector graphics May 28, 2015 at 4:55