Hungnh Posted October 13, 2008 Share Posted October 13, 2008 Mình có xem qua bài viêt này http://www.prestashop.com/forums/viewthread/3481/old_bug_report_forum/solved_pdf_with_cyrillic_bug_fonts_problem nhưng vẫn không hiểu. Bác nào đã cấu hình thành công xin chỉ em với. Link to comment Share on other sites More sharing options...
haylam.vn Posted October 14, 2008 Share Posted October 14, 2008 Mình nghĩ vẫn đề là chế độ encode file pdf đó. Mặc định là iso-8859-1. Với chuẩn mã hóa này thì không thể hiện thị được tiếng việt. Bạn mở thư mục fpdf\font\makefont add thêm bảng mã utf-8 có lẽ sẽ giải quyết được vấn đề này . Link to comment Share on other sites More sharing options...
haylam.vn Posted October 14, 2008 Share Posted October 14, 2008 Có lẽ bạn nên tham khảo qua trang này www.unicode.org Link to comment Share on other sites More sharing options...
Hungnh Posted October 15, 2008 Author Share Posted October 15, 2008 Mình nghĩ vẫn đề là chế độ encode file pdf đó. Mặc định là iso-8859-1. Với chuẩn mã hóa này thì không thể hiện thị được tiếng việt. Bạn mở thư mục fpdf\font\makefont add thêm bảng mã utf-8 có lẽ sẽ giải quyết được vấn đề này . Theo như bạn nói thì bạn đã giải quyết được vấn đề này chưa. Bạn nói cụ thể hơn tí nữa để anh em học hỏi được không?Cảm ơn Link to comment Share on other sites More sharing options...
target_locked Posted October 15, 2008 Share Posted October 15, 2008 Mình nghĩ vẫn đề là chế độ encode file pdf đó. Mặc định là iso-8859-1. Với chuẩn mã hóa này thì không thể hiện thị được tiếng việt. Bạn mở thư mục fpdf\font\makefont add thêm bảng mã utf-8 có lẽ sẽ giải quyết được vấn đề này . add thêm bảng mã utf-8 là làm như thế nào vây bạn?thanks. Link to comment Share on other sites More sharing options...
haylam.vn Posted October 17, 2008 Share Posted October 17, 2008 Các bảng mã này đều chỉ có 256 ký tự, trong khi unicode là 65536 kí tự. Mình thấy trong file classes/PDF.php có sử dụng hàm Tools::iconv('utf-8', self::encoding(), $value) có lẽ dùng để hack font cho mã utf-8. Sửa hàm constructor đổi font về Times (Times-Roman) /** * Constructor */ function PDF($orientation='P', $unit='mm', $format='A4') { global $cookie; if (!isset($cookie) OR !is_object($cookie)) $cookie->id_lang = intval(Configuration::get('PS_LANG_DEFAULT')); $lang = strtoupper(Language::getIsoById($cookie->id_lang)); $conf = Configuration::getMultiple(array('PS_PDF_ENCODING_'.$lang, 'PS_PDF_FONT_'.$lang)); self::$_pdfparams[$lang] = array( 'encoding' => (isset($conf['PS_PDF_ENCODING_'.$lang]) AND $conf['PS_PDF_ENCODING_'.$lang] == true) ? $conf['PS_PDF_ENCODING_'.$lang] : 'utf-8', 'font' => (isset($conf['PS_PDF_FONT_'.$lang]) AND $conf['PS_PDF_FONT_'.$lang] == true) ? $conf['PS_PDF_FONT_'.$lang] : 'times' ); Các bảng mã này viết dưới đuôi .map. Các bạn copy file iso-8859-1.map, lưu thành file utf-8.map. Sau đó sử dụng tiện ích charmap (Windows + R > charmap). Chọn Character set:Unicode, Group by Unicode subrange. Chọn Advanced View các bạn sẽ thấy các ký tự tiếng Việt ở đó.Chèn các kí tự tiếng Việt còn thiếu vào trong file utf-8.map ở các vị trí ".notdef" ( không được định nghĩa) tương ứng với 2 ký tự cuối trong mã ký tự của nó 9 ( Mình cũng không hiểu sao PS Team lại để mã như vậy). Ví dụ :Ă --- !02 U+0102 Abreve (phần định nghĩa viết tắt bởi: "ký tự + dấu")Nếu muốn xem toàn bộ bảng mã Unicode (dưới dạng file PDF) vào http://www.unicode.org. Trong đó, click "Code Charts" và bạn sẽ thấy nhiều "trang mã". Toàn bộ các kí tự tiếng Việt có thể được tìm thấy ở các trang Latin-1 Supplement, Latin Extend A và Latin Extend B, và Latin Extended Additional.( Dạo này mình cũng khá bận nên không có thời gian rảnh lắm.) Link to comment Share on other sites More sharing options...
target_locked Posted October 18, 2008 Share Posted October 18, 2008 Có ai làm sẵn bảng mã cho TV rồi cho mọi người copy về sửa dụng không nhỉ, nghe thấy các bước có vẻ phức tạp quá. Link to comment Share on other sites More sharing options...
haylam.vn Posted October 18, 2008 Share Posted October 18, 2008 Mình nghĩ trong phiên bản PS tiếp theo sẽ khắc phục được vấn đề này bằng cách bổ sung bảng mã và font unicode hoàn chỉnh . Link to comment Share on other sites More sharing options...
target_locked Posted October 20, 2008 Share Posted October 20, 2008 Bạn dkkqt có thể giúp mọi người luôn dc ko? Chứ chờ đội ngũ Presta thì lâu lắm ko biết khi nào mới ra ver 1.1, mà có ra cũng chưa chắc hỗ trợ Tiếng Vệt đâu. Link to comment Share on other sites More sharing options...
haylam.vn Posted October 20, 2008 Share Posted October 20, 2008 Để mình thử xem. Khi nào được mình sẽ thông báo với mọi người . Link to comment Share on other sites More sharing options...
Nhung Dieu Gian Di Posted December 21, 2008 Share Posted December 21, 2008 Mình đang dùng Prestashop 1.0.0.8 và mình chỉnh trong BO phần PDF là unicode 1258 và mình có phần invoice PDF đọc được tiếng Việt. Nhưng lúc gõ các bạn phải chọn mã font unicode 1258 (tips: Các mục có sẵn các bạn phải gõ trong code chứ ko gõ trong phần translates ko có tác dụng) Link to comment Share on other sites More sharing options...
Lomodafy Posted August 20, 2010 Share Posted August 20, 2010 Thế bây giờ năm 2010 đã có chưa mấy bro ? Link to comment Share on other sites More sharing options...
haylam.vn Posted September 2, 2010 Share Posted September 2, 2010 hiện mình đã chuyển sang .NET, không còn làm việc với Prestashop nữa. Vậy version mới của PS vẫn chưa hỗ trợ unicode trong pdf file à Link to comment Share on other sites More sharing options...
mcjambi Posted November 26, 2010 Share Posted November 26, 2010 mà sao phải cần PDF làm gì ! mấy ai dùng mấy đâu bạn ! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now