PHP - FPDI Split PDF

 
Vista:

FPDI Split PDF

Publicado por Jorge (48 intervenciones) el 23/03/2020 12:42:01
Buenas tardes,
Tengo un documento pdf de 66 páginas y necesito dividirlo cada 2 páginas. Es decir, cada 2 páginas el código creará un nuevo PDF. Por ejemplo:

Pdf nuevo: página 1 y 2
Pdf nuevo: página 3 y 4
Pdf nuevo: página 5 y 6

Y así hasta llegar a la última página.

Con el siguiente código consigo crear un pdf por cada página.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
require_once('./fpdf182/fpdf.php');
	require_once('./FPDI-master/fpdi.php');
 
	//$fichero = $_GET["f"];
	$filename = './ficherosOriginales/'.$filename;
	$directorioDestino = './ficherosDivididos/';
 
	//$dir = $dir ? $dir : './';
	//$filename = $dir.$filename;
 
	$pdf = new FPDI();
	$pagecount = $pdf->setSourceFile($dir.$filename);
 
	for ($i = 1; $i <= $pagecount; $i++) {
		$new_pdf = new FPDI();
		$new_pdf->AddPage('L');
		$new_pdf->setSourceFile($filename);
		$new_pdf->useTemplate($new_pdf->importPage($i));
 
		try {
			$new_filename = $dir.str_replace('.pdf','', $filename).'_'-$i.".pdf";
			$new_pdf->Output($new_filename,"F");
			echo "Page ".$i." split into ".$new_filename."<br />\n";
		} catch (Exception $e){
			echo 'Caught exception: ', $e->getMessage(), "\n";
		}
	}
¿Cómo puedo hacer para que lo haga cada 2 páginas? Que cada PDF nuevo creado contenga dos páginas.

¡Gracias de antemano!

Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 8
Ha aumentado su posición en 19 puestos en PHP (en relación al último mes)
Gráfica de PHP

FPDI Split PDF

Publicado por Ruben (3 intervenciones) el 24/03/2020 06:55:17
Buenas noches, puedes agregar un if y comprobar si la iteración es par y guardarlo cada vez que lo sea y después de guardar vuelve a inicializar la variable new_pdf para que no se te acumulen las paginas. El código quedaría de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
require_once('./fpdf182/fpdf.php');
require_once('./FPDI-master/fpdi.php');
$fichero = "documento.pdf"; //$fichero = $_GET["f"];
$filename = './ficherosOriginales/'.$fichero;
$directorioDestino = './ficherosDivididos/';
 
$pdf = new FPDI();
$pagecount = $pdf->setSourceFile($filename);
 
$new_pdf = new FPDI();
for ($i = 1; $i<=$pagecount; $i++) {
     $new_pdf->AddPage('L');
     $new_pdf->setSourceFile($filename);
     $new_pdf->useTemplate($new_pdf->importPage($i));
     if($i % 2 == 0 || $i == $pagecount){
     try {
      $new_filename = $directorioDestino.str_replace('.pdf','', $fichero).'_'.$i.".pdf";
      $new_pdf->Output($new_filename,"F");
      $new_pdf = new FPDI();
      echo "Page ".$i." split into ".$new_filename."<br />\n";
     } catch (Exception $e){
	echo 'Caught exception: ', $e->getMessage(), "\n";
     }
}
 
}

Un saludo, y espero te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

FPDI Split PDF

Publicado por Jorge (48 intervenciones) el 24/03/2020 07:44:35
Buenos días Rubén,

Sí señor, ¡¡MUUUCHAS GRACIASSS!! Has solucionado mi problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar