Вы можете перебрать a
, сохранить слово, если оно не начинается с '#'
, или заменить '#'
сохраненным словом, если оно произойдет: :
['when', 'when i am here', 'when go and get it', 'when life is hell', 'who', 'who i am here', 'who go and get it']
Это может быть решением:
ps2pdf
\ includepdf
) pagecommand = {\ thispagestyle {plain}}
или что-нибудь из пакета fancyhdr в аргументах \ includepdf
pdf2ps
Вы можете просто использовать
pspdftool
следующим образом:
pspdftool 'number(x=-1pt,y=-1pt,start=1,size=10)' input.pdf output.pdf
см. Эти два примера (ненумерованные и пронумерованные pdf с pspdftool)
ненумерованные pdf
пронумерованы pdf
с первым аргументом командной строки:
number(start=1, size=40, x=297.5 pt, y=10 pt)
В дополнение к решению captaincomic, я расширил его, чтобы поддержать начало нумерации страниц на любой странице.
Требуется enscript, pdftk 1.43 или выше и pdfjam (для утилиты pdfjoin)
#!/bin/bash
input="$1"
count=$2
blank=$((count - 1))
output="${1%.pdf}-header.pdf"
pagenum=$(pdftk "$input" dump_data | grep "NumberOfPages" | cut -d":" -f2)
(for i in $(seq "$blank"); do echo; done) | enscript -L1 -B --output - | ps2pdf - > /tmp/pa$.pdf
(for i in $(seq "$pagenum"); do echo; done) | enscript -a ${count}- -L1 -F Helvetica@10 --header='||Page $% of $=' --output - | ps2pdf - > /tmp/pb$.pdf
pdfjoin --paper letter --outfile /tmp/join$.pdf /tmp/pa$.pdf /tmp/pb$.pdf &>/dev/null
cat /tmp/join$.pdf | pdftk "$input" multistamp - output "$output"
rm /tmp/pa$.pdf
rm /tmp/pb$.pdf
rm /tmp/join$.pdf
Например .. поместите это в /usr/local/bin/pagestamp.sh и выполните как:
pagestamp.sh doc.pdf 3
Это запустит номер страницы на странице 3 ... полезно, когда у вас есть титульные листы, титульные страницы, оглавление и т. Д.
Прискорбно, что опция --footer в enscript не работает, поэтому вы не можете получить нумерацию страниц снизу, используя этот метод.
Я попробовал pspdftool ( http://sourceforge.net/projects/pspdftool ).
В конце концов я заставил его работать, но сначала я получил эту ошибку:
pspdftool: xreftable read error
Исходный файл был создан с помощью pdfjoin из pdfjam и содержал кучу сканов из моей Epson Workforce, а также сгенерированный тег страниц. Я не мог найти способ исправить таблицу внешних ссылок, поэтому я преобразовал в ps с pdf2ps и обратно в pdf с pdf2ps. Тогда я мог бы использовать это, чтобы получить хорошие номера страниц в правом нижнем углу:
pspdftool 'number(start=1, size=20, x=550 pt, y=10 pt)' input.pdf output.pdf
К сожалению, это означает, что любые страницы с возможностью поиска по тексту больше не доступны для поиска, потому что текст был растеризован при преобразовании ps. К счастью, в моем случае это не имеет значения.
Есть ли способ исправить или очистить таблицу внешних ссылок pdf-файла, не теряя при этом страницы, доступные для поиска?
Я предполагаю, что вы ищете решение на основе PS. В PS нет оператора уровня страницы, который позволил бы вам сделать это. Вам нужно добавить нижний колонтитул в разделе PageSetup
для каждой страницы. Любой язык сценариев должен помочь вам в этом.
На основе решения, предложенного rcs, я сделал следующее:
Преобразовал документ в пример .pdf
и запустил pdflatex addpages
, где addpages.tex
читает:
\documentclass[8pt]{article}
\usepackage[final]{pdfpages}
\usepackage{fancyhdr}
\topmargin 70pt
\oddsidemargin 70pt
\pagestyle{fancy}
\rfoot{\Large\thepage}
\cfoot{}
\renewcommand {\headrulewidth}{0pt}
\renewcommand {\footrulewidth}{0pt}
\begin{document}
\includepdfset{pagecommand=\thispagestyle{fancy}}
\includepdf[fitpaper=true,scale=0.98,pages=-]{example.pdf}
% fitpaper & scale aren't always necessary - depends on the paper being submitted.
\end{document}
или, альтернативно, для двусторонних страниц (т. е. с постоянным номером страницы снаружи) :
\documentclass[8pt]{book}
\usepackage[final]{pdfpages}
\usepackage{fancyhdr}
\topmargin 70pt
\oddsidemargin 150pt
\evensidemargin -40pt
\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\fancyfoot[LE,RO]{\Large\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\begin{document}
\includepdfset{pages=-,pagecommand=\thispagestyle{fancy}}
\includepdf{target.pdf}
\end{document}
Простой способ изменить поля заголовка:
% set margins for headers, won't shrink included pdfs
% you can remove the topmargin/oddsidemargin/evensidemargin lines
\usepackage[margin=1in,includehead,includefoot]{geometry}
Может быть, для этого можно использовать pstops (часть psutils )?
О, я давно не использовал PostScript, но беглый взгляд на синюю книгу скажет вам :) www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF
С другой стороны, Adobe Acrobat и немного javascript тоже могли бы творить чудеса;)
В качестве альтернативы я нашел это: http://www.ghostscript.com/pipermail/gs-devel/2005 -May / 006956.html , что, кажется, отвечает всем требованиям (я не пробовал)