Exibir documento do Word em página HTML usando PHP.

Podemos renderizar facilmente arquivos DOC ou DOCX em páginas da Web HTML programaticamente na nuvem. Pode ser útil para visualizar documentos do Word em qualquer navegador sem compartilhar os arquivos originais. Neste artigo, aprenderemos como exibir um documento do Word em uma página HTML usando uma API REST em PHP.

Os seguintes tópicos serão abordados neste artigo:

Word para HTML Viewer REST API e PHP SDK

Para renderizar documentos do Word em HTML, usaremos a API PHP SDK of GroupDocs.Viewer Cloud. Ele permite a renderização e visualização de formatos de arquivo de imagem e documento suportados programaticamente. Instale-o usando o seguinte comando no console:

composer require groupdocscloud/groupdocs-viewer-cloud

Após a instalação, use o autoload dos compositores para usar o SDK conforme mostrado abaixo:

require_once('vendor/autoload.php');

Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

// Este exemplo de código demonstra como adicionar o ID e o segredo do cliente no código.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

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

// Inicializando a configuração
$configuration = new GroupDocs\Viewer\Configuration();

// Definindo as configurações
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

Exibir documento do Word em página HTML usando API REST em PHP

Podemos exibir o conteúdo de um documento do Word em HTML seguindo as etapas simples abaixo:

  1. Carregar o arquivo DOCX para a nuvem
  2. Exibir documento do Word na página HTML
  3. Baixar o arquivo renderizado

Carregue o Documento

Em primeiro lugar, faremos o upload do arquivo DOCX para a nuvem usando o exemplo de código abaixo:

// Este exemplo de código demonstra como carregar um arquivo DOCX para a nuvem.
// Inicializar a API
$apiInstance = new GroupDocs\Viewer\FileApi($configuration);

// Caminho do arquivo de entrada
$file = "C:\\Files\\Viewer\\input.docx";

// Solicitação de upload de arquivo
$request = new GroupDocs\Viewer\Model\Requests\uploadFileRequest("input.docx", $file);

// Subir arquivo
$response = $apiInstance->uploadFile($request);

Como resultado, o arquivo carregado estará disponível na seção de arquivos do painel na nuvem.

Exibir documento do Word em página HTML usando PHP

Agora, renderizaremos ou exibiremos o conteúdo de um documento do Word carregado em páginas HTML seguindo as etapas abaixo:

  1. Em primeiro lugar, crie uma instância do ViewAPI.
  2. Em seguida, crie uma instância do ViewOptions.
  3. Em seguida, forneça o caminho do arquivo de entrada.
  4. Além disso, defina o ViewFormat como “HTML”.
  5. Em seguida, inicialize o objeto HtmlOptions.
  6. Em seguida, defina várias propriedades, como IsResponsive, ForPrinting, etc.
  7. Depois disso, crie CreateViewRequest com ViewOptions como argumento.
  8. Finalmente, renderize Word para HTML usando o método createView().

O exemplo de código a seguir mostra como exibir um arquivo do Word em HTML usando uma API REST em PHP.

// Este exemplo de código demonstra como renderizar DOCX para HTML.
// Inicializar a API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Definir Opções de Visualização
$viewOptions = new Model\ViewOptions();

// Caminho do arquivo de entrada
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// Definir Formato de Visualização
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Definir opções de HTML
$renderOptions = new Model\HtmlOptions();

// Defina-o para ser responsivo
$renderOptions->setIsResponsive(true);

// Definir para impressão
$renderOptions->setForPrinting(true);

// Atribuir opções de renderização
$viewOptions->setRenderOptions($renderOptions);

// Criar solicitação de visualização
$request = new Requests\CreateViewRequest($viewOptions);

// Criar visualização
$response = $apiInstance->createView($request);

// Feito
echo "HtmlViewerResponsiveLayout completed: ", count($response->getPages());
echo "\n";  
Exibir documento do Word em página HTML usando API REST em PHP

Exibir documento do Word em página HTML usando API REST em PHP.

Podemos personalizar a renderização do Word para HTML aplicando as seguintes opções:

  • Renderizar intervalo específico de páginas
// 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);
  • Renderizar apenas as páginas selecionadas
// Pass specific page numbers to render. 
// This will render only page number 1 and 3.
$renderOptions->setPagesToRender([1, 3]);
  • Exibir páginas em uma ordem específica
// Pass page numbers in the order you want to render them
$renderOptions->setPagesToRender([2, 1]);
  • Renderizar documento com comentários
$renderOptions->setRenderComments(true);

Baixar páginas HTML

O exemplo de código acima salvará as páginas HTML renderizadas na nuvem. Ele pode ser baixado usando o seguinte exemplo de código:

// Este exemplo de código demonstra como baixar as páginas HTML renderizadas da nuvem.
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// Obtenha todas as páginas
$pages = $response->getPages();

// Salve as páginas uma a uma
foreach ($pages as $page)
{
    // Criar solicitação de arquivo de download
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // ⇬ Fazer download do arquivo
    $file = $fileApi->DownloadFile($downloadFileRequest);
    echo "$page downloaded!";
    echo "\n"; 
}

Incorporar documento do Word em uma página HTML existente

Também podemos incorporar um documento do Word em uma página HTML existente seguindo as etapas abaixo:

  1. Em primeiro lugar, crie instâncias de ViewAPI e FileAPI.
  2. Em seguida, crie uma instância do ViewOptions.
  3. Em seguida, forneça o caminho do arquivo de entrada.
  4. Além disso, defina o ViewFormat como “HTML”.
  5. Em seguida, inicialize o objeto HtmlOptions.
  6. Em seguida, defina várias propriedades, como IsResponsive, ForPrinting, etc.
  7. Depois disso, crie CreateViewRequest com ViewOptions como argumento.
  8. Em seguida, renderize Word para HTML usando o método createView().
  9. Em seguida, carregue um arquivo HTML existente e obtenha os elementos da tag body
  10. Em seguida, leia o HTML de cada página e anexe na tag do corpo
  11. Depois disso, salve o HTML atualizado usando o método saveHTML().
  12. Finalmente, salve o arquivo HTML usando o método file\put\contents().

O exemplo de código a seguir mostra como incorporar um documento do Word em uma página HTML existente usando uma API REST em PHP.

// This code example demonstrates how to render DOCX to HTML.
// Initialize the api
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// Define ViewOptions
$viewOptions = new Model\ViewOptions();

// Input file path
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// Set ViewFormat
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Define HTML options
$renderOptions = new Model\HtmlOptions();

// Set it to be responsive
$renderOptions->setIsResponsive(true);

// Set for printing
$renderOptions->setForPrinting(true);

// Assign render options
$viewOptions->setRenderOptions($renderOptions);

// Create view request
$request = new Requests\CreateViewRequest($viewOptions);

// Create view
$response = $apiInstance->createView($request);

// Load an existing HTML file
$domDoc = new DOMDocument();
$domDoc->loadHTMLFile("C:\Files\Viewer\Sample.html");
$body = $domDoc->GetElementsByTagName('body')->item(0);

// Get pages
$pages = $response->getPages();

// Embed all rendered HTML pages into body tag of existing HTML
foreach ($pages as $page)
{
    // Create download file request
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // Download converted page
    $file = $fileApi->DownloadFile($downloadFileRequest);

    // Read HTML from download file
    $html = file_get_contents($file->getRealPath());

    //Add content to fragment
    $fragment = $domDoc->createDocumentFragment();
    $fragment->appendXML("<div>$html</div>");

    // Append the element to body
    $body->appendChild($fragment);
}

// Save updated HTML
$output = $domDoc->saveHTML();

// Save the file
file_put_contents("C:\Files\Viewer\Sample.html", $output);
Embed-Word-Document-into-an-Existing-HTML-Page

Embed a Word Document into an Existing HTML Page.

Display Word Document in HTML with Watermark using PHP

Podemos adicionar um texto de marca d’água ao renderizar documentos do Word em páginas HTML programaticamente seguindo as etapas abaixo:

  1. Em primeiro lugar, crie uma instância do ViewAPI.
  2. Em seguida, crie uma instância do ViewOptions.
  3. Em seguida, forneça o caminho do arquivo de entrada.
  4. Além disso, defina o ViewFormat como “HTML”.
  5. Em seguida, crie e atribua uma instância da marca d’água.
  6. Em seguida, defina o tamanho e o texto da marca d’água.
  7. Depois disso, crie CreateViewRequest com ViewOptions como argumento.
  8. Finalmente, renderize Word para HTML usando o método createView().

O exemplo de código a seguir mostra como exibir um documento do Word em HTML com uma marca d’água usando uma API REST em PHP.

// Este exemplo de código demonstra como renderizar o Word em HTML com marca d'água.
// Inicializar a API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Definir Opções de Visualização
$viewOptions = new Model\ViewOptions();

// Caminho do arquivo de entrada
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");				
$viewOptions->setFileInfo($fileInfo);

// Definir Formato de Visualização
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Definir marca d'água
$watermark = new Model\Watermark();
$watermark->setText("This is sample text watermark!");
$watermark->setSize(100);
$watermark->setColor("Red");
$viewOptions->setWatermark($watermark);

// Criar solicitação de visualização
$request = new Requests\CreateViewRequest($viewOptions);

// Criar visualização
$response = $apiInstance->createView($request);

// Feito
echo "AddWatermark completed: ", count($response->getPages());
echo "\n";
Exibir documento do Word em HTML com marca d'água usando PHP.

Exibir documento do Word em HTML com marca d’água usando PHP.

Experimente on-line

Experimente a seguinte ferramenta de renderização DOCX on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/viewer/docx

Conclusão

Neste artigo, aprendemos como:

  • visualize o documento do Word em uma página da Web HTML suportada pelo navegador usando PHP;
  • personalize a renderização do Word para HTML;
  • incorporar documento do Word em uma página da Web HTML existente;
  • visualizar o conteúdo de um arquivo do Word em HTML com marca d’água;
  • carregar programaticamente o arquivo DOCX para a nuvem;
  • baixe os arquivos HTML renderizados da nuvem.

Além disso, você pode aprender mais sobre GroupDocs.Viewer Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também