7
votes

Fusion 2 pdf avec ZEND Cadre

J'essaie de fusionner 2 pdf, un sur mon serveur (non généré dynamiquement) et celui généré juste avant la fusion et non enregistré n'importe où sur le serveur (je veux juste que mon client le télécharge). Donc, je n'ai que le contenu du PDF. Les deux PDF ont le même format (A4).

Le fichier fusionné aura 2 pages et ne sera pas enregistré sur le serveur également.

Depuis, j'utilise Zend Framework, je préférerais une solution avec elle (vous ne pouvez pas trouver une en ligne ...) d'autre aucun conseil?

(solution commune trouvée en ligne mais ne fonctionne pas)

Edit: Parce que les gens sont paresseux de cliquer. Le code est de toute façon dans le lien puisque c'est faux et ne fonctionne pas.

J'essaie le script ci-dessous, mais je reçois le Erreur:

Exception non capturée 'Zend_pdf_exception' avec le message 'La page est attachée à un documen, mais rendu dans le contexte d'un autre


3 commentaires

@Gordon: Eh bien, lisez la page sur le lien> _> J'essaye le script ci-dessous, mais j'obtiens l'erreur: une exception non capturée 'Zend_PDF_Exception' avec le message 'Page de message est attachée à un document, mais rendu dans le contexte d'un autre Je sais que je déteste que le ne fonctionne pas question, mais sérieusement, ici, il vous suffit de lire ...


Merci de clarifier. Essayez simplement d'être aussi complet que possible dans vos questions au lieu d'accuser ceux que vous demandez de l'aide d'être paresseux. Ne pas mettre toutes les informations là-bas dans le premier endroit est paresseux. Aussi, avez-vous essayé le code donné là-bas malgré l'utilisateur ayant une erreur? J'ai googlé le message d'erreur et Cette erreur particulière semble être corrigée dans 1.11


@Gordon: Je n'aurais pas dû le mentionner en premier lieu car c'est une erreur (et oui, j'ai essayé tout ce que j'ai trouvé en ligne;)) J'avais juste montré, j'ai fait des recherches et des tests. Juste pour montrer, je ne suis pas venu ici pour une réponse pré-digérée comme un tas de mecs fait de nos jours. J'essaie maintenant de voir si cela fonctionne, pour vous garder informer. Je suis sur 1,9 maintenant.


5 Réponses :


-1
votes

Avez-vous essayé de les fusionner à l'aide du Toolkit PDF ? < P> Fusionner plusieurs pdfs avec il peut être atteint en utilisant: xxx

123.pdf sera le PDF résultant. Vous pouvez stocker temporairement le PDF résultant sur le serveur, envoyez-le au navigateur et retirez-le quand il n'est plus nécessaire.


1 commentaires

Merci pour votre réponse. Malheureusement, je ne peux pas utiliser cette solution. 1- Je ne peux rien installer sur le serveur (travail d'une autre personne et il est vraiment occupé et ne peut pas le faire avant 2 semaines) 2- Il serait plus agréable de ne pas économiser sur le serveur.



10
votes

D'accord, avec le guide du commentaire de @gordon dans ma question, j'ai une solution.

  1. Vous devez avoir au moins Zend Framework 1.11 (j'étais en 1.9, première erreur) (trouvé grâce au 3ème commentaire à cette question) li>
  2. Vous devez clone code> à partir du fichier PDF que vous souhaitez fusionner, sinon, votre application imprimera une erreur (Auto Explanatoire One) (trouvé grâce à Ce diaporama qui est très intéressant pour Zend_PDF) LI>
  3. Le PDF statique doit être un PDF 1,4 li> ol>

    J'ai utilisé Cette application pour convertir les fichiers statiques i avait dans la version 1.6 à 1.4. p>

    Voici le code approximatif que j'ai et travaille (je sais que ce n'est pas optimisé, je le ferai plus tard; mais toujours, cela peut être utile) P>

    $pdf2show = new Zend_Pdf();  // Initializing the merged PDF
    $pdf1 = Zend_Pdf::parse($pdfContent, 1); // $pdfContent is the generated one, got the content...
    $template = clone $pdf1->pages[0]; // cloning the page (a must do)
    $page1 = new Zend_Pdf_Page($template); // Creating the first page of the merged PDF with the previous content
    $pdf2show->pages[] = $page1; // Adding this page to the final PDF
    $pdf2 = Zend_Pdf::load('urlToYourPDF.pdf'); // Loading the statif PDF
    $template2 = clone $pdf2->pages[0]; // cloning the page (a must do)
    $page2 = new Zend_Pdf_Page($template2); // Creating the second page of the merged PDF with the previous content
    $pdf2show->pages[] = $page2; // Adding this page to the final PDF
    sendToWebBrowser('title', $pdf2show->render());
    


1 commentaires

Voir, une solution :) et seulement trouvé parce que vous m'avez dit le message d'erreur;)



4
votes
$extractor = new Zend_Pdf_Resource_Extractor();
$clone_page_to_use_in_any_pdf = $extractor->clonePage($original_pdf->pages[0]);
This is how I did it.Hope this helps everyone.TJ

1 commentaires

À mon avis, c'est la meilleure solution!



2
votes
$extractor = new Zend_Pdf_Resource_Extractor();

$page1 = $extractor->clonePage($pdf->pages[$templatePageIndex1]);
$page2 = $extractor->clonePage($pdf->pages[$templatePageIndex2]);
$page1->drawText('Some text...', $x, $y);
$page2->drawText('Another text...', $x, $y);

$pdf = new Zend_Pdf();
$pdf->pages[] = $page1;
$pdf->pages[] = $page2;
Right from the horses mouth.http://framework.zend.com/manual/en/zend.pdf.pages.html#zend.pdf.pages.cloning

1 commentaires

Droite, mais votre exemple ne répond pas à la question;) Il extrait une page de la même pdf $ pdf .



0
votes

Mon expérience dans la fusion de PDF:

  • zend_pdf est lent et non efficace pour les grandes compilations,
  • Les signets de PDFTK LOOST DOCUMENT et ont écrasé si la taille du document est plus grande que le document fusionné,
  • PDFLIB est vraiment rapide et conserve des signets, est efficace pour les grandes compilations.

0 commentaires