嵌入式OLE PDF对象大于DOCX中的原始对象

时间:2018-08-24 12:50:40

标签: zip apache-poi docx

我遇到的问题是,当我创建带有.pdf类型的嵌入式(ole)文件的docx文档时,/ embeddings文件夹中生成的二进制文件大于原始文档。

我插入了一个52076字节的文档。 如果我将.docx重命名为zip并打开它,则oleObject1.bin具有55296字节

现在,当我想使用Apache POI提取文件时,文件在那里但已损坏。

有什么想法吗? (我首先认为它可能被压缩了?)

Thx

1 个答案:

答案 0 :(得分:1)

好,我发现了问题:

例如,对于docx,

在文件之前有一些数据块(RootEntry,ObjInfo,Contents ..)。使用十六进制编辑器,您将看到文件从后面开始。我通过查看目录的类型来修复提取器-对于pdf文件,您必须查看CONTENTS目录条目:

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 2
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath) as! RowCollectionViewCell

    if indexPath.row % 2 == 0 {
        cell.backgroundColor = UIColor(red: 248/255, green: 248/255, blue: 248/255, alpha: 1)
    }else {
        cell.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
    }

    cell.label.text = "Field\(indexPath.row)"

    return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
    return CGSize(width: 160, height: 65)
}