如何创建自己的包与word,pdf等交互

时间:2015-07-22 13:17:51

标签: pdf packages

我知道有很多软件包可以让你创建或阅读例如PDF,Word和其他文件。

我感兴趣的是(并且从未在大学学过)是如何创建这样的包装的?您是否始终依赖原始公司(如Adobe或Microsoft)提供的源代码,还是有另一种巧妙的解决方法?我应该分析我看到的单个字节,例如PDF文件?

1 个答案:

答案 0 :(得分:1)

它有所不同。

有些公司为自己的数据格式提供SDK(“软件开发工具包”),其他公司只提供规范(即Adobe for PDFMicrosoft for Word,并由软件开发人员确保写一个正确的实现。

因为这可能需要做很多工作 - 例如,PDF规范可以运行超过700页,并且不会深入到实际所需的材料,例如LZW,JPEG / JPEG2000,颜色理论和数学转换 - 你需要一个巨大的数据集进行测试,它更容易使用其他人在其上完成的工作。

如果您有兴趣为某种文件格式编写支持库

  1. 没有受法律保护,
  2. 没有,或者只有稀疏(官方)文档,
  3. 并且其他地方尚未解构, a
  4. 然后是:你需要

    1. 收集尽可能多的不同文件;
    2. 来自尽可能多的来源;
      (理想情况下,您应该至少有一个程序可以读取和创建文件)
    3. 在字节级别检查它们;
    4. 创建一个“阅​​读器”,用于所有测试文件;
    5. 如果可能,有趣和/或需要,创建一个“编写者”,可以从头开始以该格式创建新文件,或者可以将其他格式的数据转换为此文件。
    6. 主要在#3中涉及'聪明',因为您需要非常精通数据表示的一般工作方式。您应该能够告诉数据中的代码,来自浮点的字符串数据,以及来自MacRoman编码的字符串的UTF8编码字符串(等等)。

      我已经做了几次,主要是为了检查各种游戏的数据,主要是因为它非常有趣! (公平警告:它也可能令人难以置信地令人沮丧。)请参阅逆向工程的Reverse engineering file containing sprites以获取示例方法;值得注意的是,在我的答案的最底层,我承认失败并开始使用“可能”和“可能”和“可能”这两个短语,这表明我没有进一步了解。

      a 当然不一定。你可以与其他地方的专业人士合作,甚至为现有的项目做“笨拙的工作” - 找出并编纂相当微不足道的子句。

      在现有项目上独立工作也有好处。例如,凭借我自己的PDF阅读器(从头开始编写)的经验,我能够指出bug in PDFBox