我們可以在雲端以編程方式輕鬆呈現 HTML 網頁中的 DOC 或 DOCX 文件。它可以用於在任何瀏覽器中查看 Word 文檔而無需共享原始文件。在本文中,我們將學習如何在 PHP 中使用 REST API 在 HTML 頁面中顯示 Word 文檔。
本文應涵蓋以下主題:
- Word 到 HTML 查看器 REST API 和 PHP SDK
- 在 PHP 中使用 REST API 在 HTML 頁面中顯示 Word 文檔
- 將 Word 文檔嵌入現有的 HTML 頁面
- 使用 PHP 在帶有水印的 HTML 中顯示 Word 文檔
Word 到 HTML 查看器 REST API 和 PHP SDK
為了在 HTML 中呈現 Word 文檔,我們將使用 GroupDocs.Viewer Cloud 的 PHP SDK API。它允許以編程方式呈現和查看支持的文檔和圖像文件格式。請在控制台中使用以下命令安裝它:
composer require groupdocscloud/groupdocs-viewer-cloud
安裝後,請使用Composers的autoload來使用SDK,如下圖:
require_once('vendor/autoload.php');
在執行上述步驟之前,請從儀表板獲取您的客戶端 ID 和密碼。獲得 ID 和密碼後,添加如下所示的代碼:
// 此代碼示例演示如何在代碼中添加客戶端 Id 和 Secret。
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);
在 PHP 中使用 REST API 在 HTML 頁面中顯示 Word 文檔
我們可以按照下面給出的簡單步驟在 HTML 中顯示 Word 文檔的內容:
- 上傳DOCX文件到雲端
- 在HTML頁面中顯示Word文檔
- 下載渲染文件
上傳文件
首先,我們將使用下面給出的代碼示例將 DOCX 文件上傳到雲端:
// 此代碼示例演示如何將 DOCX 文件上傳到雲端。
// 初始化接口
$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);
因此,上傳的文件將在雲上儀表板的 文件部分 中可用。
使用 PHP 在 HTML 頁面中顯示 Word 文檔
現在,我們將按照以下步驟在 HTML 頁面上呈現或顯示上傳的 Word 文檔的內容:
- 首先,創建 ViewAPI 的一個實例。
- 接下來,創建 ViewOptions 的一個實例。
- 然後,提供輸入文件路徑。
- 此外,將 ViewFormat 設置為“HTML”。
- 接下來,初始化 HtmlOptions 對象。
- 然後,設置各種屬性,如 IsResponsive、ForPrinting 等。
- 之後,使用 ViewOptions 作為參數創建 CreateViewRequest。
- 最後,使用 createView() 方法將 Word 呈現為 HTML。
以下代碼示例顯示瞭如何在 PHP 中使用 REST API 以 HTML 格式顯示 Word 文件。
// 此代碼示例演示如何將 DOCX 呈現為 HTML。
// 初始化接口
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
// 定義視圖選項
$viewOptions = new Model\ViewOptions();
// 輸入文件路徑
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");
$viewOptions->setFileInfo($fileInfo);
// 設置視圖格式
$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 的呈現:
- 呈現特定範圍的頁面
// 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 頁面中:
- 首先,創建 ViewAPI 和 FileAPI 的實例。
- 接下來,創建 ViewOptions 的一個實例。
- 然後,提供輸入文件路徑。
- 此外,將 ViewFormat 設置為“HTML”。
- 接下來,初始化 HtmlOptions 對象。
- 然後,設置各種屬性,如 IsResponsive、ForPrinting 等。
- 之後,使用 ViewOptions 作為參數創建 CreateViewRequest。
- 然後,使用 createView() 方法將 Word 呈現為 HTML。
- 接下來,加載現有的 HTML 文件並獲取 body 標籤的元素
- 然後,讀取每個頁面的 HTML 並附加到 body 標籤中
- 之後,使用 saveHTML() 方法保存更新後的 HTML。
- 最後,使用 file\put\contents() 方法保存 HTML 文件。
以下代碼示例顯示瞭如何使用 PHP 中的 REST API 將 Word 文檔嵌入到現有的 HTML 頁面中。
// 此代碼示例演示如何將 DOCX 呈現為 HTML。
// 初始化接口
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
$fileApi = new GroupDocs\Viewer\FileApi($configuration);
// 定義視圖選項
$viewOptions = new Model\ViewOptions();
// 輸入文件路徑
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");
$viewOptions->setFileInfo($fileInfo);
// 設置視圖格式
$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 頁面嵌入到現有 HTML 的 body 標籤中
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);
使用 PHP 在帶有水印的 HTML 中顯示 Word 文檔
我們可以按照以下步驟以編程方式在將 Word 文檔呈現為 HTML 頁面時添加水印文本:
- 首先,創建 ViewAPI 的一個實例。
- 接下來,創建 ViewOptions 的一個實例。
- 然後,提供輸入文件路徑。
- 此外,將 ViewFormat 設置為“HTML”。
- 接下來,創建並分配水印實例。
- 然後,設置水印大小和文字。
- 之後,使用 ViewOptions 作為參數創建 CreateViewRequest。
- 最後,使用 createView() 方法將 Word 呈現為 HTML。
以下代碼示例顯示瞭如何在 PHP 中使用 REST API 顯示帶水印的 HTML Word 文檔。
// 此代碼示例演示如何使用水印在 HTML 中呈現 Word。
// 初始化接口
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
// 定義視圖選項
$viewOptions = new Model\ViewOptions();
// 輸入文件路徑
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");
$viewOptions->setFileInfo($fileInfo);
// 設置視圖格式
$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";
在線試用
請試用以下使用上述API開發的免費在線DOCX渲染工具。 https://products.groupdocs.app/viewer/docx
結論
在本文中,我們學習瞭如何:
- 使用 PHP 在支持 HTML 網頁的瀏覽器中查看 Word 文檔;
- 自定義 Word 到 HTML 的呈現;
- 將 Word 文檔嵌入到現有的 HTML 網頁中;
- 查看帶水印的 HTML Word 文件的內容;
- 以編程方式將 DOCX 文件上傳到雲端;
- 從雲端下載呈現的 HTML 文件。
此外,您可以使用 文檔 了解有關 GroupDocs.Viewer Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。