Ghostscript提取含换页符文本:如何识别输出文件分页位置?
查看Ghostscript转换PDF为文本后的分页位置
嘿,别担心英文表达的问题~关于你用Ghostscript把PDF转成文本后想定位分页(换页符)的位置,我给你分享几种实用的方法:
方法1:直接查看文本中的不可见换页符
Ghostscript的txtwrite设备默认会用**ASCII换页符(Form Feed,ASCII码12,对应转义字符\f)**来标记分页。你可以通过以下方式看到它:
- 在Linux/macOS终端:
- 用
cat -A output.txt命令,换页符会显示为^L,能直观看到它在文本中的位置; - 用
grep -n "\f" output.txt命令,直接列出所有换页符所在的行号,快速定位每一页的分界点。
- 用
- 在Windows PowerShell:
- 执行
Get-Content output.txt -Raw | Select-String "\f" -AllMatches,会返回所有包含换页符的位置信息; - 用带“显示不可见字符”功能的文本编辑器(比如Notepad++),开启视图菜单里的“显示所有字符”选项,就能看到换页符的具体位置。
- 执行
方法2:转换时主动添加自定义分页标记
如果你觉得换页符不够直观,可以修改转换命令,让Ghostscript在每页开头/结尾添加醒目的分页标识。比如:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=txtwrite -c "/PageMark { (=== Page %Page% ===) print } def" -f input.PDF -sOutputFile=output.txt
这个命令定义了一个PageMark函数,会在每页开头打印类似=== Page 1 ===的标记,打开输出文本就能一眼看到分页位置,非常清晰。
方法3:确认txtwrite的分页参数
txtwrite设备默认开启了-dTextPageBreaks参数(负责添加换页符),如果你的输出里没看到分页,可能是这个参数被意外关闭了。转换时可以显式加上这个参数确保分页生效:
gs -dSAFER -dBATCH -dNOPAUSE -dTextPageBreaks -sDEVICE=txtwrite -sOutputFile=output.txt input.PDF
内容的提问来源于stack exchange,提问作者Marc.Adans
相关产品推荐
相关产品推荐

