5

現在、この関数を使用して Imagick の画像から PDF ファイルを作成できます

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

そして、このようにimagickで複数のページを取得することが可能です

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

しかし、2 つの画像オブジェクトを 2 つのページに保存することは可能ですか? (私が考えていることの例、このようには不可能です)

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

$im2->setImageFormat("pdf");
$im2->writeImage("file.pdf[1]");
4

5 に答える 5

15

これは期限が過ぎていることはわかっていますが、同じことをしようとしたときにこの結果が出ました。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!');
}
于 2010-02-05T23:11:14.387 に答える
2

受け入れられた回答は私にとってはうまくいきませんでした。その結果、常に1ページの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);
于 2013-06-13T13:56:04.090 に答える
1

これは稼働していますか?

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

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

exec("convert file*.pdf all.pdf");
于 2009-02-13T13:10:08.523 に答える
1

CAM::PDFは、このような低レベルの PDF 操作のための純粋な Perl ソリューションです。appendpdf.plコマンドライン ツールを使用するか、次のようにプログラムで実行できます。

CAM::PDF を使用します。私の $doc1 = CAM::PDF->new('file1.pdf'); 私の $doc2 = CAM::PDF->new('file2.pdf'); $doc1->appendPDF($doc2); $doc1->cleanoutput('out.pdf');

ImageMagick をファイルではなく文字列に書き込む方法を理解できれば (私は ImageMagick の専門家ではありません...)、すべてを Perl に保持することで、パフォーマンスのオーバーヘッドをいくらか節約できます。

(私は CAM::PDF の作者です。これはフリー ソフトウェアです: GPL+Artistic デュアル ライセンス)。

于 2009-02-15T05:56:09.597 に答える
0

私はphpまたはこのImagickライブラリを知りませんが、外部プログラムの呼び出しが許容される場合は、プログラムpdfjoinを使用してpdfファイルをマージすることをお勧めします.

pdflatex への依存関係があるため、これをサーバー上で実行する場合は、追加の latex をインストールする必要があるかもしれませんが、pdfjoin の最終結果は非常に優れているため、それだけの価値があると思います。

于 2009-02-13T23:33:00.523 に答える