2017-02-28 22 views
10

Tôi đang sử dụng bộ xử lý mẫu PHPWord để chèn một số văn bản vào mẫu.Chèn văn bản RTL chính xác trong mẫu PHPWord

Mẫu từ được định dạng LTR vì tất cả các nhãn đều là tiếng Anh.

Đây là dòng trong mẫu từ:

User Name: ${name} 

Đây là dòng PHP thay thế các giá trị:

$template->setValue('name', $user->name); 

Câu là hai chiều. Nhãn là tiếng Anh (LTR) và tên người dùng luôn là tiếng Ả rập (RTL).

Đây là dòng tạo mã trong document.xml, sau khi giải nén các tập tin từ:

<w:r><w:rPr><w:b/><w:bCs/><w:lang w:val="en-US" w:bidi="ar-EG"/></w:rPr><w:t>User Name:</w:t></w:r><w:r><w:rPr><w:lang w:val="en-US" w:bidi="ar-EG"/></w:rPr><w:t xml:space="preserve"> عمرو هشام</w:t><w:tab/></w:r> 

Văn bản thay thế xuất hiện một cách chính xác RTL trong LibreOffice, nhưng dường như LTR (đảo ngược) trong Microsoft Word.

Tôi có thể làm gì để làm cho nó xuất hiện chính xác (RTL) trong Microsoft Word?

+0

Tôi nghĩ rằng phải có một '' ngay sau giây thứ hai ' 'không có mặt. – revo

+0

http://stackoverflow.com/questions/14491325/fix-a-bi-lingual-wrong-right-to-left-text có thể giúp – MifReal

+0

tôi đoán bạn đã làm điều này trước đây: http://stackoverflow.com/questions/13967229/phpword-create-an-arabic-right-to-left-word-document –

Trả lời

0

bạn vừa thực hiện hành động sai ở nơi đầu tiên, sửa chữa từ PHP để hoạt động với chuỗi UTF-8.
theo this có hai cách để sửa PHPword và tôi đã thử cả hai. một trong những quyền là thế này:

On line 150, của Shared/String.php:

Thay

public static function IsUTF8($value = '') { 
    return utf8_encode(utf8_decode($value)) === $value; 
} 

Với

public static function IsUTF8($value = '') { 
    return mb_check_encoding($value, "UTF-8"); 
} 

Sau đó, nếu bạn làm

$ grep -rn "utf8_encode" . 

On người chuyên nghiệp ject root, bạn sẽ tìm thấy tất cả các dòng trong đó utf8_encode được sử dụng. Bạn sẽ thấy các dòng như

$linkSrc = utf8_encode($linkSrc); //$linkSrc = $linkSrc; 

$givenText = utf8_encode($text); //$givenText = $text; 

Bạn chỉ cần xóa utf8_encode như được hiển thị trong nhận xét.

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