1

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dFirstPage=$2 -dLastPage=$3 -sOUTPUTFILE=$4 $1Ghostscript 9.07を使用して、スクリプトで PDF ファイルからページを抽出します。多くの警告 (次の出力の最初の行のように) と 1 つのエラーが表示されます。

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

1 に答える 1

3

元のファイルには名前付きの宛先 (この場合はアウトライン ツリー) が含まれており、最終的な出力ファイルには存在しない番号付きのページを指しています (すべてのページを含めるように選択していないため)。

したがって、宛先は省略されます。これが出力ファイルが機能する理由であり、要求された宛先の一部が存在しないことを示す警告が生成されます。

pdfwrite デバイスは、これらの種類の警告が重要であると考えているため、これらの種類の警告に対して -q をほとんど無視します。

于 2013-04-27T16:49:41.740 に答える