Muestre un documento de Word en una página HTML usando PHP.

Podemos representar fácilmente archivos DOC o DOCX en páginas web HTML mediante programación en la nube. Puede ser útil para ver documentos de Word en cualquier navegador sin compartir los archivos originales. En este artículo, aprenderemos cómo mostrar un documento de Word en una página HTML utilizando una API REST en PHP.

En este artículo se tratarán los siguientes temas:

Word to HTML Viewer REST API y PHP SDK

Para representar documentos de Word en HTML, utilizaremos la API PHP SDK de GroupDocs.Viewer Cloud. Permite renderizar y visualizar formatos de archivo de imágenes y documentos admitidos mediante programación. Instálalo usando el siguiente comando en la consola:

composer require groupdocscloud/groupdocs-viewer-cloud

Después de la instalación, use la carga automática de los compositores para usar el SDK como se muestra a continuación:

require_once('vendor/autoload.php');

Por favor, obtenga su ID de cliente y secreto del tablero antes de seguir los pasos mencionados. Una vez que tenga su ID y secreto, agregue el código como se muestra a continuación:

// Este ejemplo de código muestra cómo agregar el ID y el secreto del cliente en el código.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

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

// Inicializando la configuración
$configuration = new GroupDocs\Viewer\Configuration();

// Establecer las configuraciones
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

Muestre un documento de Word en una página HTML usando la API REST en PHP

Podemos mostrar el contenido de un documento de Word en HTML siguiendo los sencillos pasos que se indican a continuación:

  1. Subir el archivo DOCX a la nube
  2. Mostrar documento de Word en página HTML
  3. Descargar el archivo renderizado

Sube el documento

En primer lugar, cargaremos el archivo DOCX en la nube utilizando el ejemplo de código que se proporciona a continuación:

// Este ejemplo de código demuestra cómo cargar un archivo DOCX en la nube.
// Inicializar la API
$apiInstance = new GroupDocs\Viewer\FileApi($configuration);

// Ruta del archivo de entrada
$file = "C:\\Files\\Viewer\\input.docx";

// Subir solicitud de archivo
$request = new GroupDocs\Viewer\Model\Requests\uploadFileRequest("input.docx", $file);

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

Como resultado, el archivo cargado estará disponible en la sección de archivos del tablero en la nube.

Mostrar documento de Word en página HTML usando PHP

Ahora, representaremos o mostraremos el contenido de un documento de Word cargado en páginas HTML siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de ViewAPI.
  2. A continuación, cree una instancia de ViewOptions.
  3. Luego, proporcione la ruta del archivo de entrada.
  4. Además, configure ViewFormat como “HTML”.
  5. A continuación, inicialice el objeto HtmlOptions.
  6. Luego, configure varias propiedades como IsResponsive, ForPrinting, etc.
  7. Después de eso, cree CreateViewRequest con ViewOptions como argumento.
  8. Finalmente, renderice Word a HTML usando el método createView().

El siguiente ejemplo de código muestra cómo mostrar un archivo de Word en HTML usando una API REST en PHP.

// Este ejemplo de código demuestra cómo convertir DOCX en HTML.
// Inicializar la API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Definir opciones de vista
$viewOptions = new Model\ViewOptions();

// Ruta del archivo de entrada
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// Establecer formato de vista
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Definir opciones HTML
$renderOptions = new Model\HtmlOptions();

// Configúralo para que responda
$renderOptions->setIsResponsive(true);

// Establecer para imprimir
$renderOptions->setForPrinting(true);

// Asignar opciones de renderizado
$viewOptions->setRenderOptions($renderOptions);

// Crear solicitud de vista
$request = new Requests\CreateViewRequest($viewOptions);

// Crear vista
$response = $apiInstance->createView($request);

// Hecho
echo "HtmlViewerResponsiveLayout completed: ", count($response->getPages());
echo "\n";  
Muestre un documento de Word en una página HTML usando la API REST en PHP

Muestre un documento de Word en una página HTML usando la API REST en PHP.

Podemos personalizar la representación de Word a HTML aplicando las siguientes opciones:

  • Renderizar rango 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 solo las páginas seleccionadas
// Pass specific page numbers to render. 
// This will render only page number 1 and 3.
$renderOptions->setPagesToRender([1, 3]);
  • Ver páginas en un orden específico
// Pass page numbers in the order you want to render them
$renderOptions->setPagesToRender([2, 1]);
  • Renderizar documento con comentarios
$renderOptions->setRenderComments(true);

Descargar páginas HTML

El ejemplo de código anterior guardará las páginas HTML renderizadas en la nube. Se puede descargar usando el siguiente ejemplo de código:

// Este ejemplo de código demuestra cómo descargar las páginas HTML renderizadas desde la nube.
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// Obtener todas las páginas
$pages = $response->getPages();

// Guardar páginas una por una
foreach ($pages as $page)
{
    // Crear solicitud de archivo de descarga
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // Descargar archivo
    $file = $fileApi->DownloadFile($downloadFileRequest);
    echo "$page downloaded!";
    echo "\n"; 
}

Incrustar documento de Word en una página HTML existente

También podemos incrustar un documento de Word en una página HTML existente siguiendo los pasos que se indican a continuación:

  1. En primer lugar, cree instancias de ViewAPI y FileAPI.
  2. A continuación, cree una instancia de ViewOptions.
  3. Luego, proporcione la ruta del archivo de entrada.
  4. Además, configure ViewFormat como “HTML”.
  5. A continuación, inicialice el objeto HtmlOptions.
  6. Luego, configure varias propiedades como IsResponsive, ForPrinting, etc.
  7. Después de eso, cree CreateViewRequest con ViewOptions como argumento.
  8. Luego, renderice Word a HTML usando el método createView().
  9. A continuación, cargue un archivo HTML existente y obtenga elementos de la etiqueta del cuerpo
  10. Luego, lea el HTML de cada página y agréguelo a la etiqueta del cuerpo
  11. Después de eso, guarde el HTML actualizado usando el método saveHTML().
  12. Finalmente, guarde el archivo HTML usando el método file\put\contents().

El siguiente ejemplo de código muestra cómo incrustar un documento de Word en una página HTML existente mediante una API REST en PHP.

// Este ejemplo de código demuestra cómo convertir DOCX en HTML.
// Inicializar la API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// Definir opciones de vista
$viewOptions = new Model\ViewOptions();

// Ruta del archivo de entrada
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// Establecer formato de vista
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Definir opciones HTML
$renderOptions = new Model\HtmlOptions();

// Configúralo para que responda
$renderOptions->setIsResponsive(true);

// Establecer para imprimir
$renderOptions->setForPrinting(true);

// Asignar opciones de renderizado
$viewOptions->setRenderOptions($renderOptions);

// Crear solicitud de vista
$request = new Requests\CreateViewRequest($viewOptions);

// Crear vista
$response = $apiInstance->createView($request);

// Cargar un archivo HTML existente
$domDoc = new DOMDocument();
$domDoc->loadHTMLFile("C:\Files\Viewer\Sample.html");
$body = $domDoc->GetElementsByTagName('body')->item(0);

// Obtener páginas
$pages = $response->getPages();

// Incruste todas las páginas HTML procesadas en la etiqueta del cuerpo del HTML existente
foreach ($pages as $page)
{
    // Crear solicitud de archivo de descarga
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // Descargar página convertida
    $file = $fileApi->DownloadFile($downloadFileRequest);

    // Leer HTML desde el archivo de descarga
    $html = file_get_contents($file->getRealPath());

    //Agregar contenido al fragmento
    $fragment = $domDoc->createDocumentFragment();
    $fragment->appendXML("<div>$html</div>");

    // Agregar el elemento al cuerpo
    $body->appendChild($fragment);
}

// Guardar HTML actualizado
$output = $domDoc->saveHTML();

// Guarda el archivo
file_put_contents("C:\Files\Viewer\Sample.html", $output);
Incrustar-documento-de-Word-en-una-página-HTML-existente

Incruste un documento de Word en una página HTML existente.

Mostrar documento de Word en HTML con marca de agua usando PHP

Podemos agregar un texto de marca de agua mientras procesamos documentos de Word en páginas HTML mediante programación siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de ViewAPI.
  2. A continuación, cree una instancia de ViewOptions.
  3. Luego, proporcione la ruta del archivo de entrada.
  4. Además, configure ViewFormat como “HTML”.
  5. A continuación, cree y asigne una instancia de la marca de agua.
  6. Luego, configure el tamaño y el texto de la marca de agua.
  7. Después de eso, cree CreateViewRequest con ViewOptions como argumento.
  8. Finalmente, renderice Word a HTML usando el método createView().

El siguiente ejemplo de código muestra cómo mostrar un documento de Word en HTML con una marca de agua mediante una API REST en PHP.

// Este ejemplo de código demuestra cómo representar Word en HTML con marca de agua.
// Inicializar la API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Definir opciones de vista
$viewOptions = new Model\ViewOptions();

// Ruta del archivo de entrada
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");				
$viewOptions->setFileInfo($fileInfo);

// Establecer formato de vista
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

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

// Crear solicitud de vista
$request = new Requests\CreateViewRequest($viewOptions);

// Crear vista
$response = $apiInstance->createView($request);

// Hecho
echo "AddWatermark completed: ", count($response->getPages());
echo "\n";
Mostrar documento de Word en HTML con marca de agua usando PHP.

Mostrar documento de Word en HTML con marca de agua usando PHP.

Prueba en línea

Pruebe la siguiente herramienta de representación DOCX en línea gratuita, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/viewer/docx

Conclusión

En este artículo, hemos aprendido a:

  • ver el documento de Word en una página web HTML compatible con el navegador utilizando PHP;
  • personalizar la representación de Word en HTML;
  • incrustar un documento de Word en una página web HTML existente;
  • ver el contenido de un archivo de Word en HTML con marca de agua;
  • cargue mediante programación el archivo DOCX en la nube;
  • descargue los archivos HTML renderizados de la nube.

Además, puede obtener más información sobre GroupDocs.Viewer Cloud API utilizando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también