如何将.bin解码为.pdf

时间:2019-06-13 19:05:36

标签: python-3.x pdf base64

我从pdf的Excel电子表格中提取了一个嵌入式对象,但是excel zip文件将嵌入式对象保存为二进制文件。

我正在尝试读取二进制文件,并将其恢复为pdf的原始格式。我从另一个具有类似问题的问题中获取了一些代码,但是当我尝试打开pdf Adob​​e时,出现错误“无法打开,因为文件已损坏...未正确解码。”

有人知道这样做的方法吗?

with open('oleObject1.bin','rb') as f: 
    binaryData = f.read() 
print(binaryData)

with open(os.path.expanduser('test1.pdf'), 'wb') as fout:
    fout.write(base64.decodebytes(binaryData))

Link to the object file on github

3 个答案:

答案 0 :(得分:1)

感谢赖安,我能够看到您在说什么。这是解决方案,供将来参考。

window.app.filter('finished', function() {
  return function(input, showFinished) {
    var out = [];
    angular.forEach(input, function(item) {

      if(!item.finished || showFinished) {
        out.push(item);
      }
    })
    return out;
  }
})

答案 1 :(得分:0)

您应该尝试使用python库,该库允许您编写reportlabpyPDF之类的pdf文件

答案 2 :(得分:0)

bin文件包含有效的PDF。无需解码。但是bin文件中确实有需要修剪的PDF前后的字节。

要获取第一个字节,请查找字符串%PDF-的第一个匹配项

要获取最后一个字节,请查找最后 %%EOF

注意,我不知道Excel添加的前导/后继字节是什么“格式”。如果上面的两个ascii字符串也可以包含在前导/后继数据中,则上述解决方案显然不会起作用。