VicoTas
Câu hỏi
Vinh tranquangvinh
26/04/2013 21:36

Anh chị 3C làm ơn cho em hỏi về cách tạo file PDF tiếng việt với PHP với được không ạ?



Danh sách câu trả lời (1)
Hoài Nam (Nam Tước) namtuoc 26/04/2013 21:36
FPDF không (chưa?) hỗ trợ Unicode, cho nên không thể dùng trực tiếp font chữ VUCamThach. Trong bài này chọn bảng mã VISCII. Các trình tự các bước sau về nguyên tắc cũng sẽ áp dụng được cho các bảng mã tiếng Việt khác như TCVN, VPS hay VNI.

Việc thêm một font cần phải tiến hành các bước sau đây:

- Tạo file .afm (Adobe Font Metrics ?) chứa các thông tin đặc tính "metric" của font chữ,

- Tạo file định nghĩa font dạng script PHP (.php)

- Khai báo font để sử dụng nó trong script PHP

Đối với font chữ dạng Type1 thì bước thứ nhất không cần thiết vì các file .afm đã có sẵn. Dùng công cụ ttf2pt1 để chuyển đổi font Truetype sang định dạng Type1 binary (.pfb) và đồng thời tạo ra file .afm.

# ttf2pt1 -b -L viscii.map vucamtha.ttf

Trong đó file viscii.map chứa bảng mã đối chiếu giữa Unicode và VISCII, có dạng:

...!A3 U+1EB7 abrevedotbelow!A4 U+1EA5 acircumflexacute!A5 U+1EA7 acircumflexgrave!A6 U+1EA9 acircumflexhookabove!A7 U+1EAD acircumflexdotbelow!A8 U+1EBD etilde...

Khi thực hiện lệnh trên sẽ thấy có một vài warning, đừng chú ý đến các thông tin đó vì chúng không quan trọng. Kết quả sẽ có hai file: vucamtha.pfb và vucamtha.afm.

Bước tiếp đến, tạo file định nghĩa font, tạm gọi tên là make_vucamtha.php có nội dung như sau:



Chạy script make_vucamtha.php thông qua trình duyệt, bỏ qua các thông tin xuất hiện, sẽ thấy có hai file mới được tạo ra là vucamtha.php và vucamtha.z. File thứ hai chẳng qua chỉ là dạng nén của file vucamtha.pfb. Việc tạo file kết thúc ở đây.

Trong chương trình muốn sử dụng font chữ vừa tạo, chỉ cần khai báo như sau:

Open(); $pdf->SetMargins(25.0,20.0,20.0);$pdf->AddPage(); $pdf->AddFont('VUCamThach','','vucamtha.php'); $pdf->SetFont('VUCamThach','',36);$pdf->Cell(0,12,'ThØ Tiªng Vi®t VISCII VUCamThach',0,1,'C');$pdf->Output();?>

Voilà! bạn đã có thể tạo ra các file PDF tiếng Việt với FPDF rồi.

Các bước trình bày trên đây là hoàn toàn áp dụng được cho bảng mã CP1258. Chỉ việc thay thế file viscii.map bằng file cp1258.map. Đương nhiên khi đó thì các xâu chuỗi truyền cho hàm $pdf->Cell() phải là ở bảng mã CP1258.


chúc bạn thành công!
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Lập trình
NgocUk Làm ơn chỉ cho em cách cài đặt UML Linux với được không?

Đăng lúc: 21:36 - 26/04/2013 trong Lập trình

lighting Các anh chị làm ơn có thể hướng dẫn em cách tạo đĩa tự cài đặt Windown XP với được không ạ? Em xin cảm ơn.

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Nguyễn Văn Siêu Bài tập Pascal giải giúp mình với . Gấp Gấp

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Đức Vân Hiện dung lượng và tốc độ khi upload dữ liệu?

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Lê Thị Hoa Hồng Giải hộ tớ bài lập trình này với các bạn ơi

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

vietnamconnection Nhập vào một mảng n số nguyên tìm số min

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Vinh Bác nào từng lắp đặt Patch Panel chỉ em một cái. Chi tiết càng tốt. Em đọc hướng dẫn cứ rối tinh lên?

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

nophoto Tại sao lại gọi là "lập trình đồ họa"?

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Link Trong mạng LAN thì làm sao để tạo được một thông báo đến các máy tính? không sử dụng chat.

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Hương nLite là phần mềm gì vậy ạ ??

Đăng lúc: 17:22 - 26/06/2013 trong Lập trình

nophoto Giúp em làm 1 trang web cá nhân?

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Đức Vân Các bác share cho tớ code chạy quảng cáo khi rê chuột được hem?

Đăng lúc: 21:35 - 26/04/2013 trong Lập trình

Uk Cách tạo 1 file bằng cách lập trình như thế nào ?

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

MrTien Ai có phần mềm phông chữ ABC cho mình với. Mình đang cần. Thanks.

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

Thu Trang Dùng class để biểu diễn kiểu ngày tháng năm đúng ko ạ?

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

Thu Trang Ai cho em hỏi trưng trình con thủ tục và hàm dùng làm gì và dùng khi nào trong lập trình ạ?

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

Hoài Nam (Nam Tước) Bạn đã thử đăng ký sử dụng phần mềm dự toán miễn phí Gxd chạy trên Excel chưa?

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

Link Giúp em với: Viết chương trình nhập 3 số từ bàn phím, tìm USCLN của 3 số đó, sử dụng chương trình tìm USCLS

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

Ngô Minh Tùng Chuyển file Pas thành txt

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

nophoto Làm Sao Copy Text Từ Text Document Vô Pascal?

Đăng lúc: 21:34 - 26/04/2013 trong Lập trình

Rao vặt Siêu Vip