将文本渲染为图像以保护电子邮件地址

将文本渲染为图像以保护电子邮件地址

我想通过以图片形式而不是(可解析的)文本形式包含我的电子邮件地址来保护它免受垃圾邮件发送者的侵害。通常我必须自己创建图像(带文本)并将其作为图形包含。有没有办法自动执行此操作(例如包)?

答案1

你可以使用它pdflatex --shell-escape

\documentclass{article}
\usepackage{graphicx}

\def\hideemail#1#2{%
\IfFileExists{#1.png}{}%
{\immediate\write18{%
echo '\detokenize{\setbox0\hbox{\strut #2}\hoffset-1in\voffset-1in\pdfpageheight\baselineskip
\pdfpagewidth\wd0\shipout\box0\bye'|pdftex;convert -density 600 texput.pdf #1.png}}}%
\box0{#2}%
\raisebox{-\dp\strutbox}{\includegraphics[width=\wd0]{#1.png}}}%

\begin{document}

some text with \hideemail{myemail}{[email protected]} an address

\end{document}

写入行的确切命令序列\write18取决于您可用的实用程序和操作系统。它使用纯 pdftex 编写仅包含地址的 pdf,然后使用 imagemagic 转换为 png。

结果是

在此处输入图片描述

然而,这绝对不会给电子邮件地址带来任何安全保障,例如,如果我将 pdf(或者甚至是上传到本网站的 pdf 的 png 图像)加载到 google docs 中,它会自动生成 OCR

 some text with [email protected] an address

为纯文本。

如果谷歌可以在文件上传时自动进行 OCR,那么你想向谁隐藏这一点也可以这样做。

相关内容