Domanda

Al momento posso creare file PDF da immagini in Imagick con questa funzione

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

Ed è possibile recuperare più pagine con imagick come questo

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

Ma è possibile salvare due oggetti immagine a due pagine? (Esempio di che cosa sto pensando, non è possibile in questo modo)

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

$im2->setImageFormat("pdf");
$im2->writeImage("file.pdf[1]");
È stato utile?

Soluzione

So che questo è lungo passato a causa, ma questo risultato è venuto quando stavo cercando di fare la stessa cosa. Ecco come si crea un file PDF multipagina in PHP e 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!');
}

Altri suggerimenti

risposta accettata non funzionava per me, di conseguenza, è sempre generato una pagina pdf (ultima immagine dal costruttore), per fare questo lavoro ho dovuto ottenere descrittore di file prima, in questo modo:

$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);

E 'questo lavoro?

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

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

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

CAM :: PDF è un puro Perl soluzione di basso livello manipolazione PDF come questo. È possibile utilizzare la appendpdf.pl comando strumento-line, o farlo a livello di codice in questo modo:

CAM uso :: PDF;    my $ doc1 = CAM :: PDF-> nuovo ( 'file1.pdf');    my $ doc2 = CAM :: PDF-> nuovo ( 'file2.pdf');    $ Doc1-> appendPDF ($ doc2);    $ Doc1-> cleanoutput ( 'out.pdf');

Se si riesce a capire come fare ImageMagick scrivere in una stringa invece di un file (io non sono un esperto di ImageMagick ...) quindi si salva un po 'di sovraccarico delle prestazioni, mantenendo tutto in Perl.

(. Sono l'autore del CAM :: PDF E 'software libero: GPL + artistico doppia licenza).

Non so PHP o questa libreria Imagick, ma se chiamare un programma esterno è accettabile Posso consigliare il programma di pdfjoin per unire file PDF.

Si ha una dipendenza a pdflatex, quindi se questo è qualcosa che si intende eseguire sul server potrebbe essere necessario installare roba lattice in più, ma il risultato finale da pdfjoin è molto buono, quindi penso che sarà valsa la pena .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top