Pergunta

Atualmente eu pode criar arquivos PDF a partir de imagens em Imagick com esta função

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

E é possível buscar várias páginas com imagick como este

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

Mas é possível para salvar dois objetos de imagem a duas páginas? (Exemplo do que estou pensando, não é possível como este)

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

$im2->setImageFormat("pdf");
$im2->writeImage("file.pdf[1]");
Foi útil?

Solução

Eu sei que isto é longo atraso, mas este resultado surgiu quando eu estava tentando fazer a mesma coisa. Aqui está como você criar um arquivo PDF de múltiplas páginas em 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!');
}

Outras dicas

aceitado resposta não estava trabalhando para mim, como resultado, ele sempre gerado um pdf página (última imagem de construtor), para fazer este trabalho eu tive que começar descritor de arquivo em primeiro lugar, como este:

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

É este trabalho?

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

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

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

CAM :: PDF é uma solução puro-Perl para baixo nível manipulação de PDF como esta. Você pode usar o appendpdf.pl comando ferramenta -line, ou fazê-lo por meio de programação como esta:

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

Se você pode descobrir como fazer ImageMagick gravação para uma string em vez de um arquivo (eu não sou um especialista ImageMagick ...), então você salvar alguma sobrecarga de desempenho, mantendo tudo em Perl.

(. Eu sou o autor do CAM :: PDF É software livre: GPL + Artístico dual-licenciado).

Eu não sei php ou esta biblioteca Imagick, mas se chamar um programa externo é aceitável que posso recomendar o programa pdfjoin para arquivos pdf de mesclagem.

Ela tem uma dependência para pdflatex, por isso, se isso é algo que você pretende executar um servidor que você pode ter que instalar outras coisas látex extra, mas o resultado final de pdfjoin é muito bom, então eu acho que vai valer a pena .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top