我们可以在云端以编程方式轻松呈现 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 并与之交互。如有任何歧义,请随时在论坛上与我们联系。