2017-07-14 36 views
4

SVGを使用しようとしたときにJava8を使用するAppEngine標準環境で次のエラーが表示されます。 slide.draw(graphics2D)のようなPOIを持つXSLFSlideにSVGを描画しようとしたり、SVGをBatikでPNGに変換しようとすると、このエラーが発生します。 fontconfigがフォントを見つけることができないため、問題が発生しているようです。 debian配布では、libfontconfig1をインストールして解決します。どのようにAppEngineでそれを解決するには?ベクターグラフィックを使用するようにGoogle 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) 

答えて

3

私は同じ問題に直面し、明示的AppEngineのVMに"sun.awt.fontconfig"システムプロパティを設定することで、ピックアップする特定のフォントの設定を伝えることでそれを解決するために管理してきました。ソースコードの冒頭に次のコードを挿入してください(フォントやグラフィックコンポーネントを使用する前に):

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); 
+0

ありがとうございました! – Frank

関連する問題