Clase en php que utiliza dompdf para guardar un pdf
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
class GeneradorPDF {
private $dompdf;
public function __construct() {
$this->dompdf = new Dompdf();
}
public function generarPDF($contenido, $nombreArchivo) {
$this->dompdf->loadHtml($contenido);
$this->dompdf->setPaper('A4', 'portrait');
$this->dompdf->render();
$pdf = $this->dompdf->output();
file_put_contents($nombreArchivo, $pdf);
}
}
// Ejemplo de uso:
$generadorPDF = new GeneradorPDF();
$contenido = '<html><body><h1>Ejemplo de contenido para PDF</h1></body></html>';
$nombreArchivo = 'ejemplo.pdf';
$generadorPDF->generarPDF($contenido, $nombreArchivo);
En este ejemplo, se crea una clase llamada GeneradorPDF que utiliza la biblioteca Dompdf para generar un archivo PDF a partir de una cadena de contenido HTML. La clase tiene un método llamado generarPDF que toma dos argumentos: $contenido (la cadena de contenido HTML) y $nombreArchivo (el nombre que se le dará al archivo PDF resultante).
En el constructor de la clase, se crea una instancia de la clase Dompdf y se asigna a una propiedad privada $dompdf.
En el método generarPDF, se carga el contenido HTML en la instancia de Dompdf utilizando el método loadHtml. Luego, se establece el tamaño de papel y orientación utilizando el método setPaper. A continuación, se renderiza el contenido utilizando el método render y se almacena en una variable $pdf.
Finalmente, el contenido del archivo PDF se guarda utilizando la función file_put_contents, que toma como argumentos el nombre del archivo y el contenido del archivo.
En la parte inferior del ejemplo, se crea una instancia de la clase GeneradorPDF y se llama al método generarPDF con un ejemplo de $contenido y $nombreArchivo.
Este es un ejemplo básico de cómo se puede utilizar la biblioteca Dompdf en una clase de PHP para generar y guardar un archivo PDF. Es importante tener en cuenta que hay muchas formas de utilizar esta biblioteca, y que se pueden ajustar diferentes opciones para personalizar el PDF generado.