Skip to content

tlapanco/laravel-merge2pdf

Repository files navigation

Laravel - Merge2pdf

Laravel Livewire TailwindCSS

Ver demo

💻 Tecnologías

  • Laravel (v11)
  • Livewire (v3)
  • Tailwind (V3.4)

🪮 Capturas de pantalla

📱 Móvil
Sección Captura
Inicio Home page - mobile
Subiendo archivos Uploading files - mobile
Agregando más archivos Adding files - mobile
Listado de archivos Files list - mobile
Validación Validations - mobile
Descarga Download - mobile
🖥️ Escritorio
Sección Captura
Inicio Home page - Desktop
Subiendo archivos Uploading files - Desktop
Listado de archivos Files list - Desktop
Descarga Download - Desktop

🚀 Para empezar

Sientete libre de modificar este proyecto a tu gusto, es un proyecto sencillo al cual se le pueden agregar nuevas funcionalidades tanto como sean necesarias.

🗃️ Archivos subidos

Para este proyecto, los archivos subidos se guardan en storage/app/public/temp

Uploaded files dir

Livewire te permite cambiar la ubicación en donde se guardarán los archivos que suba el usuario, para ello es necesario modificar el archivo livewire.php ubicado en la carpeta config

Config livewire.php

Dentro del archivo busca temporary_file_upload, el cual se ve de la siguiente manera:

temporary_file_upload

Como podras notar, para este proyecto esta configurado, pero en caso de que lo quiras cambiar, modifica directory por el nombre de la carpeta de tu elección:

'directory' => 'ruta/a/tu/directorio'

Ten en cuenta que la unidad de almacenamiento esta seleccionada en public por lo que tu direcotrio debera de estar dentro de storage/app/public

En caso de no contar con el archivo livewire.php puedes generarlo con el siguiente comando:

> php artisan livewire:publish --config
📂 PDFs unidos

Los archivos PDF que se unen, se guardan en storage/app/public/mergedpdfs

Merged pdfs

También puedes cambiar la carpeta destino, creando la tuya, te recomiendo hacerlo dentro de storage/app/public. Posteriormente es necesario cambiar el archivo UploadPDf.php ubicado en app/Livewire

upload pdf

Aquí deberás cambiar la varibale $pdf_path dentro del método merge_pdfs() En nuestro proyecto está de la siguiente manera:

$pdf_path = storage_path('app/public/mergedpdfs/');

Reemplaza el argumento que se le da a la función storage_path por la ruta a tu directorio:

#Ejemplo
$pdf_path = storage_path('app/public/ruta/a/tu/carpeta/');

De igual manera dentro de este archivo, puedes cambiar el nombre del nuevo pdf creado, cambiando $filename: En nuestro proyecto está de la siguiente manera:

#Concatena 'PDF-Unido con la fecha que se obtiene en la ejecución 
$filename =  'PDF-Unido '.date('m-d-Y h-i-s a', time()).'.pdf';

Esta así para evitar conflictos con nombres repetidos y cause errores de descarga. Puedes cambiar al nombre de tu preferencia, toma en cuenta lo anterior, para evitar conflictos

#Ejemplo
$filename =  'Tu-propio-nombre.pdf';
⬇️ Descarga de PDF unido

En caso de que hayas cambiado la carpeta de destino donde se guardarán los pdf unidos, también es necesario cambiar la ruta de descarga, para ello deberás econtrar el archivo Download.php dentro de app/Livewire

Download Aquí, modificarás el método download()

public function download() {
    #Se hace uso de response()->download()
    #Recibe la ruta al archivo a descargar como argumento
    return response()->download(storage_path('app/public/mergedpdfs/') . $this->filename);
}

Agrega la ruta a tu directorio que cambiaste previamente en UploadPdf.php

public function download() {
    #Ejemplo
    return response()->download(storage_path('app/public/ruta/a/tu/directorio/') . $this->filename);
}

Listo, ahora todo seguirá funcionando sin problemas.

✅ Por hacer

  • Agregar: Arrastrar y soltar archivos.