文件转换器一般如何工作,如 word 到 pdf、XML 到 json、word 到 txt 等

How does file convertors work in general like word to pdf, XML to json, word to txt etc

我使用过多种类型的文件转换器,例如 word 到 pdf、XML 到 json、word 到 txt 等。 他们如何在后端工作?他们每个人都遵循一些具体的指导方针吗?它们的实现方式是否有一些相似之处。

我尝试搜索它,但大多数文章都将我带到可以转换文档的 Web 应用程序,但其中 none 清楚地说明了它是如何完成的。

所有这些都通过将第一个文档解析为数据结构来工作。然后使用递归从该数据结构生成其他格式的文档。

解析本身是人们在计算机科学课程中学习的一个巨大主题。但长话短说,它通过将文档分解为 标记 ,然后使用一组标准方法之一将标记放入解析树中。他们有各种花哨的名字,比如 Recursive Descent and LALR(1)。这就是您想要学习的大部分理论所在。

例如,如果您正在编写一个 JSON 到 XML 的转换器,您首先需要解析 JSON。 A JSON Parser 展示了如何使用递归下降从头开始编写它。编写完成后,您只需编写一个递归函数,该函数采用每种数据类型并对其进行适当处理,以生成您想要的格式的文本。

顺便说一句,您也可以编写一个“文档转换器”,将一种文档格式转换为相同的文档格式。为什么有人要这样做?两个最常见的用例是 prettify or minify 代码。尽管只处理一种格式,但处理方法的原则完全相同。