3

I am using flying saucer to convert my html webpage to pdf,

I have input something like,

<a id="link0" href="title0" title="H2">1. Economical multisignal meter DP20  &#x25a0; &#x25b2;   &#x25a0;</a>

I want the hex entities to be displayed in character format, for that I am using following code,

public void convertHtmlToPdf(String html, String css, OutputStream out) {
    try {
        html = correctHtml(html);
        html = getFormedHTMLWithCSS(html, css);

        HtmlCleaner cleaner = new HtmlCleaner();
        TagNode rootTagNode = cleaner.clean(html);
        CleanerProperties cleanerProperties = cleaner.getProperties();
        XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);
        String cleanedHtml = xmlSerializer.getAsString(rootTagNode);




        URL fontResourceURL = getClass().getResource("/Calibri.ttf");

        ITextRenderer r = new ITextRenderer();

        r.getFontResolver().addFont(fontResourceURL.getPath(), "UTF-8", BaseFont.EMBEDDED);
//or    r.getFontResolver().addFont(fontResourceURL.getPath(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        r.setDocumentFromString(cleanedHtml);

        r.layout();
        r.createPDF(out);
        r.finishPDF();

    } catch (Exception e) {
        e.printStackTrace();
        logger.error(e.getMessage(), e);
    }
}

I too have tried the solution using CSS, that either does not work for me.

@font-face {

src: url('/Calibri.ttf');
-fs-pdf-font-embed: embed;
-fs-pdf-font-encoding: Identity-H;
}

I could not make out my mistake.

  • Odd, considering `HtmlCleaner` converts those HTML entities, what are the values that are displayed then? Still the`■ ▲ ■` or something else? – Mark Dec 17 '18 at 12:13
  • Nothing displays in generated PDF. However, cleaned html(a variable in java) contains ■ ▲ ■ values. – Sonam Ramchand Dec 17 '18 at 12:15
  • Have you tried different fonts? [this](https://stackoverflow.com/a/22000750/4417306) suggests the font `DEJAVUSANS` – Mark Dec 17 '18 at 12:23
  • As per [link](https://stackoverflow.com/a/35896138/10750404) , my code should too be wokring. @Mark – Sonam Ramchand Dec 17 '18 at 12:28
  • Besides this, I have tried Verdana and Xerox fonts. Those are as well not working. – Sonam Ramchand Dec 17 '18 at 12:29

0 Answers0