2 Stimmen

Xhtmlrenderer xhtml zu pdf Schriftproblem

Ich benutze org.xhtmlrenderer.pdf.ITextRenderer, um meine (x)html-Seite in pdf mit Java zu konvertieren.

Ich habe fast alles zum Laufen gekriegt, außer dem Schriftteil.

Ich benutze verdana auf meiner Seite und das pdf wird mit der Standardschrift gerendert.

Ich habe die verdana.ttf in mein Jar hinzugefügt und verwende den folgenden Code:

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();

Was fehlt mir hier?

Danke, Bart

2voto

B. T. Punkte 101

Für xhtmlrenderer zu funktionieren, muss das CSS folgendermaßen aussehen:

font-family: Verdana;

anstatt

font-family:verdana;

Es ist Groß- und Kleinschreibung beachten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X