PDF 如何独立于应用软件、硬件和操作系统

PDF 如何独立于应用软件、硬件和操作系统

维基百科,便携式文档格式以独立于应用软件、硬件和操作系统的方式呈现文档。这真的让我很困惑。这怎么可能(真的独立于硬件和操作系统!)?也许我没有理解这句话的意思?

请向我解释一下这是什么意思。或者,就上述陈述而言,PDF 与其他文件格式有何不同?

答案1

PDF(或实际上任何文件)是一种以数字形式存储的信息排列,由大量单独的位和字节组成,并且能够在数字存储上从一个设备传送到另一个设备。

操作系统是“可执行”文件的集合,也就是说,它们包含一系列指令,这些指令共同作用于运行它们的硬件和运行在其中的软件之间。

对文件进行操作的软件本质上是将文件中包含的信息“解释”为可与运行它的操作系统兼容的元素。

因此,Android 手机需要具有一组指令的应用程序,而 iPhone 需要具有一组不同(但可能相似)指令的应用程序,运行 Linux、Windows 或 MacOS 的计算机也是如此,每个计算机都需要具有相似但不同指令集的应用程序,所有这些指令的核心都包含读取 PDF 中包含的信息并显示它、将其传达给打印子系统或可能修改 PDF 文件本身中的信息的能力。

PDF 在多个系统和操作系统上显示相对(并非完美)一致的“原因”在于 PDF 文件类型中包含的信息包含清晰的布局和视觉显示信息。这就是该格式从一开始就设计的方式。

这与其他文件类型不同,因为不同的文件类型有不同的用途。有些文件类型重视数据,有些文件类型重视非结构化信息,有些文件类型重视完全不同的内容,并且每种文件类型的设计方式通常都使其以自己的方式与其重视的内容保持一致。

此外,如果 PDF 查看应用程序不能很好地遵循 PDF 文件类型信息中包含的指令,那么它就不是一个很好的 PDF 查看器,因此不会获得太多支持或使用。

答案2

Adobe 在 90 年代的目标是创建一种与读取它的计算机系统类型无关的文档格式。这是可取的,因为 Adob​​e 随后将控制基本标准。

也来自 Wiki...

PDF 结合了三种技术:

  • PostScript 页面描述编程语言的子集,用于生成布局和图形。
  • 字体嵌入/替换系统允许字体随文档一起传播。
  • 一种结构化存储系统,将这些元素和任何相关内容捆绑到单个文件中,并在适当的情况下进行数据压缩。

并不是任何硬件或操作系统都能从本质上理解 PDF,计算机仍然需要了解它正在处理的内容。PDF 的标题中有一个格式编号,即 %PDF-1.7。这将指示如何进行相应的解析。

答案3

大多数文档格式的开始都是“相反的”。开发一个应用程序(如 MS Word)时,会开发一种相关的文档格式(例如 .doc 或 .docx)来支持其功能。只有在应用程序开发人员拥有巨大市场份额的情况下,它才是“通用的”,因此其他开发人员希望能够处理这些文件以满足客户对兼容性的期望。但无法保证您想要在您的平台上使用的办公套件可以处理这些文件,或者可以很好地处理它们,或者可以跟上 Microsoft 对格式的演变。

开源社区推动开放文档标准及其相关格式(如 .odt)。任何开发人员都可以使用这些格式(它是开源办公套件的标准格式)或支持这些格式(Word 支持它)。但同样,并不是每个办公套件都支持它,您选择的办公套件可能并非在每个平台上都可用。

即使您的办公套件适用于所有流行平台并支持特定格式,也不能保证其他人的办公套件也支持它或可以使其看起来与您的设备上的完全一样。

办公套件通常更注重沟通,而非桌面出版。它们可能不提供嵌入您用于创建文档的特定字体的机制。它们通常依靠字体替换来实现一定程度的通用性,使人们能够以与您创建文档基本相同的形式打开和查看文档。

另一个平台上的收件人将看到使用该平台上的类似字体渲染的版本。结果将非常接近,但不完全相同。类似的字体可能不具有完全相同的字符尺寸或字距,因此行可能不会完全相同。通常,这不是一个重要的区别,但在某些情况下,它可能是一个重要的区别。

PDF 的开发目的是确保任何文档都可以在任何平台上打开并且看起来完全相同。其目的主要是查看或打印文档,而不是编辑文档(尽管它们通常可以编辑,但这违背了确保文档看起来与创建时完全相同的目的)。

该文件格式嵌入了字体和布局说明,以便重新创建精确的副本。开发人员 (Adobe) 还为每个平台创建了软件,以便可以在任何地方查看 PDF 文件。

PDF 成功地实现了其预期目的,并被采纳为事实上的标准。自该格式诞生以来,其用途和功能得到了扩展。Adobe 和第三方开发人员已经创建了许多用于处理 PDF 的应用程序。许多主要的办公套件都可以打开和使用 PDF。Adobe 增加了一些功能,例如添加安全性,以便 PDF 可以被认证为未经修改的文档,以用于法律目的。但创建 PDF 的根本目的与文字处理类型的应用程序不同。

相关内容