在二进制级别控制输出文件

在二进制级别控制输出文件

我想通过 PDFTeX 生成一个 PDF 文件,同时也是一个 Windows 可执行文件(生成的文件是多语种)。

为此,我需要 PDF 文件以“MZ”字母开头。

我可以通过特定的宏或包来做到这一点吗?

答案1

您的“多语言”不是有效的 PDF 文件。规范的 PDF 文件以 PDF 标头 ( ) 开头。但是,根据 PDF 规范中的实现说明,Acrobat Reader 和一些其他 PDF 查看器不那么严格:%PDF-1.x

3.4.1,“文件头”
13. Acrobat 查看器仅要求标题出现在文件前 1024 个字节的某个位置。

标准的 PDF 文件%%EOF在最后一行以 结尾。同样,Acrobat Reader 不那么严格:

3.4.4,“文件尾部”
18. Acrobat 查看器仅要求%%EOF标记出现在文件最后 1024 个字节的某个位置。

因此,有一些空间可以添加其他格式的包装器。

但是,你不能使用 pdfTeX 在开头或结尾添加任何内容。但可以在 PDF 文件中添加一些内容:

\begingroup
  \pdfcompresslevel=0\relax
  \immediate\pdfobj stream file{foo.bar}\relax
\endgroup

foo.bar然后可以在 PDF 文件中找到未压缩的文件内容。

相关内容