2015-11-26 13 views
5

Tôi đã hardcoded Text với giá trị

":$£Ω€απ⅔:" 

để kiểm tra xem những nhân vật này sẽ hiển thị trong PDF

Nhưng nó chỉ in như

:$£€: 

Tôi đã cố gắng thay đổi phông chữ để "Symbol" nhưng điều đó không làm các trick.

Lưu ý: Tôi đang sử dụng iReport 5,5

+0

Bạn đang sử dụng [Tiện ích phông chữ] (http://jasperreports.sourceforge.net/sample.reference/fonts/)? –

Trả lời

14

tôi đã cố gắng nhân vật của bạn sử dụng font-extensions trong iReport, Đây là những bước mà tôi mất

  1. Tải về (hoặc sử dụng một trên máy của bạn) của bạn font ttf mong muốn (cần hỗ trợ các ký tự), tôi đã sử dụng dejavu-serif.
  2. Cài đặt font trong iReport hoặc trong Jasper soft studio (nhấp vào liên kết để hiểu làm thế nào)

    • tôi đã sử dụng iReport 5.6 và đã thiết lập PDF-Encoding: idenity-H (unicode với văn bản theo chiều ngang) và nhúng phông chữ vào pdf. Đây là mã của TextField tôi

      <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. xuất khẩu phần mở rộng phông chữ (điều này tạo ra một .jar)

  4. Thêm jar vào classpath của bạn.
  5. Xuất sang pdf và tận hưởng kết quả.

Result

Đây là một ví dụ về cách sử dụng bất kỳ phông chữ tùy ý, nếu bạn thích để sử dụng DejaVu Sans hoặc DejaVu Serif bạn chỉ có thể bao gồm các jasper report fonts library trong classpath, vì thế các phông chữ đã được bao gồm và ánh xạ trong thư viện

+0

Trong trường hợp của tôi, tôi giải nén lọ và đặt nội dung của nó vào src/main/resources, nếu không bạn sẽ phải chơi với việc thêm JAR vào dự án Maven của bạn, cái gì không tầm thường. – walv

+0

Chạy vào cùng một vấn đề. Trước khi thay đổi báo cáo của tôi để sử dụng DejaVu Sans, bất cứ ai có thể giải thích tại sao điều này xảy ra? – Thomas

+0

@Thomas bạn có thể kiểm tra các nhận xét về [answer] này (https://stackoverflow.com/a/35549391/5292302), itext thư viện tạo pdf, cần .ttf và biết bạn đang sử dụng mã hóa nào để tạo đúng pdf. –

1
JRDesignStyle normalStyle = new JRDesignStyle(); 
     normalStyle.setName("tahoma"); 
     normalStyle.setDefault(true); 
     normalStyle.setFontName("../tahoma_0.ttf"); 
     normalStyle.setPdfFontName("../tahoma_0.ttf"); 
     normalStyle.setPdfEncoding("Identity-H"); 
     normalStyle.setPdfEmbedded(true); 
     . 
     . 
     jasperPrint.addStyle(normalStyle); 
1

tôi đã đăng một câu hỏi tương tự và t trên echnique giải quyết vấn đề của tôi, cho đến một ngày tốt đẹp tôi khởi động lại bối cảnh JasperServer. Bây giờ tôi đã nhận được lỗi "không tìm thấy mã hóa PDF" khi tôi cố xuất báo cáo sang pdf.

Để giải quyết vấn đề này, tôi phải sao chép iText-Asian.jar và Font-extension.jar trong thư mục lib của ngữ cảnh jasperserver. "jasperserver/WEB-INF/lib". Sau khi thực hiện khởi động lại bối cảnh và vấn đề được giải quyết.

Hy vọng nó sẽ giúp ai đó.

Các vấn đề liên quan