ปัญหา Itexpdf ใช้ HTMLWorker ไม่แสดงผลภาษาไทย

ปัญหานี้ผมได้พบกับปัญหาขึ้นในการแสดงผลภาษาไทยโดยใช้ itextpdf เพื่อแสดงผลส่วนของ HTML file / HTML String โดยใช้ HTMLWorker ของ itext  โดยตอนแรกปัญหาที่พบคือ จะไม่ Show ข้อมูลภาษาไทยใด ๆ ใน PDF ที่ Render ออกมาเลย โดยโปรแกรมจะตัด ภาษาไทยออกไป สำหรับ วิธีแก้ปัญหาดังกล่าวคือ

itextpdf

 

แก้โดยใช้ StyleSheet ดังรูปและทำการ กำหนด StyleSheet ก่อน แล้ว ก็ทำการ ใช้ FontFactory register font ที่เราต้องการ (ตัวอย่างคือ tahoma) จากนั้นกำหนด loadTagStyle เพื่อ force ทั้ง body ให้แสดงผลเป็น font tahoma เพื่อให้สามารถแสดงผลภาษาไทยได้จากนั้น ก็ ทำการ Write หรือPreview  ตัว PDF ออกมาได้เลยก็จะได้การแสดงผลที่สวยงามเป็นภาษาไทย

  • สามารถใช้กับ HTML Editor Tools ที่เป็น web ได้
  • การใช้พวก Symbol ต่าง ๆ นั้นให้เราเลือกใช้ symbol ตาม font ที่เราได้กำหนดไปสามารถไป copy ได้จากใน word มาได้เลย แต่หากเป็น Symbol ต่าง font นั้นจะไม่สามารถแสดงผลได้ถูกต้อง