감사인이 처리해야하는 사용자가 업로드 한 PDF 문서가 있습니다. 때로는 PDF의 스캔 페이지가 옆으로 또는 뒤집어 져 있습니다. PHP를 사용하여 페이지를 어떻게 회전합니까? 내가 생각 TCPDF 및 TCPDI을 사용하고PHP를 사용하여 PDF의 모든 페이지 또는 특정 페이지를 어떻게 회전합니까?
는 FPDF/FPDI와 동일 난 그냥 한 페이지를 지정할 때
내 코드, 아래의 3 페이지를 가정 해 봅시다, 잘 모든 페이지를 회전,하지만 것 5. 페이지 1과 페이지 2 만 남겨두고 페이지 3을 회전하고 페이지 4와 5를 계속 회전시킵니다. 왜?
또한이 코드가 의미가 있습니까? 이 작업을 수행하는 적절한 방법입니까 아니면 더 쉬운 방법입니까?
function rotatePDF($file, $degrees, $page = 'all'){
$pdf = new TCPDI(); // new object
$pdf->setPrintHeader(false); // no headers
$pdf->setPrintFooter(false); // no footers
$pagecount = $pdf->setSourceFile($file); //the original file
// rotate all - THIS WORKS FINE
if($page=="all"){
for ($i = 1; $i <= $pagecount; $i++) {
$pageformat = array('Rotate'=>$degrees);
$tpage = $pdf->importPage($i);
$size = $pdf->getTemplateSize($tpage);
// get original page orientation
$orientation = $size['w'] > $size['h'] ? 'L' : 'P';
$pdf->AddPage($orientation,$pageformat);
$pdf->useTemplate($tpage);
}
}else{
for ($i = 1; $i <= $pagecount; $i++) {
if($page == $i){
$pageformat = array('Rotate'=>$degrees);
$tpage = $pdf->importPage($i);
$size = $pdf->getTemplateSize($tpage);
// get original page orientation
$orientation = $size['w'] > $size['h'] ? 'L' : 'P';
$pdf->AddPage($orientation,$pageformat);
$pdf->useTemplate($tpage);
}else{
$tpage = $pdf->importPage($i);
$pdf->AddPage();
$pdf->useTemplate($tpage);
}
}
}
$out = realpath($file);
if(rename($file,"files/1/file.bak")){
$result = $pdf->Output($out, "F");
if($result == ""){
echo "ok";
}
}else{
echo "Failed to rename old PDF";
die;
}
}
$file = "files/1/1.pdf";
rotatePDF($file,90); // rotating all works fine
rotatePDF($file,90,3); // rotates page 3 AND all following
PDF는 한 페이지에서 다른 페이지로 이동하는 많은 것들을 가지고 있습니다. 회전이 분명히 그 중 하나입니다. 다음 페이지를 회전시키지 않으려면 뒤로 회전해야합니다. –