转义字符以替换为PDF

时间:2009-02-18 01:20:21

标签: pdf escaping

有人能告诉我PDF文件的控制字符集,以及如何逃避它们吗?我有一个(非放气(膨胀?))PDF文档,我想编辑文本,但我害怕用括号和东西意外地制作一些控制序列。

感谢。

2 个答案:

答案 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