2017-10-10 94 views
1

允許使用FlateDecode和PNG預測器編碼的流的最後一個預測器行的列寬與所有其他行不一致嗎?即它錯過了一些數據?使用FlateDecode預測器和沒有足夠的數據編碼的PDF流

想象一下,例如,一個已經使用Flate算法解碼的流,得到105個字節。並使用參數<</Predictor 15 /Columns 10>>進行預測。

由於流具有105個字節,因此預測器可以解碼10個包含10列的完整行,並且一行僅包含5列,即5列的數據丟失。應該將最後一行解碼爲只有5列的行,還是應丟棄最後5個字節,或者整個流是無效的?

我沒有在PDF規範中找到任何東西,但我遇到了兩個PDF文件,它們都有這樣的流。

回答

0

由您決定如何處理無效流,PDF規範不處理無效數據。

例如,我們採取一切可以解碼的數據,其餘則以用0

+0

我知道,它是由實施者來決定做什麼。但是,目前尚不清楚這是否是無效的PDF流,因爲例如Adobe Acrobat的Preflight檢查器說一切正常......許多CLI工具錯誤,而所有測試過的PDF查看器都能正常工作並顯示*正確的事*。 – gettalong