使用 PHP 在 HTML 页面中显示 Word 文档。

我们可以在云端以编程方式轻松呈现 HTML 网页中的 DOCDOCX 文件。它可用于在任何浏览器中查看 Word 文档而无需共享原始文件。在本文中,我们将学习如何在 PHP 中使用 REST API 在 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 文档的内容:

  1. 上传DOCX文件到云端
  2. 在HTML页面中显示Word文档
  3. 下载渲染文件

上传文件

首先,我们将使用下面给出的代码示例将 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 文档的内容:

  1. 首先,创建 ViewAPI 的一个实例。
  2. 接下来,创建 ViewOptions 的一个实例。
  3. 然后,提供输入文件路径。
  4. 此外,将 ViewFormat 设置为“HTML”。
  5. 接下来,初始化 HtmlOptions 对象。
  6. 然后,设置各种属性,如 IsResponsive、ForPrinting 等。
  7. 之后,使用 ViewOptions 作为参数创建 CreateViewRequest。
  8. 最后,使用 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";  
在 PHP 中使用 REST API 在 HTML 页面中显示 Word 文档

在 PHP 中使用 REST API 在 HTML 页面中显示 Word 文档。

我们可以通过应用以下选项自定义 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. 首先,创建 ViewAPIFileAPI 的实例。
  2. 接下来,创建 ViewOptions 的一个实例。
  3. 然后,提供输入文件路径。
  4. 此外,将 ViewFormat 设置为“HTML”。
  5. 接下来,初始化 HtmlOptions 对象。
  6. 然后,设置各种属性,如 IsResponsive、ForPrinting 等。
  7. 之后,使用 ViewOptions 作为参数创建 CreateViewRequest。
  8. 然后,使用 createView() 方法将 Word 呈现为 HTML。
  9. 接下来,加载现有的 HTML 文件并获取 body 标签的元素
  10. 然后,读取每个页面的 HTML 并附加到 body 标签中
  11. 之后,使用 saveHTML() 方法保存更新后的 HTML。
  12. 最后,使用 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);
将 Word 文档嵌入到现有 HTML 页面中

将 Word 文档嵌入到现有的 HTML 页面中。

使用 PHP 在带有水印的 HTML 中显示 Word 文档

我们可以按照以下步骤以编程方式在将 Word 文档呈现为 HTML 页面时添加水印文本:

  1. 首先,创建 ViewAPI 的一个实例。
  2. 接下来,创建 ViewOptions 的一个实例。
  3. 然后,提供输入文件路径。
  4. 此外,将 ViewFormat 设置为“HTML”。
  5. 接下来,创建并分配水印实例。
  6. 然后,设置水印大小和文字。
  7. 之后,使用 ViewOptions 作为参数创建 CreateViewRequest。
  8. 最后,使用 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";
使用 PHP 在带有水印的 HTML 中显示 Word 文档。

使用 PHP 在带有水印的 HTML 中显示 Word 文档。

在线试用

请试用以下使用上述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 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看