java – 如何配置Google AppEngine以使用矢量图形?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何配置Google AppEngine以使用矢量图形?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2710字,纯文字阅读大概需要4分钟。
内容图文
![java – 如何配置Google AppEngine以使用矢量图形?](/upload/InfoBanner/zyjiaocheng/797/5f653930f9c84001a829d09e2da01b35.jpg)
在AppEngine标准环境中使用Java8尝试使用SVG时出现下一个错误.当我尝试使用POI(如slide.draw(graphics2D))在XSLFSlide上绘制SVG或使用Batik将SVG转换为PNG时,我收到此错误.
似乎出现问题是因为fontconfig无法找到字体.在debian发行版中,它通过安装libfontconfig1来解决.如何在AppEngine上解决它?
java.lang.NullPointerException
at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
at sun.font.SunFontManager$2.run(SunFontManager.java:431)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<init>(SunFontManager.java:376)
at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:443)
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.awt.Font.getFont2D(Font.java:491)
at java.awt.Font.canDisplay(Font.java:1980)
at org.apache.poi.sl.draw.DrawTextParagraph.canDisplayUpTo(DrawTextParagraph.java:756)
at org.apache.poi.sl.draw.DrawTextParagraph.getAttributedString(DrawTextParagraph.java:640)
at org.apache.poi.sl.draw.DrawTextParagraph.breakText(DrawTextParagraph.java:248)
at org.apache.poi.sl.draw.DrawTextShape.drawParagraphs(DrawTextShape.java:159)
at org.apache.poi.sl.draw.DrawTextShape.getTextHeight(DrawTextShape.java:220)
at org.apache.poi.sl.draw.DrawTextShape.drawContent(DrawTextShape.java:102)
at org.apache.poi.sl.draw.DrawSimpleShape.draw(DrawSimpleShape.java:93)
at org.apache.poi.sl.draw.DrawSheet.draw(DrawSheet.java:71)
at org.apache.poi.sl.draw.DrawSlide.draw(DrawSlide.java:41)
at org.apache.poi.xslf.usermodel.XSLFSlide.draw(XSLFSlide.java:307)
解决方法:
我遇到了同样的问题,并设法通过设置“sun.awt.fontconfig”系统属性,明确地告诉AppEngine VM一个特定的字体配置来解决它.尝试在源代码的最开头的某处插入以下代码(在使用任何字体或图形组件之前):
String fontConfig = System.getProperty("java.home")
+ File.separator + "lib"
+ File.separator + "fontconfig.Prodimage.properties";
if (new File(fontConfig).exists())
System.setProperty("sun.awt.fontconfig", fontConfig);
内容总结
以上是互联网集市为您收集整理的java – 如何配置Google AppEngine以使用矢量图形?全部内容,希望文章能够帮你解决java – 如何配置Google AppEngine以使用矢量图形?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。