Fpdi split pdf
Publicado por luis Romero (1 intervención) el 26/05/2022 21:08:10
Buenas tardes.
Necesito ayuda, estoy trabajando en un proyecto donde tengo que cargar un PDF con varias paginas y este mismo separar cada una de esas paginas y guardarlas, estoy usando Angular para el front y Laravel para el Back.
En este ultimo estoy usando Fpdi y TCpdi para poder separar los pdfs pero no lo estoy logrando y no veo el error, les adjunto el codigo
Estoy usando la funcion saveRecibo para recibir el pdf y guardarlo en una carpeta.
Tambien hago el llamado a la funcion splitPdf en donde separo las paginas del pdf, sin embargo no logro hacer que lea el pdf que ya tengo ni que guarde los pdfs nuevos en la carpeta
Muchas gracias de antemano!
Necesito ayuda, estoy trabajando en un proyecto donde tengo que cargar un PDF con varias paginas y este mismo separar cada una de esas paginas y guardarlas, estoy usando Angular para el front y Laravel para el Back.
En este ultimo estoy usando Fpdi y TCpdi para poder separar los pdfs pero no lo estoy logrando y no veo el error, les adjunto el codigo
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;
use \App\Audit;
use App\Recibo;
use App\Empleado;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\UploadedFile;
use PDF;
use setasign\Fpdi\Tcpdf\Fpdi;
use setasign\Fpdi\PdfReader;
class ReciboController extends Controller {
public function saveRecibo (request $request) {
try {
if ($request->hasFile('myField')) {
$file = $request->file('myField');
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$fileNameOnly = pathinfo($filename, PATHINFO_FILENAME);
$time = time();
$completePdf = str_replace(' ', '_', $fileNameOnly).'-'.date('m-d-Y-s', $time).'Original.'.$extension;
$path = '/public/recibos/'.date('m-d-Y', $time);
if (!file_exists($path)) {
mkdir($path, 0777);
}
$save = $file->storeAs($path, $completePdf);
$this->splitPdf($completePdf,$path);
return response()->json(['status' => true, 'message'=> 'Guardado con exito']);
}
} catch (\Exception $e) {
return response()->json(['status' => false, 'message' => $e]);
}
}
}
Estoy usando la funcion saveRecibo para recibir el pdf y guardarlo en una carpeta.
Tambien hago el llamado a la funcion splitPdf en donde separo las paginas del pdf, sin embargo no logro hacer que lea el pdf que ya tengo ni que guarde los pdfs nuevos en la carpeta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public function splitPdf ($filename,$dir) {
$pdf = new Fpdi();
$count = $pdf->setSourceFile($filename);
for ($i = 1; $i <= $count; $i++) {
$newPdf = new Fpdi();
$newPdf->AddPage();
$newPdf->setSourceFile($filename);
$newPdf->useTemplate($newPdf->importPage($i));
try {
$newFilename = $dir.str_replace('.pdf', '', $filename).'_'.$i.".pdf";
$newPdf->Output($newFilename, "F");
} catch (\Exception $e){
return response()->json(['status' => false, 'message' => $e]);
}
}
Muchas gracias de antemano!
Valora esta pregunta


0