1

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(由提取的页面组成)很好。我想知道为什么我会收到此错误和警告,尽管我选择-qquiet. 我对此进行了一些搜索,发现例如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}
4

1 回答 1

3

原始文件包含命名的目标(在本例中为大纲树),这些目标指向最终输出文件中不会出现的编号页面(因为您没有选择包含所有页面)。

因此,目的地被省略了,这就是您的输出文件有效的原因,并且会生成一个警告,告诉您某些请求的目的地将不存在。

对于这些类型的警告,pdfwrite 设备几乎忽略了 -q,因为我们认为它们很重要。

于 2013-04-27T16:49:41.740 回答