Modifier et récuper propriété fichier pdf

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modifier et récuper propriété fichier pdf

Re: Modifier et récuper propriété fichier pdf

par oussama1984 » 26 mars 2012, 23:13

Binjour,
Je suis très interessé par votre code,
est ce que vous pouvez me l'envoyer ??
Merci
[email protected]

Re: Modifier et récuper propriété fichier pdf

par Ryle » 13 juin 2010, 23:41

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Modifier et récuper propriété fichier pdf

par CharlesG » 13 juin 2010, 14:17

Bon jour,
Je cherche à modifier (voir compléter) les propriétés de fichier pdf. Je voudrais compléter les propriétés sur des documents scannés en pdf.
Les documents sont produits par un scanner avec un nom par exemple "20100610091912.pdf", les propriétés sont vides et non modifiable avec acrobat. j'avais récupérer un bout de code qui marche en lecture mais pas en écriture (les propriétés sont vides).
Je voudrais pouvoir mettre une variable au lieu d'un fichier fixe ($filename = 'test.pdf';). j'utilise dans le cadre d'une association 4D comme base de données.
l'objectif serait d'arriver a cela exemple VB : http://www.vbfrance.com/codes_image/normal/24070.aspx
Merci par avance .
Charles GRONDIN
<?php

function openPDF($filename){
$handle = fopen($filename,"rb");
$content = fread($handle, filesize($filename));
fclose($handle);
return $content;
}

function versionPDF($content){
$p1 = strpos($content,'%')+1;
$p2 = strpos($content,'%',$p1)-2;
$version=substr($content,$p1,$p2);
return strcmp(trim($version),'PDF-1.4');
}

function getPDFDate($type){
if (strcmp($type,'cre')==0) $input = '/CreationDate';
if (strcmp($type,'mod')==0) $input = '/ModDate';
global $content;
$p1 = strpos($content,$input)+1;
$p2 = strpos($content,0x2F,$p1);
$line = substr($content,strlen($input)+$p1,$p2-$p1-2-strlen($input));
$row = substr($line,2,14);
$date = date('l, d F Y H:i:s',mktime(substr($row,8,2),substr($row,10,2),substr($row,12,2),substr($row,4,2),substr($row,6,2),substr($row,0,4)));

return $date;
}

function getPDFInfo($type){
if (strcmp($type,'tit')==0) $input = '/Title';
if (strcmp($type,'cre')==0) $input = '/Creator';
if (strcmp($type,'aut')==0) $input = '/Author';
if (strcmp($type,'key')==0) $input = '/Keywords';
if (strcmp($type,'sub')==0) $input = '/Subject';
global $content;
$p1 = strpos($content,$input)+1;
if (strcmp($type,'sub')==0){ $s1 = '>>';$s2 = 1;}
else{ $s1 = 0x2F; $s2 = 2;}
$p2 = strpos($content,$s1,$p1);
$line = substr($content,strlen($input)+$p1,$p2-$p1-$s2-strlen($input));
$line = preg_replace("/\\\[0-9]{3}/",'',$line);
if (trim($line)=='') $line = '(non renseigné)';

return $line;

}

function getPDFContent($content,$start,$end){
$s1 = 0;
$e1 = 0;
$objc = array();

while ($s1 !== false && $e1 !== false){
$s1 = strpos($content,$start,$e1)+(strlen($start)+1);
if ($s1 !== false){
$e1 = strpos($content,$end,$s1);
if ($e1 !== false)
$objc[] = substr($content,$s1,$e1-$s1);
}
}

return $objc;
}

function extractText($content){
$obj = array();
$ret = array();
$mots = array();

preg_match_all('`\[([^\]]+)\]TJ`', $content, $obj);

for ($i=0;$i<count($obj[0])-1;$i++){
preg_match_all('`\((.){1}\)`', $obj[1][$i], $mots[$i]);

$ret[] = implode('',$mots[$i][1]);
}

$ret = implode(' ',$ret);

return $ret;

}

function getPDFText($content){
$gc = getPDFContent($content,'obj','endobj');
$gc_size = count($gc);
$streams = array();
for ($i=0;$i<$gc_size;$i++){
$sc = getPDFContent($gc[$i],'stream','endstream');
if (!empty($sc)){
$streams[] = $sc;
}
}
if (count($streams)>0){
return extractText(gzuncompress(trim($streams[0][0])));
}

}
/************************************/

// 1. Ouverture du PDF

$filename = 'test.pdf';
$content = openPDF($filename);

// 2. Vérification de la version du PDF - seule 1.4 est supportée

if (versionPDF($content)!=0)
echo 'Cette source n\'est pas été conçue/testée pour d\'autres versions que la version PDF-1.4.<br />Votre fichier a la version '.(versionPDF($content)).', désolé';
else{

// 3. Récupération des propriétés CreationDate, ModDate, Title, Creator, Author, Keywords et Subject

$creDate = getPDFDate('cre'); echo 'Date de création: '.$creDate.'<br />';
$modDate = getPDFDate('mod'); echo 'Date de modification: '.$modDate.'<br />';
$title = getPDFInfo('tit'); echo 'Titre du fichier: '.$title.'<br />';
$creator = getPDFInfo('cre'); echo 'Création du fichier: '.$creator.'<br />';
$author = getPDFInfo('aut'); echo 'Auteur: '.$author.'<br />';
$keywords = getPDFInfo('key'); echo 'Mots clés: '.$keywords.'<br />';
$sujet = getPDFInfo('sub'); echo 'Sujet: '.$sujet.'<br /><br />';

//4. Récupération du contenu du PDF

$contenu = getPDFText($content); echo 'Contenu textuel:<br />'.$contenu;
}
?>