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

Ala*_*rti 3 pdf itext

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

这是现在创建我的字体的功能:

def standardStampFont() {
    return BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, false)
}
Run Code Online (Sandbox Code Playgroud)

我想改变,要Verdana字体,而只是更换部分BaseFont.HELVETICA"Verdana"不工作.

任何的想法?提前致谢!

Bru*_*gie 5

据记载,iText支持标准类型1字体,因为iText附带AFM文件(Adobe字体度量文件).iText不知道其他字体的字体指标(Verdana不是标准类型1字体).您需要提供Verdana字体文件的路径.

BaseFont.createFont("c:/windows/fonts/verdana.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED)
Run Code Online (Sandbox Code Playgroud)

请注意,我改为false,BaseFont.EMBEDDED因为您身边的同样问题,也会发生在查看文件的人身边:他的PDF查看器可以渲染标准类型1字体,但可能无法渲染其他字体作为Verdana.

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