8

I've hardcoded a Text field with the value

 ":$£Ω€απ⅔:" 

to test if these characters will show in PDF

But it only prints as

:$£€:

I've tried changing the font to "Symbol" but that does not do the trick.

Note: I'm using iReport 5.5

1

2 Answers 2

22

I tried your characters using font-extensions in iReport, These are the steps that I took

  1. Download (or use one on your pc) your desired ttf font (it need to support the characters), I used dejavu-serif.
  2. Install the font in iReport or in Jasper soft studio (click links to understand how)

    • I used iReport 5.6 and did set the PDF-Encoding: Idenity-H (unicode with horizontal writing) and embedded the font in pdf. This was the code of my textField

      <textField>
          <reportElement x="8" y="15" width="100" height="20" uuid="41dc1200-091f-4799-a1d2-4622f88a0e84"/>
          <textElement>
              <font fontName="DejaVu Serif" size="13"/>
          </textElement>
          <textFieldExpression><![CDATA[":$£Ω€απ⅔:"]]></textFieldExpression>
      </textField>
      
  3. Export the font extension (this creates a .jar)

  4. Add the jar to your classpath.
  5. Export to pdf and enjoy the result.

Result

This is an example of how to use any arbitrary font, if you like to use DejaVu Sans or DejaVu Serif you can just include the jasper report fonts library in classpath, hence these font are already included and mapped in library

9
  • In my case, I unpacked that jar and placed its content into src/main/resources , otherwise you will have to play with adding JAR to your Maven project what is not trivial.
    – walv
    Commented Mar 18, 2017 at 4:32
  • Running into the same problem. Before changing my reports to use DejaVu Sans, can anyone explain why this is happening?
    – Thomas
    Commented Jul 7, 2017 at 0:12
  • @Thomas you can check the comments on this answer, itext the library that generates the pdf, needs the .ttf and know which encoding you are using to create correctly the pdf. Commented Jul 7, 2017 at 7:52
  • @Tomas futhermore you can use other fonts as long as they are supported by itext, you just need to create your own font-extension Commented Jul 7, 2017 at 7:56
  • 1
    first one, find a custom font that supports mentioned symbol. second one, PDF Font Name should be null. third one, PDF Encoding should be Identity-H
    – AhuraMazda
    Commented Aug 13, 2021 at 11:01
2

I had posted a similar question and the above technique solved my problem, until one fine day I restarted the JasperServer context. I was now getting "PDF encoding not found" error when I tried to export the report to pdf.

To solve this problem I had to copy the iText-Asian.jar and Font-extension.jar in the lib folder of the jasperserver context. "jasperserver/WEB-INF/lib". Once done restart the context and problem solved.

Hope it helps someone.

1
  • Where did you get these JARs?
    – dimirsen Z
    Commented Aug 22, 2019 at 18:29

Not the answer you're looking for? Browse other questions tagged or ask your own question.