首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xhtmlrenderer到pdf字体问题,甚至不使用字体-系列: Verdana;

xhtmlrenderer到pdf字体问题,甚至不使用字体-系列: Verdana;
EN

Stack Overflow用户
提问于 2018-12-11 11:39:17
回答 1查看 558关注 0票数 0

我使用flyingSaucer从HTML和CSS生成PDF。

其他代码的工作非常好,除了字体的东西。下面是我正在使用的代码。

代码语言:javascript
复制
public void convertHtmlToPdf(String html, String css, OutputStream out) {
    try {
        html = correctHtml(html);
        html = getFormedHTMLWithCSS(html, css);

        HtmlCleaner cleaner = new HtmlCleaner();
        TagNode rootTagNode = cleaner.clean(html);
        CleanerProperties cleanerProperties = cleaner.getProperties();
        XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);
        String cleanedHtml = xmlSerializer.getAsString(rootTagNode);


        File fontFile = new File("/omegaengineeringservices/Verdana.ttf");
        FontFactory.register(fontFile.getAbsolutePath());

        ITextRenderer r = new ITextRenderer();
        FontResolver resolver = r.getFontResolver();

        r.getFontResolver().addFont(fontFile.getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        r.setDocumentFromString(cleanedHtml);

        r.layout();
        r.createPDF(out);
        r.finishPDF();

    } catch (Exception e) {
        e.printStackTrace();
        logger.error(e.getMessage(), e);
    }
}

我也在我的CSS中添加了相同的字体。

代码语言:javascript
复制
.manual-body-center{
        width:100%;
        font-family: Verdana;
    }

结果,我得到了一个错误,

代码语言:javascript
复制
ExceptionConverter: java.io.IOException: /omegaengineeringservices/Verdana.ttf not found as file or resource.
    at com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(Unknown Source)
    at com.lowagie.text.pdf.TrueTypeFont.process(Unknown Source)
    at com.lowagie.text.pdf.TrueTypeFont.<init>(Unknown Source)
    at com.lowagie.text.pdf.BaseFont.getAllFontNames(Unknown Source)
    at com.lowagie.text.FontFactoryImp.register(Unknown Source)
    at com.lowagie.text.FontFactory.register(Unknown Source)
    at com.lowagie.text.FontFactory.register(Unknown Source)
    at com.omegaengineering.services.pdf.impl.Converter.convertHtmlToPdf(Converter.java:40)
    at com.omegaengineeringmanualsaddon.controllers.ManualsControllers.convertFromHtml(ManualsControllers.java:148)
    at com.omegaengineeringmanualsaddon.controllers.ManualsControllers.convertHtmlToPdf(ManualsControllers.java:131)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 12:01:45

给定文件路径/omegaengineeringservices/Verdana.ttf的问题

您需要给出有效的路径,详情请参阅飞碟用户指南。在节中,如何添加自定义字体或特定字体?,有详细信息的示例。

32

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53723388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档