แสดงเอกสาร Word ในหน้า HTML โดยใช้ PHP

เราสามารถแสดงไฟล์ DOC หรือ DOCX ในหน้าเว็บ HTML ได้อย่างง่ายดายบนระบบคลาวด์ ซึ่งจะมีประโยชน์ในการดูเอกสาร Word ในเบราว์เซอร์ใดๆ โดยไม่ต้องแชร์ไฟล์ต้นฉบับ ในบทความนี้ เราจะเรียนรู้วิธีแสดงเอกสาร Word ในหน้า HTML โดยใช้ REST API ใน PHP

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

Word เป็น HTML Viewer REST API และ PHP SDK

สำหรับการแสดงเอกสาร Word ใน HTML เราจะใช้ API PHP SDK of GroupDocs.Viewer Cloud อนุญาตให้แสดงผลและดู รูปแบบไฟล์เอกสารและรูปภาพที่รองรับ โดยทางโปรแกรม โปรดติดตั้งโดยใช้คำสั่งต่อไปนี้ในคอนโซล:

composer require groupdocscloud/groupdocs-viewer-cloud

หลังการติดตั้ง โปรดใช้ autoload ของนักแต่งเพลงเพื่อใช้ SDK ดังที่แสดงด้านล่าง:

require_once('vendor/autoload.php');

โปรด รับรหัสลูกค้าและข้อมูลลับจากแดชบอร์ด ก่อนทำตามขั้นตอนดังกล่าว เมื่อคุณมี ID และรหัสลับของคุณแล้ว ให้เพิ่มรหัสตามที่แสดงด้านล่าง:

// ตัวอย่างรหัสนี้สาธิตวิธีการเพิ่มรหัสไคลเอนต์และรหัสลับในรหัส
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

// กำลังเริ่มต้นการกำหนดค่า
$configuration = new GroupDocs\Viewer\Configuration();

// การตั้งค่าการกำหนดค่า
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

แสดงเอกสาร Word ในหน้า HTML โดยใช้ REST API ใน PHP

เราสามารถแสดงเนื้อหาของเอกสาร Word ในรูปแบบ HTML โดยทำตามขั้นตอนง่าย ๆ ด้านล่าง:

  1. อัปโหลด ไฟล์ DOCX ไปยังคลาวด์
  2. แสดงเอกสาร Word ในหน้า HTML
  3. ดาวน์โหลด ไฟล์เรนเดอร์

อัปโหลดเอกสาร

ประการแรก เราจะอัปโหลดไฟล์ DOCX ไปยังคลาวด์โดยใช้ตัวอย่างโค้ดที่ระบุด้านล่าง:

// ตัวอย่างโค้ดนี้สาธิตวิธีอัปโหลดไฟล์ DOCX ไปยังคลาวด์
// เริ่มต้น API
$apiInstance = new GroupDocs\Viewer\FileApi($configuration);

// เส้นทางไฟล์อินพุต
$file = "C:\\Files\\Viewer\\input.docx";

// อัปโหลดคำขอไฟล์
$request = new GroupDocs\Viewer\Model\Requests\uploadFileRequest("input.docx", $file);

// อัพโหลดไฟล์
$response = $apiInstance->uploadFile($request);

ด้วยเหตุนี้ ไฟล์ที่อัปโหลดจะอยู่ใน ส่วนไฟล์ ของแดชบอร์ดบนระบบคลาวด์

แสดงเอกสาร Word ในหน้า HTML โดยใช้ PHP

ตอนนี้ เราจะแสดงหรือแสดงเนื้อหาของเอกสาร Word ที่อัปโหลดบนหน้า HTML โดยทำตามขั้นตอนด้านล่าง:

  1. ประการแรก สร้างอินสแตนซ์ของ ViewAPI
  2. จากนั้น สร้างอินสแตนซ์ของ ViewOptions
  3. จากนั้นระบุเส้นทางไฟล์อินพุต
  4. นอกจากนี้ ตั้งค่า ViewFormat เป็น “HTML”
  5. ถัดไป เริ่มต้นวัตถุ HtmlOptions
  6. จากนั้นกำหนดคุณสมบัติต่างๆ เช่น IsResponsive, ForPrinting เป็นต้น
  7. หลังจากนั้น สร้าง CreateViewRequest ด้วย ViewOptions เป็นอาร์กิวเมนต์
  8. สุดท้าย แสดง Word เป็น HTML โดยใช้เมธอด createView()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแสดงไฟล์ Word ใน HTML โดยใช้ REST API ใน PHP

// ตัวอย่างโค้ดนี้สาธิตวิธีการเรนเดอร์ DOCX เป็น HTML
// เริ่มต้น API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// กำหนด ViewOptions
$viewOptions = new Model\ViewOptions();

// เส้นทางไฟล์อินพุต
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// ตั้งค่า ViewFormat
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// กำหนดตัวเลือก HTML
$renderOptions = new Model\HtmlOptions();

// ตั้งค่าให้ตอบสนอง
$renderOptions->setIsResponsive(true);

// ตั้งค่าสำหรับการพิมพ์
$renderOptions->setForPrinting(true);

// กำหนดตัวเลือกการเรนเดอร์
$viewOptions->setRenderOptions($renderOptions);

// สร้างคำขอดู
$request = new Requests\CreateViewRequest($viewOptions);

// สร้างมุมมอง
$response = $apiInstance->createView($request);

// เสร็จแล้ว
echo "HtmlViewerResponsiveLayout completed: ", count($response->getPages());
echo "\n";  
แสดงเอกสาร Word ในหน้า HTML โดยใช้ REST API ใน PHP

แสดงเอกสาร Word ในหน้า HTML โดยใช้ REST API ใน PHP

เราสามารถปรับแต่งการแสดงผลของ Word เป็น HTML โดยใช้ตัวเลือกต่อไปนี้:

  • แสดงผลช่วงหน้าเฉพาะ
// Pass specific range of page numbers to render. 
// This will render all pages from starting from page 1 to 3.
$renderOptions->setStartPageNumber(1);
$renderOptions->setCountPagesToRender(3);
  • แสดงผลหน้าที่เลือกเท่านั้น
// Pass specific page numbers to render. 
// This will render only page number 1 and 3.
$renderOptions->setPagesToRender([1, 3]);
  • ดูหน้าตามลำดับเฉพาะ
// Pass page numbers in the order you want to render them
$renderOptions->setPagesToRender([2, 1]);
  • แสดงเอกสารพร้อมความคิดเห็น
$renderOptions->setRenderComments(true);

ดาวน์โหลดหน้า HTML

ตัวอย่างโค้ดด้านบนจะบันทึกหน้า HTML ที่แสดงผลบนคลาวด์ สามารถดาวน์โหลดได้โดยใช้ตัวอย่างโค้ดต่อไปนี้:

// ตัวอย่างโค้ดนี้สาธิตวิธีดาวน์โหลดหน้า HTML ที่แสดงผลจากระบบคลาวด์
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// ได้ทุกหน้า
$pages = $response->getPages();

// บันทึกหน้าทีละหน้า
foreach ($pages as $page)
{
    // สร้างคำขอดาวน์โหลดไฟล์
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // ดาวน์โหลดไฟล์
    $file = $fileApi->DownloadFile($downloadFileRequest);
    echo "$page downloaded!";
    echo "\n"; 
}

ฝังเอกสาร Word ลงในหน้า HTML ที่มีอยู่

เรายังสามารถฝังเอกสาร Word ลงในหน้า HTML ที่มีอยู่โดยทำตามขั้นตอนด้านล่าง:

  1. ประการแรก สร้างอินสแตนซ์ของ ViewAPI และ FileAPI
  2. จากนั้น สร้างอินสแตนซ์ของ ViewOptions
  3. จากนั้นระบุเส้นทางไฟล์อินพุต
  4. นอกจากนี้ ตั้งค่า ViewFormat เป็น “HTML”
  5. ถัดไป เริ่มต้นวัตถุ HtmlOptions
  6. จากนั้นกำหนดคุณสมบัติต่างๆ เช่น IsResponsive, ForPrinting เป็นต้น
  7. หลังจากนั้น สร้าง CreateViewRequest ด้วย ViewOptions เป็นอาร์กิวเมนต์
  8. จากนั้น แสดงผล Word เป็น HTML โดยใช้เมธอด createView()
  9. ถัดไป โหลดไฟล์ HTML ที่มีอยู่และรับองค์ประกอบของแท็กเนื้อหา
  10. จากนั้น อ่าน HTML ของแต่ละหน้าและต่อท้ายแท็ก body
  11. หลังจากนั้น ให้บันทึก HTML ที่อัปเดตโดยใช้เมธอด saveHTML()
  12. สุดท้าย บันทึกไฟล์ HTML โดยใช้วิธี file\put\contents()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการฝังเอกสาร Word ลงในหน้า HTML ที่มีอยู่โดยใช้ REST API ใน PHP

// ตัวอย่างโค้ดนี้สาธิตวิธีการเรนเดอร์ DOCX เป็น HTML
// เริ่มต้น API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// กำหนด ViewOptions
$viewOptions = new Model\ViewOptions();

// เส้นทางไฟล์อินพุต
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// ตั้งค่า ViewFormat
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// กำหนดตัวเลือก HTML
$renderOptions = new Model\HtmlOptions();

// ตั้งค่าให้ตอบสนอง
$renderOptions->setIsResponsive(true);

// ตั้งค่าสำหรับการพิมพ์
$renderOptions->setForPrinting(true);

// กำหนดตัวเลือกการเรนเดอร์
$viewOptions->setRenderOptions($renderOptions);

// สร้างคำขอดู
$request = new Requests\CreateViewRequest($viewOptions);

// สร้างมุมมอง
$response = $apiInstance->createView($request);

// โหลดไฟล์ HTML ที่มีอยู่
$domDoc = new DOMDocument();
$domDoc->loadHTMLFile("C:\Files\Viewer\Sample.html");
$body = $domDoc->GetElementsByTagName('body')->item(0);

// รับหน้า
$pages = $response->getPages();

// ฝังหน้า HTML ที่แสดงผลทั้งหมดลงในแท็ก body ของ HTML ที่มีอยู่
foreach ($pages as $page)
{
    // สร้างคำขอดาวน์โหลดไฟล์
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // ดาวน์โหลดหน้าแปลง
    $file = $fileApi->DownloadFile($downloadFileRequest);

    // อ่าน HTML จากไฟล์ดาวน์โหลด
    $html = file_get_contents($file->getRealPath());

    //เพิ่มเนื้อหาในส่วนย่อย
    $fragment = $domDoc->createDocumentFragment();
    $fragment->appendXML("<div>$html</div>");

    // ผนวกองค์ประกอบเข้ากับร่างกาย
    $body->appendChild($fragment);
}

// บันทึก HTML ที่อัปเดตแล้ว
$output = $domDoc->saveHTML();

// บันทึกไฟล์
file_put_contents("C:\Files\Viewer\Sample.html", $output);
ฝังเอกสาร Word ลงในหน้า HTML ที่มีอยู่

ฝังเอกสาร Word ลงในหน้า HTML ที่มีอยู่

แสดงเอกสาร Word ใน HTML พร้อมลายน้ำโดยใช้ PHP

เราสามารถเพิ่มข้อความลายน้ำในขณะที่แสดงเอกสาร Word ไปยังหน้า HTML โดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  1. ประการแรก สร้างอินสแตนซ์ของ ViewAPI
  2. จากนั้น สร้างอินสแตนซ์ของ ViewOptions
  3. จากนั้นระบุเส้นทางไฟล์อินพุต
  4. นอกจากนี้ ตั้งค่า ViewFormat เป็น “HTML”
  5. จากนั้น สร้างและกำหนดอินสแตนซ์ของลายน้ำ
  6. จากนั้นกำหนดขนาดลายน้ำและข้อความ
  7. หลังจากนั้น สร้าง CreateViewRequest ด้วย ViewOptions เป็นอาร์กิวเมนต์
  8. สุดท้าย แสดง Word เป็น HTML โดยใช้เมธอด createView()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแสดงเอกสาร Word ใน HTML พร้อมลายน้ำโดยใช้ REST API ใน PHP

// ตัวอย่างโค้ดนี้สาธิตวิธีการเรนเดอร์ Word ใน HTML ด้วย Watermark
// เริ่มต้น API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// กำหนด ViewOptions
$viewOptions = new Model\ViewOptions();

// เส้นทางไฟล์อินพุต
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");				
$viewOptions->setFileInfo($fileInfo);

// ตั้งค่า ViewFormat
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// กำหนดลายน้ำ
$watermark = new Model\Watermark();
$watermark->setText("This is sample text watermark!");
$watermark->setSize(100);
$watermark->setColor("Red");
$viewOptions->setWatermark($watermark);

// สร้างคำขอดู
$request = new Requests\CreateViewRequest($viewOptions);

// สร้างมุมมอง
$response = $apiInstance->createView($request);

// เสร็จแล้ว
echo "AddWatermark completed: ", count($response->getPages());
echo "\n";
แสดงเอกสาร Word ใน HTML พร้อมลายน้ำโดยใช้ PHP

แสดงเอกสาร Word ใน HTML พร้อมลายน้ำโดยใช้ PHP

ลองออนไลน์

โปรดลองใช้เครื่องมือแสดงผล DOCX ออนไลน์ฟรีต่อไปนี้ ซึ่งพัฒนาโดยใช้ API ข้างต้น https://products.groupdocs.app/viewer/docx

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีการ:

  • ดูเอกสาร Word ในเบราว์เซอร์ที่รองรับเว็บเพจ HTML โดยใช้ PHP;
  • ปรับแต่งการแสดงผลของ Word เป็น HTML
  • ฝังเอกสาร Word ลงในเว็บเพจ HTML ที่มีอยู่
  • ดูเนื้อหาของไฟล์ Word ใน HTML พร้อมลายน้ำ
  • อัปโหลดไฟล์ DOCX โดยทางโปรแกรมไปยังคลาวด์
  • ดาวน์โหลดไฟล์ HTML ที่แสดงผลจากคลาวด์

นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Viewer Cloud API โดยใช้ เอกสารประกอบ นอกจากนี้ เรายังมีส่วน ข้อมูลอ้างอิง API ที่ช่วยให้คุณแสดงภาพและโต้ตอบกับ API ของเราได้โดยตรงผ่านเบราว์เซอร์ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย