代码之家  ›  专栏  ›  技术社区  ›  Adam Tuttle

为什么我的PDF页脚文本不可见?

  •  1
  • Adam Tuttle  · 技术社区  · 18 年前

    我用ColdFusion的 CFDocument 标签,像这样:

    <cfdocument format="PDF" filename="#attributes.fileName#" overwrite="true">
        <cfdocumentitem type="footer">
            <table border="0" cellpadding="0" cellspacing="0" width="100%">
                <tr>
                    <td align="left"><font face="Tahoma" color="black"><strong>My Client's Corporation</strong><br/>Street address<br/>City, ST 55555</font></td>
                    <td align="right"><font face="Tahoma" color="black">Phone: 555.555.5555<br/>Fax: 555.555.5555<br/>Email: info@domain.com</font></td>
                </tr>
            </table>
        </cfdocumentitem>
        <html>
            <body>
                <table border="0" cellpadding="0" cellspacing="0" width="100%">
                <!--- some content here ... --->
                </table>
            </body>
        </html>
    </cfdocument>
    

    我的问题是有时(实际上,大多数时候,但并非总是如此) 一些 页脚的文本在那里,但不可见。我可以将其突出显示,并将其复制/粘贴到记事本中,在这里我可以看到全部内容——但是在生成的PDF中,只有页脚左栏的第一行可见,其余部分不可见。因此,我为什么要在代码中添加黑色的字体颜色。

    screenshot of problem

    关于如何纠正这个问题有什么想法吗?

    2 回复  |  直到 18 年前
        1
  •  2
  •   Adam Tuttle    18 年前

    PDF是我想要的,所以我不知道输出另一种格式有什么帮助。

    事实证明,页脚空间不足以容纳所有这些文本;事实证明,将字体大小更改为4pt可以完全容纳所有文本而不会出现问题。

    我花了一些时间试图用ddx重写页脚代码 as outlined here 以及 CFPDF 标记来实现它;但即使经过几个小时的黑客攻击,最终得到一个有效的DDX,正如新的 isDDX function ,cfpdf标记报告由于某种原因它是无效的ddx。

    在这一点上,我决定我已经浪费了足够的客户的时间/金钱,只是将页脚重新格式化为两行居中的文本,这已经足够好了。

        2
  •  1
  •   Chris Dolan    17 年前

    通常,当PDF显示空白文本时,这是因为字体度量嵌入到文档中,但字形不是。我对ColdFusion一无所知,但您可以尝试以下方法:

    • 尝试使用Tahoma以外的字体作为测试。所有PDF阅读器必须支持14种基本字体,包括4种Helvetica变体、4种Times变体、4种Courier变体、Symbol和Zapfdingbats,因此这些都是安全的选择。
    • 看看coldfusion是否提供了对字体嵌入的任何控制
    • 尝试在字体声明中列出备选方案,如“Tahoma,Helvetica,sans-serif”
    推荐文章