Concactener des 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 : Concactener des PDF

par Hywan » 11 nov. 2007, 12:31

Ah ? Probable alors :). Au temps pour moi. Mais même si sont plus rapides que les précédentes versions, ils doivent rester long tout même.

Mes lecteurs PDF : Aperçu, et QuickLook ^^. C'est assez rapide ;-).

par @rthur » 11 nov. 2007, 00:53

Et ça va c'est pas trop long :lol: ?
La dernière version d'Adobe Reader (8.1.1) est beaucoup beaucoup plus rapide que les précédentes (c'est ce qui m'a fait revenir d'ailleurs de FocIt à Adobe Reader :-) )

par agité » 10 nov. 2007, 23:02

Et ça va c'est pas trop long :lol: ? Essaye avec un truc programme pour voir. Sur Windows tu dois avoir Foxit Reader (j'imagines que tu es sous Windows puisque Acrobat) qui est gratuit. Tentes avec ce logiciel (moins capricieux normalement).
Merci je vais tester avec ce logiciel :)

par Hywan » 10 nov. 2007, 22:58

Et ça va c'est pas trop long :lol: ? Essaye avec un truc programme pour voir. Sur Windows tu dois avoir Foxit Reader (j'imagines que tu es sous Windows puisque Acrobat) qui est gratuit. Tentes avec ce logiciel (moins capricieux normalement).

par agité » 10 nov. 2007, 22:43

Avec quel programme visualises-tu ton PDF ?
Adobe acrobat reader.

par Hywan » 10 nov. 2007, 14:46

Avec quel programme visualises-tu ton PDF ?

par agité » 09 nov. 2007, 16:26

Le fichier pese bien la bonne taille et recupere bien le nombre de pages total mais il m'affiche uniquement des pages blanches avec comme erreur l'XObject, je vois pas trop le rapport avec un script JAVA la dedans, enfin si vous avez une piste....

par agité » 09 nov. 2007, 14:24

j'ai résolu le probleme du tableau comme ca :
class concat_pdf extends FPDI {

    var $files = array();

    function setFiles($files) {
        $this->files = $files;
    }

    function concat() {
        foreach($this->files AS $file) {
            $pagecount = $this->setSourceFile($file);
            for ($i = 1; $i <= $pagecount; $i++) {
                 $tplidx = $this->ImportPage($i);
                 $s = $this->getTemplatesize($tplidx);
                 $this->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
                 $this->useTemplate($tplidx);
            }
        }
    }
		}



$pdf =& new concat_pdf();

$Count_list = count($_GET['list']);
for($i = 0; $i < $Count_list; $i++){ 
$array = array("../**/".$_GET['list'][$i]);
}
$pdf->setFiles($array);
$pdf->concat();

$pdf->Output("PdfProgramme_".$_SESSION['login']."_".$_GET['Id'].".pdf", "D");
Donc maintenant il me genere bien un PDF youpi \o/

sauf que ...

les pdf sont vides et qu'il me marque a l'ouverture :
XObject introuvable: TPL1.
Qu'est ce qu'un XObject ?

:roll:

par agité » 09 nov. 2007, 13:17

Code : Tout sélectionner

cd c:\mbtPdfAsm.exe -mhttp://localhost/mypdf1.pdf;http://localhost/mypdf2.pdf -oO -as -NouveauPdf.pdf
:D

Bon bah retires moi ces http://localhost/ et travailles avec des fichiers en local et des chemins d'accès en relatif (ou éventuellement en absolu depuis la racine de ton serveur...)
Demander de concaténer des fichiers en donnant leur url, c'est quand même en demandé beaucoup je pense à un petit utilitaire gratuit ;-)
Avec les chemins direct c'est la même chose finalement j'ai utiliser la librairie FPDF pour utiliser cette fonction que je recommande :
class concat_pdf extends FPDI {

    var $files = array();

    function setFiles($files) {
        $this->files = $files;
    }

    function concat() {
        foreach($this->files AS $file) {
            $pagecount = $this->setSourceFile($file);
            for ($i = 1; $i <= $pagecount; $i++) {
                 $tplidx = $this->ImportPage($i);
                 $s = $this->getTemplatesize($tplidx);
                 $this->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
                 $this->useTemplate($tplidx);
            }
        }
    }
		}

$pdf =& new concat_pdf();
$pdf->setFiles(array("../**/".$_GET['list'][1], "../**/".$_GET['list'][2]));
$pdf->concat();
Bon ouf il me creer bien un fichier lorsque je rentre manuellement les chemins trouvé dans les $_GET.


En fait je fais tout passer par un formulaire et je renvois le chemin des fichiers a concaténer en url par un GET, par exemple $_GET['list'] est mon tableau contenant chacun un chemin different.

Et je voudrais que la fonction setFiles(array()) puisse contenir tout les $_GET['list'] j'ai tenter de mettre des boucles foreach ou for pour faire en sorte qu'il les affiche tous mais il ya un probleme de synthaxe, tu m'étonne un foreach dans un array ca marche pas trop.

Comment est ce que je peux faire en sorte qu'il prenne directement le tableau en $_GET j'ai tenter de faire
$pdf->setFiles($_GET['list']);
mais il ne semble pas accepter ce tableau ... une idée ?

par @rthur » 09 nov. 2007, 13:08

Code : Tout sélectionner

cd c:\mbtPdfAsm.exe -mhttp://localhost/mypdf1.pdf;http://localhost/mypdf2.pdf -oO -as -NouveauPdf.pdf
:D

Bon bah retires moi ces http://localhost/ et travailles avec des fichiers en local et des chemins d'accès en relatif (ou éventuellement en absolu depuis la racine de ton serveur...)
Demander de concaténer des fichiers en donnant leur url, c'est quand même en demandé beaucoup je pense à un petit utilitaire gratuit ;-)

par agité » 09 nov. 2007, 12:28

Donne moi la ligne de commande que tu testes exactement stp...

Code : Tout sélectionner

cd c:\mbtPdfAsm.exe -mhttp://localhost/mypdf1.pdf;http://localhost/mypdf2.pdf -oO -as -NouveauPdf.pdf

par @rthur » 09 nov. 2007, 12:22

Donne moi la ligne de commande que tu testes exactement stp...

par agité » 09 nov. 2007, 12:07

La ligne de commande me retourne : Synthaxe du nom de fichier ou du repertoire incorrect pourtant tout est au bon endroit.
Hummm, remplace les slashes dans ta ligne de commande par des antislashes C:\... plutôt que C:/
Il me retourne toujours une erreur de synthaxe et j'a bien tout reverifié pour les chemins.

par @rthur » 09 nov. 2007, 11:56

La ligne de commande me retourne : Synthaxe du nom de fichier ou du repertoire incorrect pourtant tout est au bon endroit.
Hummm, remplace les slashes dans ta ligne de commande par des antislashes C:\... plutôt que C:/

par agité » 09 nov. 2007, 11:52

C'est justement l'erreur que je ne comprends pas dans la synthaxe de la fonction me demande de rentrer 7 parametres mais je ne vois pas lesquels ils sont et la matrice CTM m'est inconnu.
CTM c'est pour Current Transformation Matrix, ce qui me ferait dire que ça sert probablement à totalement autre chose qu'à concaténer des fichiers PDF... ;-)


Ta deuxième solution semble plus sûre.
As-tu tester ta commande dans l'invite de commande MS-DOS? (Démarrer, Programmes, Accessoires, Invites de commande)
Si oui, est-ce que ça marche, si non quel est le message d'erreur?

Si ça marche en ligne de commande mais pas avec PHP, remplace ta fonction exec par system() et regarde quelles sont les infos qui sont retournées.
La ligne de commande me retourne : Synthaxe du nom de fichier ou du repertoire incorrect pourtant tout est au bon endroit.

Est ce que vous avez une autre solution pour concaténer des PDF ?

j'ai trouver encore une autre piste :

http://www.setasign.de/products/pdf-php ... nate-fake/

La encore je bloque apparement les noms de fichiers passent bien mais je ne retrouve pas le fichier.