2011-11-22 32 views
5

Ứng dụng Java của tôi tạo tệp PDF bằng iText. Đôi khi nội dung là châu Á, không hoạt động. Các ký tự châu Á không hiển thị.Cách cấu hình iText để hỗ trợ các ký tự Châu Á?

Tôi tìm thấy iTextAsian.jar trên trang tải xuống iText, nhưng không biết cách sử dụng.

Mục đích là sử dụng phông chữ yêu thích của tôi làm mặc định. Nhưng khi một ký tự không có sẵn thì một phông chữ khác được sử dụng cho ký tự này. Tôi đã đọc, iText có thể chọn phông chữ theo cách tự động hóa, nhưng làm thế nào để cấu hình này?

Tôi cũng muốn tất cả phông chữ bắt buộc phải được đưa vào tệp PDF, vì vậy người dùng không phải cài đặt phông chữ Châu Á trên máy tính của họ.

+0

Chúng không phải là "biểu tượng", chúng là các ký tự. – NullUserException

+0

Mọi người dùng của bạn đều có gói phông chữ Châu Á được cài đặt với trình xem PDF của họ hay bạn có quyền kiểm soát cơ sở người xem PDF đã cài đặt sao cho bạn có thể đảm bảo rằng họ đã làm? Nếu không, sẽ sử dụng PDF nhúng phông chữ làm cho kết quả PDF quá lớn - iText chỉ nhúng glyphs cần thiết của tài liệu? –

+0

Không kiểm soát người dùng. Nó là một ứng dụng web tạo PDF. Các tệp PDF rất lớn sẽ tốt hơn các tệp PDF không có ký tự Châu Á. Bước tiếp theo sẽ là để phát hiện nếu nội dung người dùng có chứa các ký tự Châu Á và bỏ qua bao gồm cả phông chữ phụ dựa trên đó. – Witek

Trả lời

2
  • Bạn có thể xác định "FontSelector" và sau đó thêm phông chữ của bạn (fontSelector.AddFont). Bây giờ iText sẽ chọn char không có sẵn từ font được định nghĩa tiếp theo bằng cách sử dụng phương thức fontSelector.Process.
  • Ký tự châu Á thường là Unicode, do đó bạn phải đặt "BaseFont.IDENTITY_H" thay vì Ansi (chẳng hạn như FontFactory.GetFont ("tahoma", BaseFont.IDENTITY_H)).
  • Nếu đó là RTL, bạn cần bọc văn bản của mình trong các phần tử có thuộc tính hướng chạy và đặt thành rtl.
+0

Tôi phải thêm phông chữ nào thông qua addFont()? – Witek

+0

BaseFont.IDENTITY_H nhúng các phông chữ .ttf đã chọn vào tệp PDF cuối cùng. Vì vậy, hãy tìm các phông chữ có các ký tự hoàn chỉnh của ngôn ngữ đó. – VahidN

+0

Vì người dùng trên các trang web có thể đến từ mọi nơi, tôi phải thêm phông chữ cho tất cả các ký tự vào bộ chọn, phải không? Làm thế nào để tìm hiểu, (10?) Phông chữ miễn phí với nhau bao gồm 99% của tất cả các nhân vật? – Witek

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