Mar*_*Ch1 26 pdf software-recommendation
我想编辑扫描的 PDF的元数据以将自定义页码分配给不同的页面。例如,现在第 1-3 页我可能想称之为 i、ii 和 iii,而第 4-10 页我想称之为 1-7。我不希望改变页面的实际顺序。
是否有 A)一种使用免费工具来做到这一点的方法;和 B) 一种“批量”执行此操作的方法(因此,无需手动重新编号每个页面)。
Mar*_*rer 22
这是一个基于 LaTeX 的解决方案。它使用pdfpages包来包含扫描的 PDF(此处称为scan.pdf)。可以使用启用hyperref该pdfpagelabels选项的包来设置您想要的 PDF 页面标签。它使用普通\thepage宏作为可以定义为小写罗马数字的标签。然后页面计数器被重置并变回正常数字。
\documentclass[a4paper]{article}% or use 'letterpaper'
\usepackage{pdfpages}
\usepackage[pdfpagelabels]{hyperref}
\begin{document}
% Set lower case roman numbers (\Roman would be upper case):
\renewcommand{\thepage}{\roman{page}}
\includepdf[pages=1-3]{scan.pdf}
% Back to normal (arabic) numbers:
\renewcommand{\thepage}{\arabic{page}}
% Reset page counter to 1:
\setcounter{page}{1}
\includepdf[pages=4-]{scan.pdf}
\end{document}
Run Code Online (Sandbox Code Playgroud)
将上面的代码放入一个文件(例如scan_mod.tex)中并使用以下命令编译它pdflatex:
# pdflatex scan_mod
Run Code Online (Sandbox Code Playgroud)
这将产生scan_mod.pdf. 但是,任何特殊注释包括。超链接将消失。这对于扫描的 PDF 应该没有任何问题。
如果您更频繁地需要这个,您可以编写一个脚本,该脚本接受罗马编号的页数和文件名作为参数,并使用上述代码创建一个临时文件,其中名称和数字是变量,然后编译。
Aki*_*RAI 10
你可以用文本编辑器来做到这一点。
正如答案所说,用文本编辑器打开一个 PDF 文件,搜索/Catalog条目,然后附加一个如下命名的条目/PageLabels:
/PageLabels << /Nums [
0 << /P (cover) >> % labels 1st page with the string "cover"
1 << /S /r >> % numbers pages 2-6 in small roman numerals
6 << /S /D >> % numbers pages 7-x in decimal arabic numerals
]
>>
Run Code Online (Sandbox Code Playgroud)
请注意,页面索引(物理页码)以0.
当然,您可以使用脚本语言自动执行此操作。
PDF 标准 - 页面标签有详细的规范。
小智 6
有一个小的 python 脚本可以完成这项工作:https://github.com/lovasoa/pagelabels-py
对于您的情况,请致电:
./addpagelabels.py --delete file.pdf
./addpagelabels.py --startpage 1 --type 'roman lowercase' file.pdf
./addpagelabels.py --startpage 4 --type arabic file.pdf
Run Code Online (Sandbox Code Playgroud)