Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,296

HOME > PHP > PHP Forum > PHPWord ภาษาไทย มีปัญหาเรื่องการแสดงภาษาไทย ใครเจออย่างผมบ้าง





 

PHPWord ภาษาไทย มีปัญหาเรื่องการแสดงภาษาไทย ใครเจออย่างผมบ้าง

 



Topic : 079027



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์




พอดีว่าได้รับคำแนะนำจาก พี่วิน ว่า ถ้าต้องการออกรายงานให้ลองใช้ PHPWord (http://phpword.codeplex.com/)

ก็เลยลองโหลดมาใช้ดู ใช้แล้วก็รู้สึกว่าเวิคมากเลย แต่มันติดปัญหา (สำหรับผมคนเดียวหรือเปล่าไม่รู้)

คือผมทำการ Select ข้อมูลจาก DataBase (MySql) มาเพื่อจะนำข้อมูลมาใส่ลงใน Word

สำหรับข้อมูลที่เป็นภาษาอังกฤษสามารถแสดงได้ไม่มีปัญหาอะไร

แต่ข้อมูลที่เป้นภาษาไทยจะแสดงออกมาอย่างนี้

PHPword1

จากโค้ดการ Select ข้อมูลนี้ครับ

Code (PHP)
<?php ob_start();?>

<?php if ($complete=="true"){ ?>

<script type="text/javascript">
	window.location="gbook.php";
</script>
<?php } ?>

<?php
require_once '../PHPWord.php';

include_once("../Class/generated_classes/class.course.php");
include_once("../Class/generated_classes/sql.php");

$objCou = new course();
$objCou->select('1');

$objFac = new faculty();
$objFac->getFacultyTName('1', $objCou->getCOURSE_Code() );
$objFac->getDepartmentTName('1',$objCou->getCOURSE_Code());
$objFac->getCoursePreq('1',$objCou->getCOURSE_Code());
$objFac->getCourseTnameEname($objFac->CoursePreq);
$objFac->getCourseTDesc($objFac->CoursePreq);

$PHPWord = new PHPWord();
// New portrait section
	$document = $PHPWord->createSection();

	$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>true, 'size'=>16));
	$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
	$document->addText('Customer Report', 'rStyle', 'pStyle');
	
$document = $PHPWord->loadTemplate('F-QAO-090.docx');

$document->setValue('FAC_TName', $objFac->FACTname);//
$document->setValue('DEP_TName',$objFac->DEPTName);
$document->setValue('ID_Courses',$objCou->getCOURSE_Code());
$document->setValue('TNAME', $objCou->getCOURSE_TName());
$document->setValue('EName', $objCou->getCOURSE_EName());
$document->setValue('Credit', $objCou->getCOURSE_Credit());
$document->setValue('Lec', $objCou->getCOURSE_Lec());
$document->setValue('Lab', $objCou->getCOURSE_Lab());
$document->setValue('Self', $objCou->getCOURSE_Self());

$document->setValue('COURSEPreq', $objFac->CoursePreq);
$document->setValue('PreqTName', $objFac->CourseTName);
$document->setValue('PreqEName', $objFac->CourseEName);

$document->setValue('CourseTDesc', $objFac->CourseTDesc);

$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$document->save('FQAO090Edit.docx');
header('Location: FQAO090Edit.docx');
?>


แต่ถึงแม้ว่าผมจะลองใสข้อมูลที่เป็นภาษาไทยลงไปเลยโดยไม่ได้ Select จาก Base ก็ยังเป็นภาษาแบบแปลกๆอยู่ดีครับ

ตัวอย่างเช่น

Code (PHP)
$document->setValue('Self', 'เทสข้อมูลภาษาไทย');


ใครพอทราบสาเหตุช่วยชี้แนะหน่อยครับ...



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-05-28 09:48:10 By : MaTaDoRcpe View : 5366 Reply : 39
 

 

No. 1



โพสกระทู้ ( 115 )
บทความ ( 0 )



สถานะออฟไลน์


PHPWord ผมไม่รู้นะ เป็นที่การตั้งค่าเพจหรือเปล่า ไม่งั้นก็ดูตอน save เพจ ในEditPlus เป็นแบบไหน ANSI หรือ UTF-8 เพราะของผม save เป็น UTF-8 หมดเลย ผมเดาเอานะ

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 09:58:30 By : บู้
 


 

No. 2



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : บู้ เมื่อวันที่ 2012-05-28 09:58:30
รายละเอียดของการตอบ ::
ของผมก็เป็น UTF-8 หมดเหมือนกันนะครับ...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:08:17 By : MaTaDoRcpe
 

 

No. 3



โพสกระทู้ ( 115 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูบรรทัดที่ 30 เป็นเพราะ font นี้หรือเปล่า 'italic' ลองเปลี่ยนดู

$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>true, 'size'=>16));

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:13:47 By : บู้
 


 

No. 4



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : บู้ เมื่อวันที่ 2012-05-28 10:13:47
รายละเอียดของการตอบ ::
แล้วถ้าเกิดว่าจะแก้ ควรแก้เป็นอะไรเหรอครับ...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:20:38 By : MaTaDoRcpe
 


 

No. 5



โพสกระทู้ ( 115 )
บทความ ( 0 )



สถานะออฟไลน์


tahoma หรือ ms sans serif ก็ได้
$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'tahoma'=>true, 'size'=>16));

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:31:25 By : บู้
 


 

No. 6



โพสกระทู้ ( 307 )
บทความ ( 0 )



สถานะออฟไลน์


แก้ตามคุณ "บู้" ไม่น่าจะถูกนะครับ น่าจะเป็นตามนี้ครับ

http://phpword.codeplex.com/documentation

ตรงที่คุณ "บู้" นั้นคิดว่าเป็นการทำให้ตัวเอียงหรือไม่เอียงเท่านั้น สิ่งที่แก้ควรจะเป็น Font name ครับ
ตามตัวอย่างที่ให้ไปคือบันทัดนี้ครับ

Code (PHP)
$PHPWord->addFontStyle('rStyle', array(name=>'Tahoma', 'bold'=>true, 'italic'=>true, 'size'=>16)); 
//เพิ่ม name แต่ italic=true ถ้าจะให้มันเอียง



ยังไงลองแจ้งผลลัพธ์มาดูนะครับ ถ้าผิดจะไดเแก้ไขกันต่อไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:40:16 By : Songkram
 


 

No. 7



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองแล้วยังติดปัญหาภาษาไทยเช่นเดียวกัน เลยยังไม่ได้ดูต่อ ถ้าได้ก็บอกด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:53:10 By : mr.win
 


 

No. 8



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : mr.win เมื่อวันที่ 2012-05-28 10:53:10
รายละเอียดของการตอบ ::
ลองเพิ่ม name แล้วก็ยังไม่ได้นะครับ...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:56:15 By : MaTaDoRcpe
 


 

No. 9



โพสกระทู้ ( 115 )
บทความ ( 0 )



สถานะออฟไลน์


ขอโทษครับ งงกับกราฟอยู่ คิดว่าเป็นชื่อ font (@_@)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:58:30 By : บู้
 


 

No. 10



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : บู้ เมื่อวันที่ 2012-05-28 10:58:30
รายละเอียดของการตอบ ::


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 10:59:22 By : MaTaDoRcpe
 


 

No. 11



โพสกระทู้ ( 115 )
บทความ ( 0 )



สถานะออฟไลน์


ใส่ ' ' เข้าไปดูครับ เห็นในตัวอย่าง
$PHPWord->addFontStyle('rStyle', array('name'=>'Tahoma', 'bold'=>true, 'italic'=>true, 'size'=>16)); 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 11:02:13 By : บู้
 


 

No. 12



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : บู้ เมื่อวันที่ 2012-05-28 11:02:13
รายละเอียดของการตอบ ::
ผมใส่เข้าไปแล้วอะครับ...ก็ยังไม่ได้อยู่ดี...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 11:04:08 By : MaTaDoRcpe
 


 

No. 13



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ถ้าลองทุกวิธีทางแล้วยังไม่ได้ สงสัยน่าจะยังไม่ support
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 12:47:25 By : mr.win
 


 

No. 14



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : mr.win เมื่อวันที่ 2012-05-28 12:47:25
รายละเอียดของการตอบ ::
ท่านไหนเทพ พอจะแก้ไขให้มัน support บ้างครับ...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 13:14:48 By : MaTaDoRcpe
 


 

No. 15



โพสกระทู้ ( 307 )
บทความ ( 0 )



สถานะออฟไลน์


ความจริงใน link ที่ผมให้ไปก็มีวิธีตั้งค่า Font อยู่นะครับ ลองทำตามหรือยัง ตรงบันทัดนี้นะครับ

Code (PHP)
$section->addText('Hello world! I am formatted.', array('name'=>'Tahoma', 'size'=>16, 'bold'=>true));


ซึ่งผมไม่เห็นตรงนี้ในโค้ดของคุณ

ตรง $section นี้ต้องเปลี่ยนนะครับ เพราะของคุณคือ $PHPWord
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:03:08 By : Songkram
 


 

No. 16



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Songkram เมื่อวันที่ 2012-05-28 14:03:08
รายละเอียดของการตอบ ::
ตามที่คุณ NOOM ได้ Post ผมก็ลองส่งค่าเข้าไปแล้วเหมือนกันครับ...

แต่ก็ไม่มีอะไรเปลี่ยนแปลงครับ...

ลองไล่หาแล้วก็ไม่รู้ว่ามันเกิดอะไรขึ้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:08:09 By : MaTaDoRcpe
 


 

No. 17



โพสกระทู้ ( 307 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่แน่ใจว่าลองใช้ iconv เพื่อการ Convert string to requested character encoding หรือยังครับ สำหรับผมมันเป็นไม้ตายสุดท้ายเลยสำหรับการเปลี่ยน Encoding ของภาษาครับ .... ปกติผมจะเซตค่าทุกค่าในโปรแกรมให้ใช้ UTF-8 ทั้งหมดอยู่แล้วจึงไม่มีปัญหาเรื่องภาษาไทย แตุ่ถ้าเป็นโปรเจ็คที่รับช่วงต่อมา หรือช่วยแก้ไข ก็จะใช้ iconv สลับไป สลับมา ระหว่าง UTF-8 กับ TIS-620

ลองเข้าไปดูการใช้งานนะครับ..... http://php.net/manual/en/book.iconv.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:17:25 By : Songkram
 


 

No. 18



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 17 เขียนโดย : Songkram เมื่อวันที่ 2012-05-28 14:17:25
รายละเอียดของการตอบ ::
iconv อันนี้ผมก็ลองไปแล้วครับ

แถมยังลองใช้

mysql_query("SET NAMES tis620");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client=tis620");
mysql_query("SET character_set_connection=tis620");

สลับไป สลับมา ก็แล้ว จนปัญญาจริงๆเหอ...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:27:09 By : MaTaDoRcpe
 


 

No. 19



โพสกระทู้ ( 307 )
บทความ ( 0 )



สถานะออฟไลน์


งั้นถามต่อ ...

ใน MySQL คุณตั้งค่า character set ฐานข้อมูลเป็นอะไร
ในขั้นตอนการ Connection คุณตั้งค่าคิวรี่ (character_set) เป็นอะไร ตัวอย่างของผมก็คือ

Code (PHP)
@mysql_query("SET character_set_results='utf8'");
@mysql_query("SET character_set_client='utf8'");
@mysql_query("SET character_set_connection='utf8'");
@mysql_query("collation_connection = utf8_general_ci");
@mysql_query("collation_database = utf8_general_ci");
@mysql_query("collation_server = utf8_general_ci");


ตอนบันทึกไฟล์ ใช้ Encoding เป็น อะไร (ANSI หรือ UTF-8)

เอาแค่นี้ก่อน อย่างที่บอกปกติผมเซตเป็น UTF-8 ทั้งหมด เพราะฉะนั้นจึงไม่ค่อยมีปัญหาครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:36:20 By : Songkram
 


 

No. 20



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : Songkram เมื่อวันที่ 2012-05-28 14:36:20
รายละเอียดของการตอบ ::
ในขั้นตอนการ Connection ผมตั้งค่าคิวรี่ (character_set) เป็น

Code (PHP)
  mysql_query("SET NAMES tis620");
  mysql_query("SET character_set_results=tis620");
  mysql_query("SET character_set_client=tis620");
  mysql_query("SET character_set_connection=tis620");


ตอนบันทึกไฟล์ ใช้ Encoding เป็น UTF-8

ครับ...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:42:34 By : MaTaDoRcpe
 


 

No. 21



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เอาใจช่วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:43:59 By : mr.win
 


 

No. 22



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 21 เขียนโดย : mr.win เมื่อวันที่ 2012-05-28 14:43:59
รายละเอียดของการตอบ ::
ครับ พี่วิน...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:45:09 By : MaTaDoRcpe
 


 

No. 23



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ก่อนหน้านี้ผมลองแล้วครับ ทั้ง iconv() ยังไม่ได้เหมือนกัน เลยไม่ได้ดูต่อเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:54:25 By : mr.win
 


 

No. 24



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 23 เขียนโดย : mr.win เมื่อวันที่ 2012-05-28 14:54:25
รายละเอียดของการตอบ ::
นั้นสิครับพี่วิน ผมลองทั้ง iconv

ทั้ง set

Code (PHP)
mysql_query("SET NAMES tis620");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client=tis620");
mysql_query("SET character_set_connection=tis620");


ก็ยังไม่ได้อยู่ดี ก็เลยอยากหาผู้เชี่ยวชาญช่วยชี้แนะหน่อยครับ..เผื่อใครเทพๆจะสามารถช่วยไขปัญหานี้ได้ครับ...


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 14:58:02 By : MaTaDoRcpe
 


 

No. 25



โพสกระทู้ ( 307 )
บทความ ( 0 )



สถานะออฟไลน์


จากคำตอบ ผมว่าน่าจะเกือบได้คำตอบแล้วนะครับ ลองดูในทุกขั้นตอน ที่เกี่ยวกับการ Encoding ดูนะครับ ว่าตรงไหนบ้างที่ไม่เหมือนกัน ในบทความของบอร์ดนี้ก็มีนะครับเรื่องภาษาไทย

ปกติมันก็มี 2 อย่างคือ ในขั้นตอนบันทึกลงฐานข้อมูล กับ ขั้นตอนการเอาข้อมูลขึ้นมาแสดง ถ้าในระหว่างทางมันมีการเปลี่ยนแปลง Encoding ตรงไหน เราต้องทราบด้วย ในกรณีคุณ ติดตรงขั้นตอนการนำเอาข้อมูลขึ้นมาแสดง คือตั้งแต่การ Connection การคิวรี่ การ echo ข้อมูลขึ้นมาแสดง (หรืออาจจะจะเป็นในเรื่องของการ Save file )... เพราะฉะนั้นเราต้องดูว่าจุดไหนที่มีการเปลี่นแปลง Encoding ของข้อมูลเราบ้าง

ในที่นี้อาจจะเป็นแค่ตอน คิวรี่ก็ได้มั้งครับ ให้ลองเปลี่ยน Encoding ในขั้นตอนนี้ดูก่อนละกัน

ลองดูตรงนี้ประกอบนะครับ

https://www.thaicreate.com/community/php-mysql-thai.html


ประวัติการแก้ไข
2012-05-28 15:04:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 15:04:11 By : Songkram
 


 

No. 26



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


เอ่อออ

แต่จากที่ผมลองทำการใส่ข้อมูลลงไปตรงๆโดยที่ไม่ได้ ดึงข้อมูลจาก Base มันก็แสดงออกมาเพี้ยนๆเหมือนกันนะครับ

ตัวอย่างเช่น

Code (PHP)
$document->setValue('Self', 'เทสข้อมูลภาษาไทย');


จากตัวอย่างด้านบนนี้ ผมได้ทำการใส่ข้อมูลลงไปใน Word แบบตรงๆโดยไม่ได้ Select จาก Base

ดังนั้นผมคาดว่าไม่น่าจะเกี่ยวกับการ Encoding จาก Base แล้ว

น่าจะอยู่ที่การ Save File หรือการแสดงผลภาษาไทยของ PHPWord แล้วหละครับ(ผมคาดว่าอย่างนั้นนะครับ...)

แต่ก็ยังหาไม่เจอว่ามันต้องไปแก้ตรงไหน...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 15:14:04 By : MaTaDoRcpe
 


 

No. 27



โพสกระทู้ ( 307 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนใส่ข้อมูลเพื่อทดลองภาษาไทยใช้เครื่องมืออะไรครับ...

ถ้าใช้ Method ของการ setValue ตามตัวอย่างอาจจะยังไม่สามารถระบุคำตอบได้นะครับ เพราะมันก็อาจจะกลับมาที่ปัญหาเดิมก็คืออาจจะเป็นในเรื่องของการ Connection อีกนั่นแหละ เพราะ Class มันก็ใช้ connction ในการบันทึกข้อมูลจาก Connection เดียวกันกับตอนดึงข้อมูลมาแสดง

....

ยังไงลองกรอกข้อมูลโดยใช้มือกรอกลงไปตรงๆในฐานข้อมูลดูนะครับ เช่นกรอกใน phpMyAdmin หรือ Tool อื่นๆ.. เพื่อตรวจสอบการบันทึกข้อมูลดูก่อนว่าได้หรือไม่ ปกติผมใช้ Navicat ก็สะดวกดีนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 15:25:09 By : Songkram
 


 

No. 28



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตรง setValue ที่ผมว่านี้ มันเป็น Function ของ PHPWord ที่เค้าเขียนมาเพื่อที่จะทำการนำข้อมูลไปใส่ใน File Template.docx นะครับ

ไม่ได้เกี่ยวกับ dataBase นะครับ...

File ที่ผม Download มาคือ (http://phpword.codeplex.com/)

มันจะมี Function setValue นี้อยู่อะครับ...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-28 15:37:17 By : MaTaDoRcpe
 


 

No. 29



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


สวัสดีครับทุกท่าน...

วันนี้ผมมีข่าวดีมาบอกว่า...

ผมได้อาจารย์ใจดีท่านหนึ่ง ซึ่งท่านเทพ PHP มาก

ผมได้นำเรื่อง PHPWord ที่เป็นปัญหาตามกระทู้ที่ผมตั้งไว้นี้ไปถามท่าน

ท่านก็เลยไขปัญหานี้จนกระจ่างแจ้ง

ผมจะสรุปแล้วนะครับว่าปัญหานี้มันเกิดขึ้นเพราะอะไร

ปัญหานี้มันเกิดเพราะว่าการ convert ภาษากลับไปกลับมาของ PHPWord เองนั้นแหละครับ

สิ่งที่ทุกคนควรทำถ้าต้องการใช้งาน PHPWord นี้โดยไม่ติดปัญหาอย่างผมคือ

ให้ไป comment ตรงไฟล์ Template.php ของ PHPWord บรรทัดที่ 88-90 ครับ

Code (PHP)
if(!is_array($replace)) {
            $replace = utf8_encode($replace);
}


ตามด้านบนนี้ครับ...

เราก็สามารถแสดงภาษาไทยได้แล้วครับ

ความกระจ่างแจ้งครั้งนี้ผมขอยกความดีให้กับท่าน อาจารย์พงษ์สุรีย์ ลิ้มมณีวิจิตร แห่งมหาวิทยาลัยเทคโนโลยีมหานคร ครับ...

แล้วอีกท่านนึงที่ไม่เอ่ยถึงไม่ได้คือ อาจารย์ทรงพล รื่นสุข แห่งมหาวิทยาลัยเทนโนโลยีมหานครครับ.....


ประวัติการแก้ไข
2012-05-30 17:22:15
2012-05-30 17:53:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:14:05 By : MaTaDoRcpe
 


 

No. 30



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

โย๊ว ขอลองดูแป๊บครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:17:53 By : mr.win
 


 

No. 31



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 30 เขียนโดย : mr.win เมื่อวันที่ 2012-05-30 17:17:53
รายละเอียดของการตอบ ::
ถ้าได้หรือไม่ได้ยังงัยช่วยบอกด้วยนะครับพี่วิน....

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:23:02 By : MaTaDoRcpe
 


 

No. 32



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

อืม ได้แล้วจริง ๆ ครับ

PHPWord ภาษาไทย


แต่ปัญหาก็คือ utf8_encode มันมีอยู่หลาย method มาก ถ้าใช้ addText

Code (PHP)
	// New portrait section
	$section = $PHPWord->createSection();

	// Add text elements
	$section->addText("สวัสดีครับ!");


จะต้องไปแก้ไขที่ไฟล์ Section.php ตรง

Code (PHP)
	public function addText($text, $styleFont = null, $styleParagraph = null) {
		//$givenText = utf8_encode($text);
		$givenText = ($text);
		$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
		$this->_elementCollection[] = $text;
		return $text;
	}


หรือไม่ก็ใช้ Edit Plus ค้นหาจากไฟล์แล้ว Remark ออกให้หมด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:38:40 By : mr.win
 


 

No. 33



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 32 เขียนโดย : mr.win เมื่อวันที่ 2012-05-30 17:38:40
รายละเอียดของการตอบ ::
ดีใจมากครับที่สามารถแก้ได้ครับ....

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:41:08 By : MaTaDoRcpe
 


 

No. 34



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตอบความคิดเห็นที่ : 33 เขียนโดย : MaTaDoRcpe เมื่อวันที่ 2012-05-30 17:41:08
รายละเอียดของการตอบ ::
ดีใจด้วยครับ อันที่จริงไม่อยากจะเข้าไปแก้ไข utf8_encode เพราะมันมีหลายตัวมาก กำลังมองหาวิธีแก้ไข เช่น override function

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:50:47 By : mr.win
 


 

No. 35



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 34 เขียนโดย : mr.win เมื่อวันที่ 2012-05-30 17:50:47
รายละเอียดของการตอบ ::
อ่อ...ครับพี่วิน

ถ้าได้วิธีใหม่ๆก็ช่วยให้คำแนะนำผมบ้างนะครับ...

อิอิ....

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-30 17:54:46 By : MaTaDoRcpe
 


 

No. 36



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ผมแก้ให้ทุก function แล้วครับ สามารถดาวน์โหลดได้จากที่นี่



Go to : ภาษาไทยบน PHPWord วิธีการแก้ปัญหา ภาษาไทย (Thai) บน Library ของ PHPWord
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-31 11:38:02 By : mr.win
 


 

No. 37



โพสกระทู้ ( 146 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 36 เขียนโดย : mr.win เมื่อวันที่ 2012-05-31 11:38:02
รายละเอียดของการตอบ ::
ขอบคุณมากครับ พี่วิน...

จะได้เป็นวิทยาทานแก่คนอื่นๆ...



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-31 11:51:56 By : MaTaDoRcpe
 


 

No. 38



โพสกระทู้ ( 73,891 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ขอบคุณเช่นเดียวกันสำหรับวิธีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-31 11:59:12 By : mr.win
 


 

No. 39

Guest


ผมขอถามหน่อยครับ
คือผมนำไปใช้แล้วได้จริง แต่จะออกรายงานแบบเป็นตารางแล้วในช่องต้องขึ้นบรรทัดใหม่แล้วย่อหน้าเข้าไป คือผมทำไม่ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-30 21:13:02 By : นักศึกษา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : PHPWord ภาษาไทย มีปัญหาเรื่องการแสดงภาษาไทย ใครเจออย่างผมบ้าง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่