PDF Specification第一页的内容流包含单词stream
,后跟CR LF,后跟字节:9A FC 2C 16 E1 DB 83 80 92 08 82 AD 7A A1 ...
。过滤器为FlateDecode
。流对象位于位置0x4312
。
我无法解码。我得到一些废话,然后抛出异常。我尝试过:
PDF在Acrobat中打开。 Acrobat Preflight显示内容流以“ BT”开头。
答案 0 :(得分:3)
该文档已加密,如您所见,如果您在文本编辑器中打开文档,并且在最后一行的第5行中包含/Encrypt 126988 0 R
,这可能就是您胡说八道的原因。您必须先对其解密,然后才能进行解压缩。您可以在发布的同一文档中的7.6小节中阅读有关pdf加密的更多信息
答案 1 :(得分:0)
规范中的流对象说明如下: 在某些上下文中,字符串或流对象的内容(数据)在PDFDocEncoding或UTF-16字符集中被解释为字符代码。
我使用以下方法获取价值:
string pattern = "begin=\"(?'begin'[^\"]+)";
string stream = "stream<?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>";
Match match = Regex.Match(stream, pattern);
string begin = match.Groups["begin"].Value;
byte[] beginBytes = Encoding.Unicode.GetBytes(begin);