2010-09-30 60 views
0

我试着写一个小程序,它能够创建PDF使用嵌入字体。 只要它不在JAR文件中,一切都会正常工作。加载字体了JAR文件,并创建AWT字体(作品)和寄存器iText的字体(不工作)

下面的代码部分显示了我首先创建AWT字体(其具有和不具有beeing存储在JAR文件工作正常)。 然后,我想注册一个iText(5.0.3)字体。但是这里出现错误:access denied (java.io.FilePermission http:\host\jarfile\fonts\EXAMPLE.ttf read) java.security.AccessControlException)

private String font = "fonts/EXAMPLE.ttf"; 

/* iText font */ 
private Font pdfFont; 

/* AWT font */ 
private java.awt.Font javaFont; 

private DefaultFontMapper mapper = new DefaultFontMapper(); 

javaFont = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, getClass().getResourceAsStream(font)); 

FontFactory.register(getClass().getClassLoader().getResource(font).getPath(), javaFont.getFontName()); 
pdfFont = FontFactory.getFont(javaFont.getFontName(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 40); 

/* Map the fonts */ 
BaseFontParameters params = new BaseFontParameters(font); 
params.encoding = BaseFont.IDENTITY_H; 
params.embedded = true; 
mapper.putName(javaFont.getFontName(), params); 

所以我认为签署我的applet将是一个好主意,但它没有效果。出现相同的错误消息。 我做错了什么,或者这是一个无法关闭的安全设置? (不改变JRE策略)

谢谢! 丹尼尔

回答

0

或许你可以尝试:

字体javaFont = Font.createFont(Font.TRUETYPE_FONT,新的FileInputStream( “字体/ EXAMPLE.ttf”));