ทำหน้า doc microsoft word ด้วย php อยากembed font ที่ปกติไม่มีในเครื่องทำไงดี

เริ่มโดย BHunter, 12 มีนาคม 2017, 18:14:30

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

BHunter

พอดีทำหน้าที่เป็น ms word ด้วย php อยู่ใช้ พวก header ให้userเข้ามาดาวน์โหลดเป็น ms word ออกไป  

header ('Content-type: text/html; charset=tis-620');

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=file_".date('Ymd').".doc");

แต่ทีนี้ font ที่ใช้เป็น TH Saraban ซึ่งโดยทั่วไป user ต้องไป ดาวน์โหลดมาติดตั้งในเครื่องก่อน ถึงจะเห็นfont จริงๆ เลยอยากรู้ว่ามีวิธีเขียน fontให้user เห็นได้เลยป่าวครับ โดยที่ไม่ต้องให้ user ไปหาfont นั้นมาใส่ในเครื่อง

ผมลอง @font-face ของcss3 ละ ไม่ได้ผลแหะ  สงสัยcss3 ใช้ไม่ได้ผลกับ ms word

zankumuro

โดยความคิดแล้วไม่น่าจะทำได้ครับ เพราะเอกสารที่เปิดบนเครื่องส่วนมากจะใช้ทรัพยากรที่ติดตั้งอยู่ภายในเครื่องอยู่แล้ว เหมือนกับเว็บที่ไม่ได้ Embed font เข้าไป แต่ดันเรียกใช้งาน font นั้นๆ  คนที่เปิดเว็บหากไม่มี font นั้นบนเครื่องหน้าเว็บก็จะไม่แสดงรูปแบบของ font นั้น

การใช้

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=file_".date('Ymd').".doc");


เป็นการใช้ HTTP headers ในการสร้างไฟล์ word มันไม่ได้เป็นไฟล์ word แบบ 100% อยู่แล้วด้วย แถมการกำหนดค่าด้วยวิธีนี้มันก็ยังจำกัดเอาอีก วิธีการที่อาจจะสามารถทำได้คือการสร้างไฟล์ Word ผ่าน word.application

$word = new COM("word.application");

เพราะว่าเป็นการสร้างไฟล์โดยใช้ COM object ของโปรแกรม Word ที่ติดตั้งอยู่บนเครื่อง เนื่องจากตัว MS Word เองสามารถแนบ font ไปกับไฟล์ได้ จึงทำให้มีโอกาสน่าจะทำได้ ส่วน option ชื่ออะไร ผมก็ไม่รู้ไม่เคยต้องใช้ถึงระดับนี้  :'(

แต่การใช้ COM object นั้น บนเครื่องเซิฟเวอร์ต้องติดตั้งโปรแกรม MS Word ไว้ ซึ่งแน่นอนจะต้องเป็น OS Windows

ช่วยได้เท่านี้ล่ะครับ  :wanwan012:
อย่าเชื่อผมมาก ผมมันมั่ว.....ฮ่าๆ

ฝาก Like แฟนเพจหน่อยครับ
https://www.facebook.com/devsignup

ข่าวสารวงการเกมส์ ทริปทริคต่างๆ เกมส์แจกฟรี
https://www.wecanplay.in.th/