为 PDF 文件生成非模糊的二进制内容

为 PDF 文件生成非模糊的二进制内容

当我使用文本编辑器(例如 Notepad++)打开由 LaTeX 编译的 PDF 文件时,文件的内容不是人类可读的,如下所示,所以在我看来,这些信息无法被潜在的爬虫处理。

n×å 9.â^Ñäùàɨ•” HTÏ•ì#ò Ž–}q”mäŠ9ÒrbtRšá™g—û}Açú¦nƒÖ…‡”jKœˆ FàƵÀmþåá •N:º‚~éWF¶DX‹m#‚D˜Àm;Ñum?OŠÀÊ¢ßÎ[ÈuóõÄ÷;Ý6"-@pñä٠(ÖXÜÕËaœyýûdRìørêÑbβ(\n^Øþ2Öƒ;¬÷ª»¦Òv0þ®±úßY'°³½‹%…ߥºíúŸKåÒ춶\êæñÕ_–áúª –ò1üj9¶,Ö×VæY¼wæ¬Döð}]

是否有可能生成 PDF 文件,以便当 PDF 文档显示“具体细节 1”之类的信息时,我使用文本编辑器打开文件时,也可以在文件的二进制内容中找到这个字符串“具体细节 1”?

例如,当用 LaTeX 创建 PDF 简历并且必须由各种文本分析器自动解析时,这很有用。

答案1

对于 pdfTeX

\pdfcompresslevel = 0 %
\pdfobjcompresslevel = 0 %

对于 LuaTeX

\pdfvariable compresslevel = 0 %
\pdfvariable objcompresslevel = 0 %

与 (x)dvipdfmx (XeTeX、upTeX 等) 一起使用

\special{dvipdfmx:config z 0}
\special{dvipdfmx:config C 0x40}

对于ps2pdf路线

\special{/setdistillerparams where
    {pop<</CompressPages false>>setdistillerparams}
  if
}
\special{/setdistillerparams where
    {pop<</CompressStreams false>>setdistillerparams}
  if
}

答案2

l3kernel2021-02-18 或 latex2e 2021-06-01 起,有一个多合一的 latex3 函数\pdf_uncompress:

引用其文档texdoc interface3(2023-02-22),第 36.4 节压缩

\pdf_uncompress:
新:2021-02-10

在可能的情况下禁用 PDF 的任何压缩。> 此功能只能在 PDF 文件初始化之前使用。

在 l3kernel 2021-02-18 之前和 l3pdf 2019-07-01 之后,如果加载了软件包,\pdf_uncompress:则可用。原为l3pdfl3pdf搬去l3kernel于 2021-02-18。

相关内容