Как пронумеровать в страницы в PDF-документе? Это можно сделать очень просто при помощи Linux, pdftk, LaTeX и скрипта, который приведён ниже.
Сначала нужно сгенерировать файл, который будет содержать пустые страницы формата А4, снизу которых по центру стоит номер. Для этого нам понадобится LaTeX и скрипт на Bash, который приведён ниже:
Скрипт нужно сохранить в файл blankpages и сделать его исполняемым. Параметры скрипта --- начальный и конечный номер страницы. Скрипт создаёт в текущем каталоге файл blankpages.pdf, который содержит пустые страницы формата A4 пронумерованные от начального номера до конечного.
Пример вызова скрипта:
В результате в текущем каталоге создаётся файл blankpages.pdf, содержащий пустые страницы, пронумерованные с 3-ей по 15-ую.
Как это работает. Скрипт созадёт в текущем каталоге подкаталог number.tmp. В этом каталоге созадётся файл blankpages.tex. При создании этого файла применяется хитрость. Дело в том, что LaTeX игнорирует пустые страницы и команда \newpage не действует. Чтобы LaTeX создал пустую страницу нужно на ней разместить пустой символ при помощи команды \mbox{} . Затем выполняется pdflatex и получается файл blankpages.pdf, который затем перемещается в текущий каталог командой mv и временный каталог удаляется командой rm.
Теперь, когда у нас есть файл с пустыми пронумерованными страницами, мы можем наложить его на PDF, страницы в котором нужно пронумеровать при помощи pdftk.
Например так:
Вот и всё. Теперь в файле article_numbered.pdf находится исходный файл с пронумерованными страницами.
Сначала нужно сгенерировать файл, который будет содержать пустые страницы формата А4, снизу которых по центру стоит номер. Для этого нам понадобится LaTeX и скрипт на Bash, который приведён ниже:
- #!/bin/bash
- # параметры скрипта $1 - стартовая страница
- # $2 - конечная страница
- startpage=$1
- endpage=$2
- mkdir number.tmp && cd number.tmp
- echo "\documentclass[a4paper,14pt]{extarticle}">>blankpages.tex
- echo "\usepackage[top=30mm,bottom=30mm,left=30mm,right=30mm]{geometry}" \
- >>blankpages.tex
- echo "\begin{document}">>blankpages.tex
- echo "\setcounter{page}{$1}">>blankpages.tex
- for i in `seq $startpage $endpage`; do
- echo "\mbox{}">>blankpages.tex
- echo "\newpage">>blankpages.tex
- done
- echo "\end{document}">>blankpages.tex
- pdflatex blankpages.tex>/dev/null
- mv blankpages.pdf ../blankpages.pdf
- cd ..
- rm -rf number.tmp
Скрипт нужно сохранить в файл blankpages и сделать его исполняемым. Параметры скрипта --- начальный и конечный номер страницы. Скрипт создаёт в текущем каталоге файл blankpages.pdf, который содержит пустые страницы формата A4 пронумерованные от начального номера до конечного.
Пример вызова скрипта:
blankpages 3 15
В результате в текущем каталоге создаётся файл blankpages.pdf, содержащий пустые страницы, пронумерованные с 3-ей по 15-ую.
Как это работает. Скрипт созадёт в текущем каталоге подкаталог number.tmp. В этом каталоге созадётся файл blankpages.tex. При создании этого файла применяется хитрость. Дело в том, что LaTeX игнорирует пустые страницы и команда \newpage не действует. Чтобы LaTeX создал пустую страницу нужно на ней разместить пустой символ при помощи команды \mbox{} . Затем выполняется pdflatex и получается файл blankpages.pdf, который затем перемещается в текущий каталог командой mv и временный каталог удаляется командой rm.
Теперь, когда у нас есть файл с пустыми пронумерованными страницами, мы можем наложить его на PDF, страницы в котором нужно пронумеровать при помощи pdftk.
Например так:
pdftk article.pdf multistamp blankpages.pdf output arcticle_numbered.pdf
Вот и всё. Теперь в файле article_numbered.pdf находится исходный файл с пронумерованными страницами.
Комментариев нет:
Отправить комментарий