使用 PHP 动态合并文件夹中的所有 PDF


Merge all the PDF in a folder dynamically using PHP

我有一个代码,它根据复选框选择填充pdf模板并在文件夹中创建pdf。在创建 pdf 之前,它会删除当前在输出文件夹中的所有文件,现在我想将创建的 pdf 合并到一个 pdf 中,可以是 2-5 pdf。

<?php
require('fpdm.php');    
$fields = $_POST['a'];
$t1=NULL;
$t2=NULL;
$t3=NULL;
$t4=NULL;
$t5=NULL;

if(isset($_POST['t1']))
$t1 = $_POST['t1'];
if(isset($_POST['t2']))
$t2 = $_POST['t2'];
if(isset($_POST['t3']))
$t3 = $_POST['t3'];
if(isset($_POST['t4']))
$t4 = $_POST['t4'];
if(isset($_POST['t5']))
$t5 = $_POST['t5'];
//stergere continut folder inainte de creare pdf
function recursiveRemove($dir) {
    $structure = glob(rtrim($dir, "/").'/*');
    if (is_array($structure)) {
        foreach($structure as $file) {
            if (is_dir($file)) recursiveRemove($file);
            elseif (is_file($file)) unlink($file);
        }
    }
}
//aici vine path`u catre continutul folderului ce urmeaza sters
recursiveRemove("C:'Users'Sherpu'Desktop'output");

if($t1!=NULL){ 
    $pdf1 = new FPDM('template1.pdf');
    $pdf1->Load($fields, false); 
    $pdf1->Merge();
    $pdf1->Output('C:'Users'Sherpu'Desktop'output'fpd1.pdf','F');
}
if($t2!=NULL){ 
    $pdf2 = new FPDM('template2.pdf');
    $pdf2->Load($fields, false); 
    $pdf2->Merge();
    $pdf2->Output('C:'Users'Sherpu'Desktop'output'fpd2.pdf', 'F');
}
if($t3!=NULL){ 
    $pdf3= new FPDM('template3.pdf');
    $pdf3->Load($fields, false); 
    $pdf3->Merge();
    $pdf3->Output('C:'Users'Sherpu'Desktop'output'fpd3.pdf', 'F');
}
if($t4!=NULL){ 
    $pdf4 = new FPDM('template4.pdf');
    $pdf4->Load($fields, false); 
    $pdf4->Merge();
    $pdf4->Output('C:'Users'Sherpu'Desktop'output'fpd4.pdf', 'F');
}
if($t5!=NULL){ 
    $pdf5 = new FPDM('template5.pdf');
    $pdf5->Load($fields, false); 
    $pdf5->Merge();
    $pdf5->Output('C:'Users'Sherpu'Desktop'output'fpd5.pdf', 'F');
}    
?>

它与PDF合并无关,但它肯定会在处理您的问题时为您提供帮助。

你应该创建一个数组而不是单独的字段:

<form method="POST">
    <label for="t1">t1</label>
    <input type="text" name="t[]" id="t1" />
    <label for="t2">t2</label>
    <input type="text" name="t[]" id="t2" />
    <label for="t3">t3</label>
    <input type="text" name="t[]" id="t3" />
</form>

然后,在 PHP 中,您将能够遍历此输入:

foreach ($i = 0; $i < count($_POST['t']); $i++)
{
    $pdf = new FPDM('template' + $i + '.pdf');
    $pdf->Load($fields, false); 
    $pdf->Merge();
    $pdf->Output('C:'Users'Sherpu'Desktop'output'fpd' + $i + '.pdf','F');
}

这将允许您在 HTML 中添加未定义数量的字段,而无需更改 PHP。