Question

je peux actuellement créer des fichiers PDF à partir d'images en Imagick avec cette fonction

$im->setImageFormat("pdf");
$im->writeImage("file.pdf");

Et il est possible de récupérer plusieurs pages avec imagick comme ceci

$im = new imagick("file.pdf[0]");
$im2 = new imagick("file.pdf[1]");

Mais est-il possible d'enregistrer deux objets d'image à deux pages? (Exemple de ce que je pense, ce ne est pas possible comme ça)

$im->setImageFormat("pdf");
$im->writeImage("file.pdf[0]");

$im2->setImageFormat("pdf");
$im2->writeImage("file.pdf[1]");
Était-ce utile?

La solution

Je sais que c'est passé depuis longtemps en raison, mais ce résultat venu quand je tentais de faire la même chose. Voici comment vous créez un fichier PDF de plusieurs pages en PHP et Imagick.

    $images = array(
    'page_1.png',
    'page_2.png'
);
$pdf = new Imagick($images);
$pdf->setImageFormat('pdf');
if (!$pdf->writeImages('combined.pdf', true)) {
    die('Could not write!');
}

Autres conseils

Accepté réponse ne fonctionnait pas pour moi, en conséquence, il a toujours généré une page pdf (dernière image du constructeur), pour faire ce travail que je devais obtenir premier descripteur de fichier, comme ceci:

$images = array(
  'img1.png', 'img2.png'
); 
$fp = fopen('combined.pdf', 'w');
$pdf = new Imagick($images);
$pdf->resetiterator();
$pdf->setimageformat('pdf');
$pdf->writeimagesfile($fp);
fclose($fp);

Est-ce travail?

$im->setImageFormat("pdf");
$im->writeImage("file1.pdf");

$im2->setImageFormat("pdf");
$im2->writeImage("file2.pdf");

exec("convert file*.pdf all.pdf");

CAM :: PDF est une solution pure Perl à faible niveau manipulation de PDF comme celui-ci. Vous pouvez utiliser le appendpdf.pl commande outil -ligne, ou le faire par programme comme celui-ci:

utilisation CAM :: PDF;    my $ doc1 = CAM :: PDF-> new ( 'file1.pdf');    my $ Doc2 = CAM :: PDF-> new ( 'file2.pdf');    $ Doc1-> appendPDF (Doc2 de $);    $ Doc1-> cleanoutput ( 'out.pdf');

Si vous pouvez comprendre comment faire ImageMagick écrire à une chaîne au lieu d'un fichier (je ne suis pas un expert ImageMagick ...) puis vous faire économiser les frais généraux de performance en le mettant tout en Perl.

(. Je suis l'auteur de CAM :: PDF Il est un logiciel libre: GPL + double licence artistique).

Je ne sais pas php ou cette bibliothèque Imagick, mais si vous appelez un programme externe est acceptable, je peux recommander le programme

scroll top