Afficher un document Word dans une page HTML à l'aide de PHP.

Nous pouvons facilement restituer des fichiers DOC ou DOCX dans des pages Web HTML par programmation sur le cloud. Cela peut être utile pour visualiser des documents Word dans n’importe quel navigateur sans partager les fichiers d’origine. Dans cet article, nous allons apprendre à afficher un document Word dans une page HTML à l’aide d’une API REST en PHP.

Les sujets suivants seront traités dans cet article :

Word vers HTML Viewer API REST et PHP SDK

Pour rendre les documents Word au format HTML, nous utiliserons l’API PHP SDK of GroupDocs.Viewer Cloud. Il permet le rendu et l’affichage des formats de documents et de fichiers image pris en charge par programmation. Veuillez l’installer à l’aide de la commande suivante dans la console :

composer require groupdocscloud/groupdocs-viewer-cloud

Après l’installation, veuillez utiliser autoload des compositeurs pour utiliser le SDK comme indiqué ci-dessous :

require_once('vendor/autoload.php');

Veuillez obtenir votre ID client et votre secret à partir du tableau de bord avant de suivre les étapes mentionnées. Une fois que vous avez votre identifiant et votre secret, ajoutez le code comme indiqué ci-dessous :

// Cet exemple de code montre comment ajouter un ID client et un secret dans le code.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

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

// Initialisation de la configuration
$configuration = new GroupDocs\Viewer\Configuration();

// Définition des configurations
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

Afficher un document Word dans une page HTML à l’aide de l’API REST en PHP

Nous pouvons afficher le contenu d’un document Word en HTML en suivant les étapes simples ci-dessous :

  1. Télécharger le fichier DOCX dans le cloud
  2. Afficher le document Word dans la page HTML
  3. Télécharger le fichier rendu

Télécharger le document

Tout d’abord, nous allons télécharger le fichier DOCX sur le cloud à l’aide de l’exemple de code ci-dessous :

// Cet exemple de code montre comment télécharger un fichier DOCX dans le cloud.
// Initialiser l'API
$apiInstance = new GroupDocs\Viewer\FileApi($configuration);

// Chemin du fichier d'entrée
$file = "C:\\Files\\Viewer\\input.docx";

// Demande de téléchargement de fichier
$request = new GroupDocs\Viewer\Model\Requests\uploadFileRequest("input.docx", $file);

// Téléverser un fichier
$response = $apiInstance->uploadFile($request);

Par conséquent, le fichier téléchargé sera disponible dans la section des fichiers du tableau de bord sur le cloud.

Afficher un document Word dans une page HTML à l’aide de PHP

Maintenant, nous allons restituer ou afficher le contenu d’un document Word téléchargé sur des pages HTML en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de ViewAPI.
  2. Ensuite, créez une instance de ViewOptions.
  3. Ensuite, indiquez le chemin du fichier d’entrée.
  4. Définissez également le ViewFormat sur “HTML”.
  5. Ensuite, initialisez l’objet HtmlOptions.
  6. Ensuite, définissez diverses propriétés telles que IsResponsive, ForPrinting, etc.
  7. Après cela, créez CreateViewRequest avec ViewOptions comme argument.
  8. Enfin, affichez Word en HTML à l’aide de la méthode createView().

L’exemple de code suivant montre comment afficher un fichier Word en HTML à l’aide d’une API REST en PHP.

// Cet exemple de code montre comment rendre DOCX en HTML.
// Initialiser l'API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Définir les options d'affichage
$viewOptions = new Model\ViewOptions();

// Chemin du fichier d'entrée
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// Définir le format d'affichage
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Définir les options HTML
$renderOptions = new Model\HtmlOptions();

// Réglez-le pour qu'il soit réactif
$renderOptions->setIsResponsive(true);

// Set pour l'impression
$renderOptions->setForPrinting(true);

// Attribuer des options de rendu
$viewOptions->setRenderOptions($renderOptions);

// Créer une demande de vue
$request = new Requests\CreateViewRequest($viewOptions);

// Créer une vue
$response = $apiInstance->createView($request);

// Fait
echo "HtmlViewerResponsiveLayout completed: ", count($response->getPages());
echo "\n";  
Afficher un document Word dans une page HTML à l'aide de l'API REST en PHP

Afficher le document Word dans la page HTML à l’aide de l’API REST en PHP.

Nous pouvons personnaliser le rendu de Word vers HTML en appliquant les options suivantes :

  • Afficher une plage de pages spécifique
// 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);
  • Rendre les pages sélectionnées uniquement
// Pass specific page numbers to render. 
// This will render only page number 1 and 3.
$renderOptions->setPagesToRender([1, 3]);
  • Afficher les pages dans un ordre spécifique
// Pass page numbers in the order you want to render them
$renderOptions->setPagesToRender([2, 1]);
  • Rendre le document avec des commentaires
$renderOptions->setRenderComments(true);

Télécharger les pages HTML

L’exemple de code ci-dessus enregistrera la ou les pages HTML rendues sur le cloud. Il peut être téléchargé à l’aide de l’exemple de code suivant :

// Cet exemple de code montre comment télécharger les pages HTML rendues à partir du cloud.
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// Obtenir toutes les pages
$pages = $response->getPages();

// Enregistrer les pages une par une
foreach ($pages as $page)
{
    // Créer une demande de fichier de téléchargement
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // Télécharger un fichier
    $file = $fileApi->DownloadFile($downloadFileRequest);
    echo "$page downloaded!";
    echo "\n"; 
}

Intégrer un document Word dans une page HTML existante

Nous pouvons également intégrer un document Word dans une page HTML existante en suivant les étapes ci-dessous :

  1. Tout d’abord, créez des instances de ViewAPI et FileAPI.
  2. Ensuite, créez une instance de ViewOptions.
  3. Ensuite, indiquez le chemin du fichier d’entrée.
  4. Définissez également le ViewFormat sur “HTML”.
  5. Ensuite, initialisez l’objet HtmlOptions.
  6. Ensuite, définissez diverses propriétés telles que IsResponsive, ForPrinting, etc.
  7. Après cela, créez CreateViewRequest avec ViewOptions comme argument.
  8. Ensuite, affichez Word en HTML à l’aide de la méthode createView().
  9. Ensuite, chargez un fichier HTML existant et récupérez les éléments de la balise body
  10. Ensuite, lisez le code HTML de chaque page et ajoutez-le dans la balise body
  11. Après cela, enregistrez le code HTML mis à jour à l’aide de la méthode saveHTML().
  12. Enfin, enregistrez le fichier HTML en utilisant la méthode file\put\contents().

L’exemple de code suivant montre comment incorporer un document Word dans une page HTML existante à l’aide d’une API REST en PHP.

// Cet exemple de code montre comment rendre DOCX en HTML.
// Initialiser l'API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);
$fileApi = new GroupDocs\Viewer\FileApi($configuration);

// Définir les options d'affichage
$viewOptions = new Model\ViewOptions();

// Chemin du fichier d'entrée
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");	
$viewOptions->setFileInfo($fileInfo);

// Définir le format d'affichage
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Définir les options HTML
$renderOptions = new Model\HtmlOptions();

// Réglez-le pour qu'il soit réactif
$renderOptions->setIsResponsive(true);

// Set pour l'impression
$renderOptions->setForPrinting(true);

// Attribuer des options de rendu
$viewOptions->setRenderOptions($renderOptions);

// Créer une demande de vue
$request = new Requests\CreateViewRequest($viewOptions);

// Créer une vue
$response = $apiInstance->createView($request);

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

// Obtenir des pages
$pages = $response->getPages();

// Intégrer toutes les pages HTML rendues dans la balise body du code HTML existant
foreach ($pages as $page)
{
    // Créer une demande de fichier de téléchargement
    $downloadFileRequest = new GroupDocs\Viewer\Model\Requests\DownloadFileRequest($page->getPath(), "");

    // Télécharger la page convertie
    $file = $fileApi->DownloadFile($downloadFileRequest);

    // Lire le HTML à partir du fichier de téléchargement
    $html = file_get_contents($file->getRealPath());

    //Ajouter du contenu au fragment
    $fragment = $domDoc->createDocumentFragment();
    $fragment->appendXML("<div>$html</div>");

    // Ajouter l'élément au corps
    $body->appendChild($fragment);
}

// Enregistrer le code HTML mis à jour
$output = $domDoc->saveHTML();

// Enregistrez le fichier
file_put_contents("C:\Files\Viewer\Sample.html", $output);
Intégrer un document Word dans une page HTML existante

Intégrez un document Word dans une page HTML existante.

Afficher un document Word en HTML avec filigrane en utilisant PHP

Nous pouvons ajouter un texte en filigrane lors du rendu de documents Word sur des pages HTML par programmation en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de ViewAPI.
  2. Ensuite, créez une instance de ViewOptions.
  3. Ensuite, indiquez le chemin du fichier d’entrée.
  4. Définissez également le ViewFormat sur “HTML”.
  5. Ensuite, créez et attribuez une instance du filigrane.
  6. Ensuite, définissez la taille et le texte du filigrane.
  7. Après cela, créez CreateViewRequest avec ViewOptions comme argument.
  8. Enfin, affichez Word en HTML à l’aide de la méthode createView().

L’exemple de code suivant montre comment afficher un document Word au format HTML avec un filigrane à l’aide d’une API REST en PHP.

// Cet exemple de code montre comment rendre Word en HTML avec Watermark.
// Initialiser l'API
$apiInstance = new GroupDocs\Viewer\ViewApi($configuration);

// Définir les options d'affichage
$viewOptions = new Model\ViewOptions();

// Chemin du fichier d'entrée
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("input.docx");				
$viewOptions->setFileInfo($fileInfo);

// Définir le format d'affichage
$viewOptions->setViewFormat(Model\ViewOptions::VIEW_FORMAT_HTML);

// Définir le filigrane
$watermark = new Model\Watermark();
$watermark->setText("This is sample text watermark!");
$watermark->setSize(100);
$watermark->setColor("Red");
$viewOptions->setWatermark($watermark);

// Créer une demande de vue
$request = new Requests\CreateViewRequest($viewOptions);

// Créer une vue
$response = $apiInstance->createView($request);

// Fait
echo "AddWatermark completed: ", count($response->getPages());
echo "\n";
Afficher le document Word en HTML avec filigrane en utilisant PHP.

Afficher le document Word en HTML avec filigrane en utilisant PHP.

Essayez en ligne

Veuillez essayer l’outil de rendu DOCX en ligne gratuit suivant, qui est développé à l’aide de l’API ci-dessus. https://products.groupdocs.app/viewer/docx

Conclusion

Dans cet article, nous avons appris à :

  • afficher un document Word dans une page Web HTML prise en charge par un navigateur à l’aide de PHP ;
  • personnaliser le rendu de Word en HTML ;
  • intégrer un document Word dans une page Web HTML existante ;
  • visualiser le contenu d’un fichier Word en HTML avec filigrane ;
  • télécharger par programmation le fichier DOCX dans le cloud ;
  • télécharger les fichiers HTML rendus à partir du cloud.

En outre, vous pouvez en savoir plus sur l’API GroupDocs.Viewer Cloud à l’aide de la documentation. Nous fournissons également une section API Reference qui vous permet de visualiser et d’interagir avec nos API directement via le navigateur. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également