Compter le nombre de pages d'un fichier PDF en PHP seulement
J'ai besoin d'un moyen de compter le nombre de pages d'un document PDF en PHP. J'ai fait un peu de Googling et les seules choses que j'ai trouvé soit utiliser shell/scripts bash, perl, ou dans d'autres langues, mais j'ai besoin de quelque chose en PHP natif. Existe-il des bibliothèques ou des exemples de comment faire cela?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ImageMagick extension pour PHP. ImageMagick comprend les PDF, et vous pouvez utiliser le
identify
de commande pour extraire le nombre de pages. La fonction PHP est Imagick::identifyImage().Si vous utilisez Linux, c'est beaucoup plus rapide que d'utiliser
identify
pour obtenir le nombre de pages (surtout avec un nombre élevé de pages):Vous avez besoin pdfinfo installé.
which phpinfo
pour obtenir le chemin d'accès absolu. Également installer le fichier phpinfo sur le serveurJe sais que c'est assez vieux... mais si c'est important pour moi maintenant, il peut être utile à d'autres.
J'ai juste travaillé cette méthode d'obtenir des numéros de page, comme les méthodes énumérées ici sont inefficaces et très lent pour les grands fichiers Pdf.
Semble fonctionner très bien pour moi!
Je suis allé avec une approche combinée. Depuis que j'ai exec désactivé sur mon serveur, je voulais rester avec un PHP solution, donc fini avec cette:
Code:
Si il ne peut pas comprendre les choses, car il n'y a pas de Compter les balises, puis il utilise le imagick extension php. La raison pour laquelle je fais une approche à deux volets est parce que ce dernier est assez lent.
Vous pouvez essayer de fpdi (voir ici), comme vous pouvez le voir lors de la configuration de la source que vous obtenez en retour les numéros de page.
Essayez ceci :
La balise de nombre indique le nombre de pages dans les différents nœuds. Le nœud parent a la somme des autres dans sa balise de nombre, de sorte que ce script semble juste pour le max (c'est le nombre de pages).
C'est exactement ce que je veux:
J'ai juste travaillé cette méthode d'obtenir le pdf des numéros de page...
après l'obtention de l'pdf nombre de pages j'ai juste ajouter de pause pour le tout afin de ne pas aller dans une boucle infinie ici....
ce ne pas utiliser imagick:
À l'aide de PHP seulement peut entraîner l'installation de compliqué bibliothèques, le redémarrage d'Apache etc. et de nombreuses pur PHP-des moyens (comme l'ouverture des flux et l'utilisation de regex) sont inexactes.
Inclus réponse est la seule façon rapide et fiable je pense. Il utilise un seul fichier exécutable si ce n'est pas pour être installés (unix ou Windows) et un simple script PHP extraits de la sortie. La meilleure chose est que je n'ai pas vu un mauvais propriété pagecount encore!
Il peut être trouvé ici, y compris pourquoi les autres approches de "ne pas travailler":
Obtenir le nombre de pages dans un document PDF
Sur *nix environnement, vous pouvez utiliser:
Où pdftops doit être installé en tant que par défaut.
Ou Xethron suggéré:
pdfinfo filename.pdf | grep Pages: | awk '{print $2}'
est une bien meilleure solution!