Отображение документа Word на HTML-странице с использованием PHP.

Мы можем легко отображать файлы DOC или DOCX на веб-страницах HTML программно в облаке. Это может быть полезно при просмотре документов Word в любом браузере без совместного использования исходных файлов. В этой статье мы узнаем, как отобразить документ Word на HTML-странице с помощью REST API в PHP.

В этой статье должны быть раскрыты следующие темы:

Средство просмотра Word в HTML REST API и PHP SDK

Для рендеринга документов Word в формате HTML мы будем использовать PHP SDK для GroupDocs.Viewer Cloud API. Он позволяет отображать и просматривать поддерживаемые форматы файлов документов и изображений программно. Пожалуйста, установите его с помощью следующей команды в консоли:

composer require groupdocscloud/groupdocs-viewer-cloud

После установки используйте autoload Composers, чтобы использовать SDK, как показано ниже:

require_once('vendor/autoload.php');

Пожалуйста, получите свой идентификатор клиента и секрет из панели управления, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

// В этом примере кода показано, как добавить идентификатор клиента и секрет в код.
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);

// Установить формат просмотра
$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 и получите элементы тега body.
  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);

// Установить формат просмотра
$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 с водяным знаком.
// Инициализировать API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Определить ViewOptions
$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";
Отображение документа 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-файлы из облака.

Кроме того, вы можете узнать больше об облачном API GroupDocs.Viewer с помощью документации. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также