我知道有很多软件包可以让你创建或阅读例如PDF,Word和其他文件。
我感兴趣的是(并且从未在大学学过)是如何创建这样的包装的?您是否始终依赖原始公司(如Adobe或Microsoft)提供的源代码,还是有另一种巧妙的解决方法?我应该分析我看到的单个字节,例如PDF文件?
答案 0 :(得分:1)
它有所不同。
有些公司为自己的数据格式提供SDK(“软件开发工具包”),其他公司只提供规范(即Adobe for PDF,Microsoft for Word,并由软件开发人员确保写一个正确的实现。
因为这可能需要做很多工作 - 例如,PDF规范可以运行超过700页,并且不会深入到实际所需的材料,例如LZW,JPEG / JPEG2000,颜色理论和数学转换 - 你需要一个巨大的数据集进行测试,它更容易使用其他人在其上完成的工作。
如果您有兴趣为某种文件格式编写支持库
然后是:你需要
主要在#3中涉及'聪明',因为您需要非常精通数据表示的一般工作方式。您应该能够告诉数据中的代码,来自浮点的字符串数据,以及来自MacRoman编码的字符串的UTF8编码字符串(等等)。
我已经做了几次,主要是为了检查各种游戏的数据,主要是因为它非常有趣! (公平警告:它也可能令人难以置信地令人沮丧。)请参阅逆向工程的Reverse engineering file containing sprites以获取示例方法;值得注意的是,在我的答案的最底层,我承认失败并开始使用“可能”和“可能”和“可能”这两个短语,这表明我没有进一步了解。
a 当然不一定。你可以与其他地方的专业人士合作,甚至为现有的项目做“笨拙的工作” - 找出并编纂相当微不足道的子句。
在现有项目上独立工作也有好处。例如,凭借我自己的PDF阅读器(从头开始编写)的经验,我能够指出bug in PDFBox。