Java 从JAR文件中加载字体,创建AWT字体(有效)并注册iText字体(无效)
我试图编写一个小程序,能够创建一个嵌入字体的PDF。 只要不在JAR文件中,一切都可以工作 下面的代码部分显示了我首先创建AWT字体(无论是否存储在JAR文件中,它都可以正常工作)。 然后我想注册一个iText(5.0.3)字体。但是错误来了:Java 从JAR文件中加载字体,创建AWT字体(有效)并注册iText字体(无效),java,jar,awt,itext,Java,Jar,Awt,Itext,我试图编写一个小程序,能够创建一个嵌入字体的PDF。 只要不在JAR文件中,一切都可以工作 下面的代码部分显示了我首先创建AWT字体(无论是否存储在JAR文件中,它都可以正常工作)。 然后我想注册一个iText(5.0.3)字体。但是错误来了:拒绝访问(java.io.FilePermission http:\host\jarfile\font\EXAMPLE.ttf read)java.security.AccessControlException) 所以我认为在applet上签名是个好主意,
拒绝访问(java.io.FilePermission http:\host\jarfile\font\EXAMPLE.ttf read)java.security.AccessControlException)
所以我认为在applet上签名是个好主意,但没有效果。出现相同的错误消息。
我是否做错了什么,或者这是一个无法停用的安全设置?(不更改JRE政策)
谢谢大家!!
丹尼尔也许你可以试试:
Font javaFont=Font.createFont(Font.TRUETYPE\u Font,新文件输入流(“Font/EXAMPLE.ttf”)
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);