【发布时间】:2009-02-18 01:20:21
【问题描述】:
谁能告诉我 PDF 文件的控制字符集,以及如何转义它们?我有一个(非放气(膨胀?))PDF 文档,我想在其中编辑文本,但我担心不小心使用括号和其他东西制作了一些控制序列。
谢谢。
【问题讨论】:
谁能告诉我 PDF 文件的控制字符集,以及如何转义它们?我有一个(非放气(膨胀?))PDF 文档,我想在其中编辑文本,但我担心不小心使用括号和其他东西制作了一些控制序列。
谢谢。
【问题讨论】:
好的,我想我找到了。在PDF 1.7 spec(PDF 链接)的第 15 页上,看来我需要担心的唯一字符是括号和反斜杠。
序列 |意义 --------------------------------------------- \n |换行 (0Ah) (LF) \r |回车 (0Dh) (CR) \t |水平标签 (09h) (HT) \b |退格(08h)(BS) \f |换页 (FF) \( | 左括号 (28h) \) |右括号(29 小时) \\ | REVERSE SOLIDUS (5Ch)(反斜杠) \ddd |字符代码 ddd(八进制)希望这对某人有所帮助。
【讨论】:
您可能已经知道这一点,但 PDF 文件末尾有一个索引,其中包含文档中所有内容的字节偏移量。如果您手动编辑文档,则必须确保您编写的新文本与原始文本具有完全相同的字符数。
如果您想提取 PDF 页面内容并对其进行编辑,这非常简单。我的CAM::PDF 库允许您以编程方式或通过命令行进行操作:
use CAM::PDF;
my $pdf = CAM::PDF->new($filename);
my $page_content = $pdf->getPageContent($pagenum);
# ...
$pdf->setPageContent($pagenum, $page_content)l
$pdf->cleanoutput($out_filename);
或
getpdfpage.pl in.pdf 1 > page1.txt
setpdfpage.pl in.pdf page1.txt 1 out.pdf
【讨论】: