Skip to content

icecraft/pptparser

Repository files navigation

TODO

  1. 解析 header
  2. 解析 FAT
  3. 解析 miniFAT
  4. 解析 direntry

TODO

  • 有大量的 lazy bytestring 和 strict bytestring 的转化,需要考虑去掉这一步。
  • 校验 MagicNumber 和 CLSID
  • 校验 Minor Version
  • V3 版本校验 num_of_director_sector
  • convert.py 需要智能化处理不同类型下面的字段名相同的情况
  • 实现工具查找 optional 字段! 手动检查所有文件的 optional 字段
    • ├── ODraw
    • │ └── OfficeArts.hs
    • ├── OShared
    • │ ├── Hyperlinks.hs
    • │ ├── SmartTags.hs
    • │ └── Toolbars.hs
    • └── Types
    • ├── Bases.hs # ftcBi :: Maybe Int, -- not sure 待验证
    • ├── Dops.hs
    • ├── Plcs.hs
    • ├── Spls.hs
    • ├── Sprms.hs
    • └── Sttb.hs
  • cfb 中的 dir_entry 改成树形的
  • [ Y ] OCrypto 的文件校验
  • [ Y ] ODraw 的文件校验
  • [ Y ] OShared 的文件校验
  • [ Y ] OCrypto 的 parser 生成
  • [ Y ] ODraw 的 parser 生成
  • [ Y ] OShared 的 parser 生成

MS-DOC

  • 2024/11/06: 因 ms-doc debug 成本过高,暂停 ms-doc 开发。

WorkSpace

PPT

ref: https://logand.com/git/olefs.git/

作为技术验证项目,不宜开源

待优化函数

  • byteStringToUArray 25%
  • reduceInts 3%
  • readSlice 18%
  • readFatInSector 5.4%
  • trimFreeSect 14.4%

About

An Tool which can extract text from ms-ppt

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published