如果您在Postscript中有一個大文檔(500頁+)並且想要添加頁碼,是否有人知道如何操作?如何將頁碼添加到Postscript/PDF
回答
這可能是一個解決方案:
-
使用
- 創建一個LaTeX文件,然後使用pdfpages包(
\includepdf
) - 使用
pagecommand={\thispagestyle{plain}}
或東西從fancyhdr包,如果的\includepdf
- 參數插入網頁
- 轉換後記爲pdf需要postscript輸出,通過
pdf2ps
ps2pdf
我認爲這是一個好主意,但是我沒有得到它的工作。頁碼不會在\ includepdf頁面上插入*。 –
您是否使用過類似'\ includepdf [pages = - ,pagecommand = {\ thispagestyle {plain}}] {document.pdf}'? – rcs
這實際上是Alan Munn在[他的解決方案](https://tex.stackexchange.com/a/18762/3406)中所做的,減去PS的東西。 –
哦,這是因爲我使用後記很長一段時間,但快速下跌到藍皮書會告訴你:) www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF
另另一方面,Adobe Acrobat和一個JavaScript代碼也將做奇事。)
另外,我發現這一點:http://www.ghostscript.com/pipermail/gs-devel/2005-May/006956.html,這似乎符合這個要求(我沒有嘗試)
將pdflatex輸出轉換回postscript我假設你是尋找基於PS的解決方案。 PS中沒有頁面級別的操作符可以讓您執行此操作。您需要在每個頁面的PageSetup
部分中添加一個頁腳類的東西。任何腳本語言都應該能夠幫助你。
我在其他用戶的http://www.osti.gov/bridge/product.biblio.jsp?query_id=0&page=0&osti_id=666084 –
基於RCS提出的解決方案,我做了以下內容:
轉換的文檔example.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}
我曾經使用乳膠像在接受的答案中添加頁碼到我的pdf。
現在,我發現了一個更簡單的方法:使用 enscript
創建包含頁碼頭空頁,然後用pdftk
與multistamp
選項把標題上您的文件。
這個bash腳本預計將PDF文件作爲它的唯一參數:
#!/bin/bash
input="$1"
output="${1%.pdf}-header.pdf"
pagenum=$(pdftk "$input" dump_data | grep "NumberOfPages" | cut -d":" -f2)
enscript -L1 --header='||Page $% of $=' --output - < <(for i in $(seq "$pagenum"); do echo; done) | ps2pdf - | pdftk "$input" multistamp - output $output
警告中看到了使用Perl的解決方案:僅在build 1.43 pdftk具有* multistamp *功能之後 - 關於代碼,我可以建議輸出=「$ {1%03d.pdf} -header.pdf」以實現零均衡 – Dingo
Multistamp非常棒。然而,Enscript對於這個用例並不是非常靈活 - 我試圖讓頁碼在頁腳的中心位置,以及我想要的字體等等......我最終做的是用我的文字處理器創建1000頁,自動生成行號在頁腳中。然後,我只是將它放在我的文件上。 –
它不適合我。 Bucle不會迭代,我嘗試了hardcoding $ pagenum的值,但沒有。 – xsubira
,你可以簡單地使用
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實用程序)在/usr/local/bin/pagestamp.sh
#!/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 [email protected] --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
例如..地方這並執行這樣的:
pagestamp.sh doc.pdf 3
這將在第3頁開始的頁碼..有用的,當你有罩層,扉頁和目錄等
不幸的是,ENSCRIPT的--footer選項打破了,所以你不能使用這種方法得到底部的頁碼。
我試過pspdftool(http://sourceforge.net/projects/pspdftool)。
我終於得到它的工作,但一開始我得到這個錯誤:
pspdftool: xreftable read error
源文件與來自pdfjam pdfjoin創建,併爲產生包含了一堆從我的愛普生勞動力掃描以及標籤頁。我找不到解決xref表的方法,所以我用pdf2ps轉換爲ps並用pdf2ps轉換回pdf。然後,我可以使用它來在右下角得到很好的頁碼:
pspdftool 'number(start=1, size=20, x=550 pt, y=10 pt)' input.pdf output.pdf
不幸的是,這意味着任何文本搜索的頁面不再能夠搜索,因爲文本是在PS轉換光柵化。幸運的是,就我而言並不重要。
有什麼辦法可以修復或清空pdf文件的外部參照表而不會丟失可搜索的頁面嗎?
我把captaincomic的水溶液,並添加包含空格的文件名,加上提供有關進展情況的一些更多的信息支持
#!/bin/bash
clear
echo
echo This skript adds pagenumbers to a given .pdf file.
echo
echo This skript needs the packages pdftk and enscript
echo if not installed the script will fail.
echo use the command sudo apt-get install pdftk enscript
echo to install.
echo
input="$1"
output="${1%.pdf}-header.pdf"
echo input file is $input
echo output file will be $output
echo
pagenum=$(pdftk "$input" dump_data | grep "NumberOfPages" | cut -d":" -f2)
enscript -L1 --header='||Page $% of $=' --output - < <(for i in $(seq "$pagenum"); do echo; done) | ps2pdf - | pdftk "$input" multistamp - output "$output"
echo done.
我寫了下面shell
腳本來解決這個與inkscape
生產LaTeX
beamer
風格的幻燈片(我pdftk cat
幻燈片一起進入最後陳述PDF
&然後用下面的腳本添加幻燈片編號):
#!/bin/sh
# create working directory
tmpdir=$(mktemp --directory)
# read un-numbered beamer slides PDF from STDIN & create temporary copy
cat > $tmpdir/input.pdf
# get total number of pages
pagenum=$(pdftk $tmpdir/input.pdf dump_data | awk '/NumberOfPages/{print $NF}')
# generate latex beamer document with the desired number of empty but numbered slides
printf '%s' '
\documentclass{beamer}
\usenavigationsymbolstemplate{}
\setbeamertemplate{footline}[frame number]
\usepackage{forloop}
\begin{document}
\newcounter{thepage}
\forloop{thepage}{0}{\value{thepage} < '$pagenum'}{
\begin{frame}
\end{frame}
}
\end{document}
' > $tmpdir/numbers.tex
# compile latex file into PDF (2nd run needed for total number of pages) & redirect output to STDERR
pdflatex -output-directory=$tmpdir numbers.tex >&2 && pdflatex -output-directory=$tmpdir numbers.tex >&2
# add empty numbered PDF slides as background to (transparent background) input slides (page by
# page) & write results to STDOUT
pdftk $tmpdir/input.pdf multibackground $tmpdir/numbers.pdf output -
# remove temporary working directory with all intermediate files
rm -r $tmpdir >&2
腳本讀取STDIN
&寫入STDOUT
打印診斷pdflatex
輸出到STDERR
。
所以只要複製粘貼在文本文件上面的代碼,說enumerate_slides.sh
,使其可執行(chmod +x enumerate_slides.sh
)&這樣稱呼它:
./enumerate_slides.sh <input.pdf> output.pdf [2>/dev/null]
應該很容易調整這對任何其他種類的文檔通過調整LaTeX
模板使用正確的documentclass
,紙張大小&樣式選項。
編輯: 我通過$(which echo)
取代echo
由於ubuntu
符號鏈接到/bin/sh
dash
它默認&不提供-E
選項來覆蓋此行爲由殼內部口譯轉義序列覆蓋echo
命令。請注意,或者您可以在LaTeX模板中將所有\
轉義爲\\
。
編輯: 我換成$(which echo)
通過printf '%s'
自zsh
,which echo
回報echo: shell built-in command
,而不是/bin/echo
。 有關詳細信息,請參閱this question爲什麼我最終決定使用printf
。
我喜歡使用pspdftool(man page)的想法,但我是什麼後,頁Y中取X格式和字體樣式的頁面的其餘部分匹配。
要了解該文檔中使用的字體名稱:與幾個pspdftool
命令一起
$ pdfinfo input.pdf | grep "Pages:" | tr -s ' ' | cut -d" " -f2
膠水:
$ strings input.pdf | grep Font
要獲取的頁數
$ in=input.pdf; \
out=output.pdf; \
indent=30; \
pageNumberIndent=49; \
pageCountIndent=56; \
font=LiberationSerif-Italic; \
fontSize=9; \
bottomMargin=40; \
pageCount=`pdfinfo $in | grep "Pages:" | tr -s ' ' | cut -d" " -f2`; \
pspdftool "number(x=$pageNumberIndent pt, y=$bottomMargin pt, start=1, size=$fontSize, font=\"$font\")" $in tmp.pdf; \
pspdftool "text(x=$indent pt, y=$bottomMargin pt, size=$fontSize, font=\"$font\", text=\"page \")" tmp.pdf tmp.pdf; \
pspdftool "text(x=$pageCountIndent pt, y=$bottomMargin pt, size=$fontSize, font=\"$font\", text=\"out of $pageCount\")" tmp.pdf $out; \
rm tmp.pdf;
這裏是結果:
- 1. 將頁碼添加到PDF文檔中
- 2. 將頁碼添加到組合PDF中
- 3. ITextSharp將頁碼添加到合併pdf
- 4. R - 將頁碼添加到PDF
- 5. 使用ghostscript將頁碼添加到pdf
- 6. 將頁碼添加到pdf文檔(itextsharp)
- 7. 如何添加頁碼(COBOL)
- 8. 如何將頁面添加到菜單?
- 9. 如何將頁面添加到panoramaItem?
- 10. 如何將html添加到此頁面?
- 11. 如何將WPF頁面添加到tabcontrol?
- 12. 如何將控件添加到頁面?
- 13. 如何將頁面添加到RDoc?
- 14. 如何將Bing Map添加到網頁?
- 15. 如何將分頁添加到XML Feed?
- 16. 如何將分頁添加到REST API?
- 17. 如何將JavaScript添加到母版頁?
- 18. Wordpress - 如何將主頁添加到naviagtion?
- 19. 如何將頁腳添加到佈局?
- 20. 如何將字體添加到網頁
- 21. 如何將favicon添加到ASP頁
- 22. 如何將新頁面添加到nopcommerce?
- 23. 如何將Java代碼添加到靜態網頁中?
- 24. 如何將附屬代碼添加到Magento 1.7成功頁面?
- 25. 如何將html添加到aspx C#代碼隱藏頁面?
- 26. WordPress的 - 如何將分頁添加到我的代碼
- 27. 如何將代碼添加到shopify頁面
- 28. 如何將谷歌分析代碼添加到單頁網站
- 29. 如何將代碼隱藏添加到Sharepoint 2010母版頁?
- 30. 如何將頁碼添加到錨鏈接?
將[showpage]運算符重寫爲[本答案](http://stackoverflow.com/a/6620599/477035)中的本質上的[重複問題](http://stackoverflow.com/ q/4766755/477035) – RedGrittyBrick
請參閱[Alan Munn在TeX SE上非常好的解決方案](https://tex.stackexchange.com/a/18762/3406)。 –