Maison >développement back-end >Problème PHP >Comment convertir un mot en image en php

Comment convertir un mot en image en php

藏色散人
藏色散人original
2020-10-19 11:01:296100parcourir

Comment convertir un mot en image en PHP : installez d'abord libreoffice sur le serveur ; puis utilisez la fonction exec pour appeler l'opération de ligne de commande ; enfin utilisez "xec("soffice --headless --invisible.. ."" Méthode pour convertir simplement des images en Word

Comment convertir un mot en image en php

Recommandé : "Tutoriel vidéo PHP"

linux, centos , php, word Méthode de conversion d'images (sans problèmes tels que le formatage, les caractères tronqués, etc.)

Au début, c'était le travail du client. Je ne m'attendais vraiment pas à être coincé par un tel problème. méthode. J'étais vraiment ivre. Après un long processus Après une semaine, j'ai finalement résolu ce problème, je vais présenter la méthode suivante à tout le monde

【Remarque】Cette méthode peut également convertir des ppt en images. Je ne l'ai pas essayé avec execl. Si vous avez le temps, vous pouvez l'essayer)

(Il n'y a aucun moyen de convertir directement, j'ai donc trouvé un compromis, convertissez-le d'abord en fichier pdf. , puis convertir le pdf en image)

Parlons d'abord de l'installation de l'environnement (j'ai également rencontré plusieurs échecs avant de résumer l'installation de l'environnement. * indique les opérations nécessaires. Si vous êtes un maître, veuillez l'éviter)

Environnement serveur : centos7

*Environnement intégré : Pagoda

Après avoir installé Pagoda, choisissez d'installer l'environnement intégré de LNMP (il est préférable d'installer php version 5.6 et supérieure)

Ce qu'il faut noter ici, c'est que vous devez utiliser l'environnement nginx (n'utilisez pas apache, il y a trop de pièges), et il y a l'environnement intégré de Pagoda. moi pourquoi, car il y a trop d'embûches. Tant que vous avez suffisamment de temps et qu'il n'y a pas de limite à la durée du travail, vous pouvez également essayer d'installer différents environnements vous-même (pour des raisons de rapidité, suivez simplement l'installation de mon environnement). étapes)

Attendez.

Une fois l'installation de l'environnement terminée, nous entrons dans la boutique de logiciels de pagode, cliquons sur les paramètres derrière php, puis installons l'extension imagemagick pour php > Attendez que l'installation de cette extension php soit terminée

Une fois l'installation terminée, on commence à installer libreoffice sur le serveur

Exécutez simplement le code suivant directement (le premier est installé et tout ira bien, des erreurs peuvent être signalées lors de l'installation des deux derniers, mais tant que le premier est installé, cela n'a en fait pas d'impact majeur)

1 yum install libreoffice
2 yum install libreoffice-headless
3 yum -y install  libreoffice-langpack-zh-Han*

Après avoir installé libreoffice, nous utilisons le code suivant pour testez si l'installation a réussi :

soffice --headless --invisible --convert-to pdf 1.docx

(Si vous convertissez des images ppt, changez simplement le fichier docx suivant en fichier pptx)

Si un fichier pdf portant le même nom que Word est généré dans le répertoire où la commande est exécutée, cela signifie que libreioffice a été installé avec succès

Pour l'utilisation Linux de libreoffice, vous pouvez Baidu par vous-même

En php, on peut utiliser l'exécutable () pour appeler des opérations en ligne de commande, ainsi que shell_exec() et d'autres fonctions (Baidu pour l'utilisation des fonctions)

Si la méthode exec() ne peut pas être exécutée dans la méthode php, cela signifie que php est désactivé ces méthodes. A ce moment, nous pouvons modifier la configuration dans le fichier php.ini

Recherchez la ligne commençant par Disable_functions = dans le fichier php.ini, puis supprimez les fonctions que vous souhaitez utiliser plus tard, puis redémarrez php. Ensuite, le php que nous avons écrit peut appeler exec() et d'autres fonctions

À ce stade, nous avons installé avec succès tous les environnements nécessaires pour convertir des mots en images

Comment convertir des mots en images pdf en php :

$result = exec("soffice --headless --invisible --convert-to pdf 1.docx");
echo json_encode($result);

Vous pouvez générer un fichier pdf du même nom en word dans le même répertoire

Comment convertir un pdf en images en php :

$result = pdf2png("/www/wwwroot/wwj.wangwenjie.club/1.pdf","/www/wwwroot/wwj.wangwenjie.club/");
function pdf2png($pdf, $path)
    {
        if (!extension_loaded('imagick')) {
            return false;
        }
        if (!file_exists($pdf)) {
            return false;
        }
        $im = new \Imagick();
        $im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
        $im->setCompressionQuality(100);
        $im->readImage($pdf);
        foreach ($im as $k => $v) {
            $v->setImageFormat('png');
            $fileName = $path . md5($k . time()) . '.png';
            if ($v->writeImage($fileName) == true) {
                $return[] = $fileName;
            }
        }
        return $return;
    }

Peut générer des images png dans le même répertoire (plusieurs images peuvent être générées sur plusieurs pages de pdf)

A propos de la conversion de pdf en images Vous pouvez vous référer à la méthode :

https://blog.csdn .net/jeff_love_marina/article/details/80838055 (L'environnement et les autres étapes ci-dessus ont été installés, il suffit donc de regarder la méthode de ce lien)

Jusqu'à présent, la méthode de conversion de mot en image en PHP sous Linux a été expliqué. Allez

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn