質問
現在、私はこの機能を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]");
解決
私は、これは長い過去が原因ですけど、私は同じことをしようとしていたときに、この結果は、思い付きました。ここでは、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!');
}
他のヒント
受け入れ答えは、私はこのように、最初のファイルディスクリプタを取得しなければならなかった、この作品を作るために、結果として、それは常に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);
この作業ですか?
$im->setImageFormat("pdf");
$im->writeImage("file1.pdf");
$im2->setImageFormat("pdf");
$im2->writeImage("file2.pdf");
exec("convert file*.pdf all.pdf");
CAM :: PDF には、低レベルのための純粋なPerlのソリューションです。このようなPDF操作。あなたは appendpdf.pl のコマンドを使用できます-lineツール、またはプログラムでこのようにそれを実行します。
CAM :: PDFを使用します。 私の$ DOC1 = CAM :: PDF->新しい( 'file1.pdf'); 私の$ DOC2 = CAM :: PDF->新しい( 'file2.pdf'); $ doc1-> appendPDF($のDOC2)。 $ doc1-> cleanoutput( 'out.pdf');
あなたは、あなたがPerlでそれをすべて保つことによって、いくつかのパフォーマンス上のオーバーヘッドを保存する(私は... ImageMagickの専門家ではないよ)ImageMagickには、文字列に代わりのファイルに書き込むようにする方法を見つけ出すことができます。
(私は、CAMの作者だ:: PDFそれはフリーソフトウェアです:GPL +アーティスティックデュアルライセンス)。
私はPHPや本のImagickライブラリを知らないが、外部プログラムを呼び出すことは許容できる場合、私はプログラム<のhref =「http://go.warwick.ac.uk/pdfjam」のrel = "nofollowをnoreferrerをお勧めすることができます「> pdfjoin のPDFファイルをマージする。
これはpdflatexをへの依存関係を持っていないので、これはあなたがサーバー上で実行する予定のものであれば、あなたは余分なラテックスのものをインストールする必要があるかもしれませんが、pdfjoinからの最終的な結果は非常に良いですので、私はそれはそれは価値があるだろうと思いますます。