Afficher le nombre de pages d’un fichier PDF en PHP, avec WordPress, format Toolset

par Jean - netologiste.com | Mis à jour le 2 Déc 2023 | Non classé, WordPress | 0 commentaires

Voici des solutions pour afficher le nombre de pages et le poids d’un fichier document PDF en PHP, avec WordPress, dans le format utilisé par Toolset pour utiliser ces fonctions en tant que shortcode Toolset :

function sizefile_func( $atts, $content ) {
   $result = "";
   extract(shortcode_atts(array(
   'file' => 'Empty'
   ), $atts));
   $file = str_replace("http://domaine.com", ".", $file); // get path without URL, starts with "." ; voir pour remplacer par get relative path
   if (is_file($file)) {
      $bytes = filesize($file);
      $s = array('b', 'Kb', 'Mb', 'Gb');
      $e = floor(log($bytes)/log(1024));
      $result = sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));
   } else {
      $result = $file." is not a file";
   }
   return $result;
}
add_shortcode( 'sizefile', 'sizefile_func' );
function getpdfpages_func($atts, $content)
{
   $cmd = "/usr/local/bin/pdfinfo"; // Linux path
   $result = "";
   extract(shortcode_atts(array(
   'file' => 'Empty'
   ), $atts));
   $file = str_replace("http://domaine.com", ".", $file); // get path without URL, starts with "." ; voir pour remplacer par get relative path
   if (!is_file($file)) {
      $result = $file." is not a file";
   } else {
      // Parse entire output
      // Surround with double quotes if file name has spaces
      exec("$cmd \"$file\"", $output);
      // Iterate through lines
      $pagecount = 0;
      foreach($output as $op)
      {
      // Extract the number
      if(preg_match("/Pages:\s*(\d+)/i", $op, $matches) === 1)
      {
         $pagecount = intval($matches[1]);
         break;
      }
   }
   $result = $pagecount;
}

return $result;
}
add_shortcode( 'getpdfpages', 'getpdfpages_func' );

Ces fonctions s’appellent avec les shortcode Toolset suivants :

[sizefile file="[types field='nom_champ_fichier' link='false'][/types]"]
[getpdfpages file="[types field='nom_champ_fichier' link='false'][/types]"]

La fonction qui compte le nombre de pages du PDF en PHP est basée sur l’exécutable suivant : http://www.foolabs.com/xpdf/download.html
A installer sur votre serveur.

Source de la 2nde fonction, modifiée par nos soins pour Toolset : http://stackoverflow.com/questions/14644353/get-the-number-of-pages-in-a-pdf-document/14644354#14644354

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Besoin d’aide personnalisée ?

Recevez de l’aide directement sur votre site : lors d’un appel Zoom avec partage d’écran, je travaillerais avec vous sur votre site.

Pratiquez à votre rythme avec les formations en ligne

Formation WordPress

Apprendre WordPress

Comprenez WordPress de A à Z : formation complète en vidéo pour tout apprendre de WordPress.

Formation Découvrir Divi

Découvrir Divi

Créez votre site Web sans faire de code grâce au constructeur visuel Divi.

Formation Mieux utiliser Divi

Mieux utiliser Divi

Mon expérience après avoir aidé des dizaines d'entreprises à améliorer leur site Web Divi.

Formation Hébergement

Guide hébergement

Un hébergement Web avec votre installation de WordPress dès aujourd’hui.

Formation Divi Intégration Web

Divi intégration Web

Création d'une page Web complexe à partir d'une maquette graphique.

Obtenez ma formation Divi gratuitement

Recevez ma formation Divi gratuite avec des astuces pour vous simplifier le quotidien.

Vous allez recevoir un email à l'adresse que vous avez indiqué.