문제

현재 이 기능을 사용하면 Imagick의 이미지에서 PDF 파일을 만들 수 있습니다.

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

그리고 이와 같은 imagick을 사용하여 여러 페이지를 가져오는 것이 가능합니다.

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

그런데 두 개의 이미지 개체를 두 페이지에 저장하는 것이 가능합니까?(내가 생각하는 것의 예, 이대로는 불가능합니다)

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

$im2->setImageFormat("pdf");
$im2->writeImage("file.pdf[1]");
도움이 되었습니까?

해결책

나는 이것이 오랫동안 과거라는 것을 알고 있지만,이 결과는 내가 같은 일을하려고 할 때 나타났습니다. PHP 및 Imagick에서 다중 페이지 PDF 파일을 만드는 방법은 다음과 같습니다.

    $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!');
}

다른 팁

인정 된 답변은 저에게 효과가 없었습니다. 결과적으로, 그것은 항상 한 페이지 PDF (생성자의 마지막 이미지)를 생성 하여이 작업을 먼저 파일 디스크립터를 가져와야했습니다.

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

이것이 작동합니까?

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

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

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

캠::PDF 이와 같은 낮은 수준의 PDF 조작을 위한 순수 Perl 솔루션입니다.다음 중 하나를 사용할 수 있습니다. 첨부pdf.pl 명령줄 도구를 사용하거나 다음과 같이 프로그래밍 방식으로 수행합니다.

CAM::PDF 사용;내 $doc1 = CAM::PDF->new('file1.pdf');내 $doc2 = CAM::PDF->new('file2.pdf');$doc1->추가PDF($doc2);$doc1->cleanoutput('out.pdf');

ImageMagick이 파일 대신 문자열에 쓰도록 하는 방법을 알아낼 수 있다면(저는 ImageMagick 전문가가 아닙니다...) Perl에서 모두 유지하여 성능 오버헤드를 절약할 수 있습니다.

(저는 CAM::PDF의 저자입니다.무료 소프트웨어입니다:GPL+Artistic 이중 라이센스).

PHP 나이 Imagick 라이브러리를 모르지만 외부 프로그램을 호출 할 수있는 경우 프로그램을 추천 할 수 있습니다. pdfjoin PDF 파일을 병합합니다.

그것은 pdflatex에 의존성이 있으므로 서버에서 실행하려는 것이라면 여분의 라텍스 물건을 설치해야 할 수도 있지만 pdfjoin의 최종 결과는 매우 좋기 때문에 그만한 가치가 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top