سؤال

حاليا يمكنني إنشاء ملفات PDF من الصور في صور مع هذه الوظيفة

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

ومن الممكن جلب صفحات متعددة مع Image مثل هذا

$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]");
هل كانت مفيدة؟

المحلول

أعلم أن هذا قد طويل مستحق، لكن هذه النتيجة جاءت عندما كنت أحاول أن أفعل نفس الشيء. فيما يلي كيفية إنشاء ملف PDF متعدد الصفحات في PHP و Image.

    $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 منخفض المستوى مثل هذا. يمكنك إما استخدام appendpdf.pl. أداة سطر الأوامر، أو تفعل ذلك برمجيا مثل هذا:

استخدام كام :: PDF؛ بلدي $ doc1 = cam :: pdf-> جديد ('file1.pdf')؛ بلدي $ doc2 = cam :: pdf-> جديد ('file2.pdf')؛ $ doc1-> appendpdf ($ doc2)؛ $ doc1-> cleanutput ('out.pdf')؛

إذا كنت تستطيع معرفة كيفية كتابة ImageMagick إلى سلسلة بدلا من ملف (أنا لست خبير ImageMagick ...) ثم يمكنك حفظ بعض الأداء العلوي من خلال إبقاء كل شيء في بيرل.

(أنا مؤلف كام :: PDF. إنه برنامج مجاني: GPL + الفني المرخصة المزدوجة).

أنا لا أعرف PHP أو مكتبة هذه المكتبة هذه، ولكن إذا كان الاتصال برامج خارجية مقبولة، يمكنني أن أوصي البرنامج Pdfjoin. لدمج ملفات PDF.

يحتوي على اعتماد على Pdflatex، لذلك إذا كان هذا شيء تنوي تشغيله على خادم قد تضطر إلى تثبيت أشياء إضافية مضافة، ولكن النتيجة النهائية من PDFJoin جيدة جدا، لذلك أعتقد أنه سيكون يستحق كل هذا العناء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top