Как пронумеровать в страницы в 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 находится исходный файл с пронумерованными страницами.
Комментариев нет:
Отправить комментарий