2014-08-28 35 views
2

我想在我的Android应用程序中使用Android PDF Writer创建一个PDF。这是一个非常基础的库,允许创建简单的PDF文件。它的工作原理相当不错,但有一件事我不明白:在PDF代码标题中,%©»ªμ的含义是什么?

当我查看生成的PDF源代码,我可以看到,该文件开头以下行:

%PDF-1.4 
%©»ªµ 
1 0 obj 
<< 
    /Type /Catalog 
    /Pages 2 0 R 
>> 
endobj 
... 

什么第二行是什么意思?我搜索了很多不同的PDF语法文档,但是我发现没有提示该行可能意味着什么。在所有示例中,我发现%PDF-VersionXY行紧接着第一个对象/目录。

我不确定这是否是有效的PDF代码,或者如果这是由于库源代码的一些charset/enconding问题导致的一些错误。

任何想法这可能是什么?可以列入什么样的信息,在这个地方,是%©»ªµ有效的PDF或某些enconding错误?**

+2

好吧,因为它以'%'开始,所以它是一个注释,并且从我所能找到的内容来看,它似乎确保程序不会尝试以纯文本格式打开文件。此外,似乎这个特定的字符串不一定是标准的;它只需要包含非ASCII字符。 – 2014-08-28 06:44:40

回答

3

当3.4.1节采取看看PDF-1.4参考here(或者也可以在目前的1.7 here)它说

注:如果PDF文件包含二进制数据,大多数人(参见3.1节,“词法约定”), 建议标题行紧跟包含在 注释行至少四个二进制字符 - 即其代码为128或更大的字符。这将确保文件传输应用程序 的正确行为,该文件传输应用程序检查文件开头附近的数据,以确定是将文件的内容作为文本还是作为二进制处理。

因此,即使没有二进制数据,默认情况下,您的生成器似乎也包含此额外的注释行。只要每个字节值大于128(即:在ASCII范围之外),那里什么都没有关系。在你的情况下,它的十六进制值为A9 BB AA B5,所以一切都很好,你不必担心这条线。

相关问题