2014-08-28 36 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,所以一切都很好,你不必擔心這條線。

相關問題