Bug. Openpdf textRenderer breaks with 9.1.15

86 views
Skip to first unread message

Valeri Andrejev

unread,
Dec 4, 2019, 5:49:27 PM12/4/19
to Flying Saucer Users

Pdf with embedded font can't be read with

'org.xhtmlrenderer:flying-saucer-core:9.1.15'
'org.xhtmlrenderer:flying-saucer-pdf-openpdf:9.1.15'


Test example:


 

import com.lowagie.text.pdf.BaseFont;

import com.lowagie.text.pdf.PdfReader;

import com.lowagie.text.pdf.parser.PdfTextExtractor;

import org.junit.jupiter.api.Test;

import org.xhtmlrenderer.pdf.ITextRenderer;

 

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

 

import static org.junit.jupiter.api.Assertions.assertTrue;

 

class PdfContentExtracting {

  @Test

  void test() throws Exception {

    ITextRenderer renderer = new ITextRenderer();

    renderer.setDocumentFromString("<html><head><style>* { font-family: 'Roboto'; }</style></head><body>Hello</body></html>");

    renderer.getFontResolver()

      .addFont("path/to/Roboto-Regular.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    renderer.layout();

    ByteArrayOutputStream os = new ByteArrayOutputStream();

    renderer.createPDF(os);

 

    PdfReader reader = new PdfReader(new ByteArrayInputStream(os.toByteArray()));

    PdfTextExtractor extractor = new PdfTextExtractor(reader, false);

    String content = extractor.getTextFromPage(1);

    assertTrue(content.contains("Hello"), "Actual content: " + content);

  }

}

Reply all
Reply to author
Forward
0 new messages