我正在使用以下php函数根据页码将pdf文件分为两个文件。 源文件有14页。我正在创建两个文件:前一个文件的前12页,第二个文件的后两页。 但是我为两个创建的文件都获得了与源文件不同的站点格式。 如何改善功能以确保获得与源文件相同的网站格式? 我正在使用pdf阅读器库。还是您建议使用什么作为工具来达到此目的?
function split_pdf14($filename, $end_directory = false, $numberOfPages = 12, $row) {
$pdf = new \TCPDI();
$pagecount = $pdf->setSourceFile($filename);
$pagesDone = 0;
if ($pagecount > $numberOfPages) {
$maxFiles = floor($pagecount / $numberOfPages);
for ($j = 1; $j <= 2; $j++) {
$new_pdf = new \TCPDI();
$new_pdf->setSourceFile($filename);
for ($i = 1; $i <= $numberOfPages; $i++) {
$pagesDone++;
if ($pagesDone > $pagecount) {
/*
* do nohting
*/
} else {
$new_pdf->AddPage();
$new_pdf->useTemplate($new_pdf->importPage($pagesDone));
}
}
try {
if ($j == 1) {
$new_filename = 'localfiles/' . $row['f_auftragsnr'] . '_' . $row['t_sorte'] . '_' . $row['t_sprache'] . '_' . $row['t_umfang'] . '.pdf';
} else {
$new_filename = 'localfiles/' . $row['f_auftragsnr'] . '_' . $row['t_sorte'] . '_' . $row['t_sprache'] . '_' . $row['t_umfang'] . '_BON.pdf';
}
//$new_pdf->Output($new_filename, "F");
$new_pdf->Output($_SERVER['DOCUMENT_ROOT'] . '/' . $new_filename, 'F');
//$new_pdf->Output('/home/box/public_html/box2019/' . $new_filename, 'F');
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
$numberOfPages = $pagecount;
}
}
}
答案 0 :(得分:0)
您使用的是默认页面格式(A4)和方向。
您的代码不关心导入页面的大小,而只是添加A4纵向页面:
$new_pdf->AddPage();
$new_pdf->useTemplate($new_pdf->importPage($pagesDone));
您只需要以正确的尺寸和方向添加页面即可
$tplId = $new_pdf->importPage($pagesDone);
$size = $this->getTemplatesize($tplId);
$new_pdf->AddPage($size['w'] > $size['h'] ? 'L' : 'P', [$s['w'], $s['h']]);
$new_pdf->useTemplate($tplId);
PS:您正在使用的脚本(TCPDI)似乎已经使用了几年。您可以使用FPDI的最新正式版本。