在二进制文件中查找和更新

时间:2014-09-17 16:19:26

标签: c# pdf binaryfiles

我有PDF文件,它们是将多个tiff文件合并在一起的结果。所以每个页面实际上都是 ImageXObject 。如果由PDF Walker打开,每个页面都会如此。

7 0 obj
<<
    /Type /XObject
    /Subtype /Image
    /Width 1653
    /Height 2339
    /BitsPerComponent 4
    /ColorSpace [ /Indexed /DeviceRGB 15 8 0 R ]
    /DecodeParms [ <<
    /Columns 1653
>> ]
    /Filter [ /FlateDecode ]
    /Length 219260
>>

我发现PDF错误地生成了相关的内容流 - 它缺少了最后几行数据。如果我尝试在Acrobat Reader中打开此类PDF,则会显示错误消息图像数据不足。如果通过例如长度降低长度,则可以解决该问题。 10(定义常数)。

文字/Height 2339应更新为例如/Height 2330。这足以克服这个问题。

如果在文本文件中应该这样做,我会使用正则表达式来查找页面高度并根据需要更新它们。但我不确定如何最好地处理二进制文件中的更新。

注意:我不是在询问如何读/写二进制文件。 PDF文件可以加载到内存中,例如作为字节数组。问题更多的是关于如何有效处理问题的方法。无需循环遍历数组并比较序列/Height的每六个字节,然后查找应该表示像素数等的下一个字节。

0 个答案:

没有答案