我在脚本中使用gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dFirstPage=$2 -dLastPage=$3 -sOUTPUTFILE=$4 $1
从使用Ghostscript 9.07的pdf文件中提取页面。我获得了很多警告(如下面输出的第一行)和一个错误:
GPL Ghostscript 9.07: **** Warning: Outline has invalid link that was discarded.
GPL Ghostscript 9.07: ERROR: A pdfmark destination page 4 points beyond the last page 3.
然而,生成的pdf(由提取的页面组成)很好。我想知道为什么我为-q
选择quiet
选项时会收到此错误和警告。我做了一些搜索,发现,例如,this,但pdf文件已经生成hypertexnames=false
,所以建议的解决方案在我的情况下不起作用(Ubuntu 13.04)。
添加:.pdf文件是通过pdflatex从
生成的\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{tikz}
\usepackage{hyperref}
\begin{document}
\tikz[remember picture, overlay]\node at (current page.south)[rectangle, fill, color=gray]{};
\clearpage
\section{foo}
\clearpage
\tableofcontents
\clearpage
\section{bar}
foo bar
\end{document}
答案 0 :(得分:2)
原始文件包含指定目标(在本例中为“大纲”树),它指向最终输出文件中不存在的编号页面(因为您未选择包含所有页面)。
因此省略了目的地,这就是您的输出文件有效的原因,并且会生成警告,告诉您某些请求的目的地不会出现。
对于这些警告,pdfwrite设备几乎忽略了-q,因为我们认为它们很重要。