我想在PDF文档中嵌入'HelveticaNeueLTCom-BdCn.ttf'。我正在使用Grails渲染0.4.4插件来生成PDF文件。 我试着跟着,
@font-face {
font-family: 'Helvetica';
src: url('${grailsApplication.config.grails.serverURL}/fonts/HelveticaNeueLTCom-BdCn.ttf');
-fs-pdf-font-embed: embed;
-fs-pdf-font-encoding: Identity-H;
}
但它不起作用。
答案 0 :(得分:0)
字体嵌入需要遵循以下步骤。这对我有用。 试着告诉我你的反馈
插件中的PdfRenderingService类应该是 为此字体模拟编辑如下。
$rU = $this->request->referer();
if (!stristr($rU, "users/login") && !stristr($rU, "login") && !stristr($rU, "users/register") && !stristr($rU, "register") && !stristr($rU, "appadmins") && !stristr($rU, "js") && !stristr($rU, "css") && !stristr($rU, "ajax")) {
$this->request->session()->write('visited_page',$rU);
}
在模板文件中添加以下代码
protected doRender(Map args, Document document, OutputStream outputStream)
{
def renderer = new ITextRenderer()
// add the real font path from the server to be deployed to.
//I have it in the assets folder of my project
def path=servletContext.getRealPath("/")+"assets/HelveticaNeueLTCom-BdCn.ttf"
ITextFontResolver fontResolver=renderer.getFontResolver();
//add the encoding and embedded types to the font
fontResolver.addFont(path,BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
configureRenderer(renderer)
renderer.setDocument(document, args.base)
renderer.layout()
renderer.createPDF(outputStream)
outputStream.close();
}
答案 1 :(得分:0)
@font-face { src:url(${grailsApplication.config.app.serverUrl}/arialuni.ttf) ; -fs-pdf-font-embed: embed; -fs-pdf-font-encoding: Identity-H; }
这对我有用。
答案 2 :(得分:-1)
问题可能是您的url
值被'
包围而不是"
。
它们之间的区别在于,尽管在Groovy中可以使用两者创建字符串文字,但只有"
包围的文字创建了GString,它会评估${}
答案 3 :(得分:-1)
这对我有用
public class Test {
public static void main (String[] args) {
System.out.println("this is a test");
}
}
div {
@font-face {
src: url("path/to/KF-Kiran.ttf");
-fs-pdf-font-embed: embed;
-fs-pdf-font-encoding: cp1250;
}
}