0

我正在尝试使用该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;
4

1 回答 1

2

我想如果它不能在 Linux 上运行,那是因为你硬编码文件分隔符......

\\仅适用于 Windows。将那些替换为由System.getProperty("file.separator").

例子 :

String separator  = System.getProperty("file.separator");
FontFactory.register(contextPath + "WEB-INF"+separator+"Fonts"+separator+"verdana.ttf");
于 2012-06-19T14:27:58.450 回答