有人能告诉我PDF文件的控制字符集,以及如何逃避它们吗?我有一个(非放气(膨胀?))PDF文档,我想编辑文本,但我害怕用括号和东西意外地制作一些控制序列。
感谢。
答案 0 :(得分:21)
好的,我想我找到了。在PDF 1.7 spec(PDF链接)的第15页上,我需要担心的唯一字符是括号和反斜杠。
Sequence | Meaning --------------------------------------------- \n | LINE FEED (0Ah) (LF) \r | CARRIAGE RETURN (0Dh) (CR) \t | HORIZONTAL TAB (09h) (HT) \b | BACKSPACE (08h) (BS) \f | FORM FEED (FF) \( | LEFT PARENTHESIS (28h) \) | RIGHT PARENTHESIS (29h) \\ | REVERSE SOLIDUS (5Ch) (Backslash) \ddd | Character code ddd (octal)
希望这对某人有帮助。
答案 1 :(得分:1)
您可能已经知道这一点,但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