メモ帳

備忘録

Ghostscriptを使ってPDFファイルのページ番号を振り方を変更し、目次を追加する

まず、ページ番号の振り方と目次の付け方を指定した以下のようなファイルpdfmarksを用意する。

[{Catalog}<<
/PageLabels<</Nums[0<</S/r>>30<</S/D>>]>>
>> /PUT pdfmark
[/Page 1 /Title (Title) /OUT pdfmark
[/Page 7 /Title (Contents) /OUT pdfmark
[/Page 17 /Title (Introduction) /OUT pdfmark
[/Page 21 /Title (Preface) /OUT pdfmark
[/Count 6 /Page 31 /Title (Chapter 1s) /OUT pdfmark
[/Page 31 /Title (1.1) /OUT pdfmark
[/Page 38 /Title (1.2) /OUT pdfmark
[/Page 45 /Title (1.3) /OUT pdfmark
[/Page 51 /Title (1.4) /OUT pdfmark
[/Page 59 /Title (1.5) /OUT pdfmark
[/Page 63 /Title (Exercises) /OUT pdfmark

最初の部分はページ番号の振り方を変更するための命令。 /Sの直後に/r/Dのような命令を書くことで、ページ番号の振り方を変更できる。 たとえば、/rとするとページに i, ii, iii, ... のようにローマ数字が振られる。 詳しくはPDF17: Specifying consistent page numbering for PDF documents | Techniques for WCAG 2.0を参照。

残りの部分は目次データとなっている。 /Count Nとすると、直後のN個の要素が子要素になる。

ファイルが用意できたら、Windowsであれば、以下のようなコマンドを実行する。

rungs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=output.pdf -dPDFSETTINGS=/prepress pdfmarks -f input.pdf