2010-09-08 38 views
6

Tôi có một ứng dụng Java đang tạo JasperReports. Nó sẽ tạo ra tối đa ba JasperPrint từ một báo cáo duy nhất: một bản in trên máy in, một bản được tuần tự hóa và lưu vào cơ sở dữ liệu, và thứ ba được xuất sang PDF bằng khả năng xuất sẵn có của Jasper.Xuất khẩu một JasperReport sang PDF, Các ký tự Thiếu

Vấn đề là khi xuất sang PDF, các ký tự chứa 8 bit trở lên (nghĩa là ASCII 7 bit) được hiển thị dưới dạng hình vuông trống, nghĩa là Acrobat Reader không thể hiển thị ký tự đó. Phiên bản in là chính xác, và tải phiên bản cơ sở dữ liệu và in nó sẽ hiển thị chính xác. Nếu tôi thay đổi phiên bản đã xuất PDF sang một định dạng khác, ví dụ: XML, ký tự hiển thị tốt trong trình duyệt web.

Dựa trên bằng chứng, tôi tin rằng vấn đề là điều gì đó cụ thể đối với việc xử lý phông chữ trong tệp PDF, nhưng tôi không chắc chắn về điều gì.

Phông chữ được sử dụng là Máy đánh chữ Lucida Sans, phông chữ Unicode đơn cách. Thư mục "font" của Windows được liệt kê trong đường dẫn lớp Java: không có bước này, xuất PDF không thành công với văn bản bằng 0, vì vậy tôi biết nó đang tìm phông chữ.

Các nhân vật cụ thể không được hiển thị đang có dấu ký tự được sử dụng trong văn bản tiếng Tây Ban Nha: á, é, í, ó, và ú. Tôi đã không kiểm tra ñ nhưng tôi đoán rằng sẽ không làm việc quá.

Bất kỳ ý tưởng nào về vấn đề, khu vực của hệ thống để kiểm tra hoặc có thể là thông số tôi cần gửi cho quá trình xuất?

Trả lời

2

Mã hóa PDF được sử dụng để xuất là UTF-8 và dường như phông chữ không hỗ trợ đúng cách. Khi tôi thay đổi nó thành ISO-8859-1, mọi ký tự xuất hiện chính xác trong đầu ra PDF.

+6

bạn đặt thuộc tính đó ở đâu? –

0

Trong iReport, hãy thử đặt thuộc tính Pdf Embedded của TextFields thành true.

+0

Thuộc tính này đã được đặt thành true. –

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