我正在 Mac 上开发一款 Linux 托管的 Web 应用,该应用使用 TeX 生成 PDF 文件。该功能将动态文本数据叠加在静态 PDF 背景(纸质表格的扫描件)上。
在 Linux 机器上使用 pdflatex 一切正常:PDF 包含内容显示为背景,文本数据显示在顶部。然而在 Mac 上(使用 MacTeX),文本要么不显示(显然被 PDF 包含内容覆盖),要么 PDF 包含内容和文本打印在不同的页面上。
以下是 TeX 文件的缩写示例(包含完整的标题):
\documentclass[letter,12pt]{article}
\usepackage[absolute]{textpos}
\usepackage{latexsym,fancyhdr}
\usepackage[pdftex]{graphicx}
\usepackage{pdfpages}
\pdfcompresslevel=9
\usepackage{eso-pic}
\usepackage{color}
\usepackage{type1cm}
\setlength{\TPHorizModule}{1in}
\setlength{\TPVertModule}{\TPHorizModule}
\textblockorigin{0in}{0in}
\setlength{\parindent}{0pt}
\renewcommand{\ttfamily}{ptm}
\definecolor{gray}{cmyk}{0,0,0,0.1}
\begin{document}
\newpage
\begin{textblock}{2.4}[0,1](5.75,0.451){\sf HELLO}\end{textblock}
\includepdf{/path/to/foo.pdf}
\newpage
\textblockcolor{}
\begin{textblock}{1.2}[0,1](4.28,0.53)
\begin{tabular}{p{0.01cm}p{0.01cm}p{0.01cm}p{0.01cm}p{0.01cm}}W & O & R & L & D\end{tabular}
\end{textblock}
\includepdf{/path/to/bar.pdf}
\end{document}
在上面的例子中,第 1 页在 Linux 和 Mac 上都正确显示 foo.pdf 和“HELLO”,但第 2 页在 Mac 上仅显示 bar.pdf,而 Linux 机器则正确显示 bar.pdf 和“WORLD”。如果我将 includepdf 移到第 2 页的文本块之前,Mac 会在第 2 页上显示 bar.pdf,在第 3 页上显示“WORLD”。
请注意,我使用表格来实现等宽效果,因为 bar.pdf 表单背景有通常需要手动填写的信箱。然而,这似乎与错误无关,因为绕过伪等宽效果会产生相同的结果。
向所有能够提供一些启发的 TeX 专家致敬!