我正在尝试在我的itext pdf中加载特定字体。但我不断收到错误。 logo.png和OpenSans-Bold.ttf位于同一个文件夹中。但是,如果我尝试运行代码,则无法在位置C找到字体文件:/somepatch/core/target/classes/OpenSans-Bold.ttf。但如果我看那个文件夹,文件就在那里。
private static final String LOGO_LOCATION = PdfBuilder.class.getClassLoader().getResource("logo.png").toString();
private static final String FONT_FS_JOEY_BOLD = PdfBuilder.class.getClassLoader().getResource("OpenSans-Bold.ttf").toString();
我也试过googeling这个问题,有人说我需要使用getResourceAsStream。所以我用:
private static final String FONT_FS_JOEY_BOLD = PdfBuilder.class.getClassLoader().getResourceAsStream("OpenSans-Bold.ttf").toString();
这给了我一个java.lang.IllegalStateException:无效的字体类型。
字体没有错,因为
private static final String FONT_FS_JOEY_BOLD = "./src/main/resources/fonts/fs_joey-bold-webfont.ttf";
的工作原理。不幸的是,我不能使用这种方法,因为我需要在不同的包中构建pdf。 (而且我真的想知道前两个例子的问题是错误的)