Inizierò dicendo che posso generare PDF con mPDF, ma per la vita di me, non riesco a farlo unire un PDF esistente con il PDF appena generato.PHP - Come usare mPDF per unire PDF
Quello che devo capire è come aggiungere/aggiungere il PDF esistente al PDF appena generato. Ho provato con i metodi mPDF per l'importazione pagine, ma tutto quello che posso ottenere è un errore del tipo:
mPDF error: Cannot open '/downloads/test.pdf'.
Il messaggio di cui sopra è ambiguo e poco chiaro sul motivo per cui non è possibile aprire il file ... Ecco il codice che sto usando per cercare di unire i file PDF:
include_once("./pdf/mpdf/mpdf.php");
$output_file = $_GET['output_file'];
$url = $_GET['input_file'];
$technical_drawing = $_GET['tech_drawing'];
$html = file_get_contents($url);
$mpdf = new mPDF('utf-8','Letter','','',0,0,0,0,0,0,'P');
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile($technical_drawing);
$tplIdx = $mpdf->ImportPage($pagecount);
$mpdf->UseTemplate($tplIdx);
$mpdf->WriteHTML($html);
$mpdf->Output($output_file, 'D');
exit;
$ output_file sarà il nome del file indicato per l'utente. $ url è l'HTML che stiamo scrivendo nel file durante la generazione di PDF. $ technical_drawing è un percorso relativo a un PDF che vogliamo aggiungere/unire al PDF generato.
Capisco che potrei usare qualcosa come ghostscript, ma non ho quel tipo di accesso sul server del client.
Fatemi sapere se qualcuno ha trovato una soluzione a questo utilizzando mPDF o se io sono S.O.L. e ha bisogno di trovare un'altra libreria per unire i PDF. Sono davvero alla ricerca di soluzioni o suggerimenti, ma non solo collegamenti a un'altra libreria. Ho esaurito ciò che posso trovare su Google o nella documentazione di mPDF che descrive l'errore che sto riscontrando.
MODIFICA: modificato l'errore mPDF da http://example.com/pdf/example.pdf a "/downloads/test.pdf".
EDIT_2: il codice è stato corretto per il percorso relativo.
Ecco il codice di lavoro finale. Bonus se qualcuno sa come specificare l'ordine di scrittura del documento HTML in PDF, importando la pagina come ultima pagina (con dimensioni di pagina personalizzate diverse da quella dell'HTML).
include_once("./pdf/mpdf/mpdf.php");
$output_file = 'test-' . $_GET['output_file'];
$url = $_GET['input_file'];
$technical_drawing = $_GET['tech_drawing'];
$html = file_get_contents($url);
if(!file_exists($technical_drawing)) {
$mpdf = new mPDF('utf-8','Letter','','',0,0,0,0,0,0,'L');
} else {
$mpdf = new mPDF('utf-8','A3-L','','',0,0,0,0,0,0,'L');
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile($technical_drawing);
$import_page = $mpdf->ImportPage();
$mpdf->UseTemplate($import_page);
// Add Last page
$mpdf->AddPageByArray(array(
'orientation' => 'P',
'ohvalue' => 1,
'ehvalue' => -1,
'ofvalue' => -1,
'efvalue' => -1,
'newformat' => 'Letter'
));
}
$mpdf->WriteHTML($html);
$mpdf->Output($output_file, 'D');
exit;
in cui l'URL http ' : // example.com/pdf/example.pdf' viene fornito? – zerkms
si dovrebbe dare il percorso del file locale non url –
@zerkms - Ci dispiace, per chiarire, non è example.com. Il mio url è impostato su un percorso locale come "/downloads/test.pdf". – cvanorman