Как добавить номера страниц к Постскриптуму/PDF

Вы можете перебрать 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']
30
задан Cimbali 29 April 2015 в 11:53
поделиться

8 ответов

Это может быть решением:

  1. преобразовать postscript в pdf с помощью ps2pdf
  2. создать файл LaTeX и вставить страницы с помощью пакета pdfpages ( \ includepdf )
  3. используйте pagecommand = {\ thispagestyle {plain}} или что-нибудь из пакета fancyhdr в аргументах \ includepdf
  4. , если требуется вывод postscript, преобразовать вывод pdflatex обратно в postscript с помощью pdf2ps
13
ответ дан 27 November 2019 в 23:17
поделиться

Вы можете просто использовать

pspdftool

следующим образом:

pspdftool 'number(x=-1pt,y=-1pt,start=1,size=10)' input.pdf output.pdf

см. Эти два примера (ненумерованные и пронумерованные pdf с pspdftool)

ненумерованные pdf

http://ge.tt/7ctUFfj2

пронумерованы pdf

http: // ge. tt / 7ctUFfj2

с первым аргументом командной строки:

number(start=1, size=40, x=297.5 pt, y=10 pt)
15
ответ дан Dingo 27 November 2019 в 23:17
поделиться

В дополнение к решению 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 не работает, поэтому вы не можете получить нумерацию страниц снизу, используя этот метод.

5
ответ дан Bob 27 November 2019 в 23:17
поделиться

Я попробовал 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-файла, не теряя при этом страницы, доступные для поиска?

2
ответ дан Mark Hedges 27 November 2019 в 23:17
поделиться

Я предполагаю, что вы ищете решение на основе PS. В PS нет оператора уровня страницы, который позволил бы вам сделать это. Вам нужно добавить нижний колонтитул в разделе PageSetup для каждой страницы. Любой язык сценариев должен помочь вам в этом.

1
ответ дан dirkgently 27 November 2019 в 23:17
поделиться

На основе решения, предложенного 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}
24
ответ дан 27 November 2019 в 23:17
поделиться

Может быть, для этого можно использовать pstops (часть psutils )?

0
ответ дан 27 November 2019 в 23:17
поделиться

О, я давно не использовал PostScript, но беглый взгляд на синюю книгу скажет вам :) www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF

С другой стороны, Adobe Acrobat и немного javascript тоже могли бы творить чудеса;)

В качестве альтернативы я нашел это: http://www.ghostscript.com/pipermail/gs-devel/2005 -May / 006956.html , что, кажется, отвечает всем требованиям (я не пробовал)

2
ответ дан 27 November 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: