xhtmlrenderer Проблема шрифта xhtml в pdf - PullRequest
2 голосов
/ 05 мая 2010

Я использую org.xhtmlrenderer.pdf.ITextRenderer для преобразования моей (x) html-страницы в pdf с использованием Java.

У меня большая часть работает, кроме части шрифта.

Я использую verdana на своей странице, и PDF отображается с использованием шрифта по умолчанию.

Я добавил verdana.ttf в мою банку и использую следующий код:

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new StringBufferInputStream(html));      

File tmpFontFile = new File(TEMP_FOLDER + "/verdana.ttf");
      if(!tmpFontFile.exists())
      {
       tmpFontFile.createNewFile();

       InputStream fontIs = getClass().getResourceAsStream("/com/mycompany/util/font/verdana.ttf");   
       OutputStream fontOs = new FileOutputStream(tmpFontFile);

       byte buf[] = new byte[1024];
       int len;

       while((len = fontIs.read(buf)) > 0)
        fontOs.write(buf,0,len);

       fontOs.close();
       fontIs.close();
      }


      ITextRenderer renderer = new ITextRenderer();
      renderer.getFontResolver().addFont(
        tmpFontFile.getAbsolutePath(), BaseFont.IDENTITY_H ,BaseFont.EMBEDDED);
      renderer.setDocument(doc, null);

      String outputFile = TEMP_FOLDER + "/mypdf.pdf";
      OutputStream os = new FileOutputStream(outputFile);
      renderer.layout();
      renderer.createPDF(os);
      os.close();

Что мне здесь не хватает?

Спасибо, Bart

1 Ответ

2 голосов
/ 07 мая 2010

Чтобы xhtmlrenderer работал, CSS должен читать:

font-family: Verdana;

вместо

font-family:verdana;

Он чувствителен к регистру.

...