回答来自ChatGPT
在 Java 中,可以使用相对路径来声明字体(`Font`)。相对路径是相对于当前工作目录或类路径的路径。
下面是使用相对路径声明字体的几种常见方法:
1. 相对于当前工作目录:
String relativePath = "fonts/arial.ttf";
String absolutePath = System.getProperty("user.dir") + "/" + relativePath;
Font font = Font.createFont(Font.TRUETYPE_FONT, new File(absolutePath));
在上述示例中,`relativePath` 是相对于当前工作目录的路径,`System.getProperty("user.dir")` 获取当前工作目录的绝对路径。通过将相对路径与当前工作目录拼接,得到字体文件的绝对路径。
2. 相对于类路径:
String relativePath = "fonts/arial.ttf";
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(relativePath);
Font font = Font.createFont(Font.TRUETYPE_FONT, inputStream);
在上述示例中,`relativePath` 是相对于类路径的路径。使用 `getClass().getClassLoader().getResourceAsStream()` 方法获取相对路径下的字体文件的输入流。
无论是相对于当前工作目录还是类路径,都需要确保字体文件的实际位置与相对路径的位置匹配。
请注意,以上示例仅展示了如何声明字体(`Font`)对象,并不涉及字体在 PDF 或其他渲染环境中的使用。在使用字体时,需要根据具体的需求和使用场景,参考相关的 API 文档和使用示例。