我正在尝试使用verdana.ttf
字体来创建带有Java的RTF报告,但它无法在Linux上运行。
有人知道我是怎么做到的吗?
String contextPath = FacesUtil.getServletContext().getRealPath("\\");
try {
FontFactory.register(contextPath + "WEB-INF\\Fonts\\verdana.ttf");
} catch (Exception e) {
e.printStackTrace();
}
if (negrito) {
font = FontFactory.getFont("Verdana", 8, Font.BOLD, new Color(0, 0, 0));
}
cell = new Cell(new Paragraph(paragraph, font));
cell.setBackgroundColor(new Color(255, 255, 255));
cell.setBorderColor(new Color(255, 255, 255));
if (center)
cell.setHorizontalAlignment(Cell.ALIGN_LEFT);
cell.setRowspan(1);
cell.setColspan(1);
return cell;
答案 0 :(得分:2)
我想如果它不能在Linux上运行,那是因为你硬编码文件分隔符......
\\
仅适用于Windows。将其替换为System.getProperty("file.separator")
。
示例:
String separator = System.getProperty("file.separator");
FontFactory.register(contextPath + "WEB-INF"+separator+"Fonts"+separator+"verdana.ttf");