1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 创建pdf java 字体_如何使用自定义字体从servlet使用iText XMLWorker创建PDF?

创建pdf java 字体_如何使用自定义字体从servlet使用iText XMLWorker创建PDF?

时间:2018-10-29 12:52:51

相关推荐

创建pdf java 字体_如何使用自定义字体从servlet使用iText XMLWorker创建PDF?

使用iText / XMLWorker示例(大多数是 this one),我可以轻松编写能够使用我自己的额外字体从HTML代码创建PDF文件的简单应用程序,但是只要尝试在某些Web服务代码中使用我的东西,我就会以异常结束喜欢:

Table 'name' does not exist in file:/C:/work/MyServer/target/classes/fonts/My%20Font.ttf

ExceptionConverter: com.itextpdf.text.DocumentException: Table 'name' does not exist in file:/C:/work/MyServer/target/classes/fonts/My%20Font.ttf

…似乎指出在Web服务上下文中,无法按预期加载字体文件.这是我的大部分代码:

public HtmlRenderer(final String css, final String[] fontPaths) {

// fontPaths = {

// "/fonts/My Font.ttf",

// "/fonts/My Other Font.ttf",

// ...

// };

// CSS

cssResolver = new StyleAttrCSSResolver();

if (css != null) {

final CssFile cssFile = XMLWorkerHelper.getCSS(new ByteArrayInputStream(css.getBytes()));

cssResolver.addCss(cssFile);

}

// HTML

XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);

if (fontPaths != null) {

for (final String fontPath : fontPaths) {

final String path = this.getClass().getResource(fontPath).toExternalForm();

fontProvider.register(path);

}

}

CssAppliers cssAppliers = new CssAppliersImpl(fontProvider);

htmlContext = new HtmlPipelineContext(cssAppliers);

htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());

...

我应该依赖这样的事情:

>从临时文件中的资源中提取字体(参见here)

>然后,在自定义字体工厂中预加载字体(参见there)

谢谢您的帮助!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。