pdf - 如何在 Stamper 中使用 Verdana 字体 (iText PDF)

标签 pdf itext

我想在使用 iText PDF 标记 PDF 文件时使用 Verdana 作为字体。原始文件使用 Verdana,它不是 Basefont 类中的一个选项。

这是现在创建我的字体的函数:

def standardStampFont() {
    return BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, false)
}

我想将其更改为 Verdana 字体,但只需交换部件 BaseFont.HELVETICA"Verdana"不起作用。

任何的想法?提前致谢!

最佳答案

如文档所述,iText 支持标准 Type 1 字体,因为 iText 附带 AFM 文件(Adobe Font Metrics 文件)。 iText 不知道其他字体的字体规范(Verdana 不是标准 Type 1 字体)。您需要提供 Verdana 字体文件的路径。

BaseFont.createFont("c:/windows/fonts/verdana.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED)

注意我改了falseBaseFont.EMBEDDED因为在您这边遇到的同样问题,也会在查看您文件的人那边发生:他的 PDF 查看器可以呈现 Standard Type 1 字体,但可能无法呈现其他字体,例如 Verdana。

警告:硬编码路径 "c:/windows/fonts/verdana.ttf"在我的本地机器上对我有用,因为可以在我的本地机器上使用该路径找到字体文件。但是,此代码在我托管 iText 站点的服务器上不起作用(这是一个甚至没有 c:/windows/fonts 目录的 Linux 服务器)。作为示例,我正在使用这个硬编码路径。您应该确保在部署应用程序时该字体存在且可用。

关于pdf - 如何在 Stamper 中使用 Verdana 字体 (iText PDF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404418/

相关文章:

Java Pdf 生成和下载

c# - C# 中 itextsharp 中的文本格式设置

c# - 如何只生成一个 PDF

java - 仅适用于 Flying Saucer 的 CSS 选择器

ios - 在 iOS 中绘图时裁剪部分 PDF 页面

使用 iTextSharp 转换后,HTML 元素的边距未应用于 PDF

java - 使用 iText 在 PDF 文件中获取图像 DPI

c# - 获取生成 PDF 的堆栈溢出异常

android - 如何从 res/raw 文件夹打开 PDF 文件?

google-chrome - FDF 不适用于 Google Chrome