如何使用 pdfLaTeX 文档克服 Acrobat Reader 错误 131?

如何使用 pdfLaTeX 文档克服 Acrobat Reader 错误 131?

我正在使用 pdflatex 生成 PDF 文档(更准确地说,是从 TexMaker 3.4 调用的 latexmk。我的 LaTeX 安装是 TeXLive 20120719)。我可以在 Okular 和 Gmail 的附件预览中正常阅读该文档,但在 Windows 上运行 Acrobat Reader 的同事报告:"There was a problem reading this document (131)"

编辑:使用 时错误消失\usepackage[demo]{graphicx},它会用黑框代替真实图像。它们都是 PDF、PNG 和 JPG。demo我没有使用 ,而是添加了命令代码\demoincludegraphics,当使用它替换标题中的徽标时,该命令会使文件在 Reader 中工作,如下所示。但启用它(使用\includegraphics而不是\demoincludegraphics)并删除其他所有内容在 Reader 中也可以工作!有一些奇怪的全局交互,当启用所有图形时,文件在 Reader 中看起来是损坏的......

我的代码编译得很好,所以我只附加了序言和最小工作示例的简单文本:

\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[colorlinks=true,linkcolor=blue,citecolor=red]{hyperref}
\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@[email protected]{%
                \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
}

% Headers Config 
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\renewcommand{\headrulewidth}{0.4pt}
\setlength{\headheight}{2.2cm} 
\addtolength{\textheight}{-1.62cm}
\fancyhead[LO,RE]{\demoincludegraphics[height=1.6cm]{logo-slogan}}
\fancyhead[LE,RO]{}

% 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}

编辑:我找到了一个解决方法:通过Ghostscript处理生成的pdf文件,如下:

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

其中input.pdf,pdfLaTeX 生成的文件是output.pdfAdob​​e Reader 和其他 PDF 阅读器可以读取的文件。

答案1

我通过使用 pdflatex 生成 PDF 1.4 解决了类似的问题\pdfminorversion=4。我的 latex 文档中也只使用 png 和 1.4 pdf 图像。以前使用 evince 时也可以,但现在 acroread 也可以很好地读取文件,并且保持相同的质量水平。ghostscript 解决方法将我的图像重新采样为 jpeg,这降低了质量。

答案2

作为一种解决方法,您也可以使用 pdftk 解压缩/压缩方法:

pdftk original.pdf output uncompressed-original.pdf uncompress

pdftk uncompressed-original.pdf output original2.pdf compress

除了 Linux 软件包之外,pdftk还有Windows和OS X版本。

答案3

就我而言,是 png 文件导致了问题。将其转换为 pdf 解决了该问题。

convert faulty.png faulty.pdf

相关内容