Error al imprimir un documento PDF

Veran, tengo una lista de juegos en mi base de datos y quiero poder generar documentos PDF para cada juego.

Al pulsar el botón subrayado me llevara a la siguiente función:

public function imprimir(Juego $j){
            $pdf = PDF::loadView('pdf.juego', compact('j'));
            $salida=$pdf->output();
            $ruta='C:/Users/pcx/Desktop/Juego '.$j->numero.' '.$j->nombre.'.pdf';
            file_put_contents($ruta, $salida);
            return back()->with('message',['success','El PDF con los datos del juego se han creado con exito. Buscalo en tu escritorio.']);
    }

Y este es el código de la vista con la que imprimiremos el juego:

 @extends('layouts.app')
 <html lang="es">
 <body>
 	<font size="15" style="display: inline;">Juego Nº {{$j->numero}}: {{$j->nombre}}</font> <img style="width: 68px; height: 68px;" align="right" src="{{url($j->ruta())}}"/>
 	<hr>
 	<div class="row justify-content-center">
 		<div class="col-md-5 card card-1">
 			<div class="card-body">
 				<p><b>Materiales:</b> {{$j->materiales}}</p><br>
 				<p><b>Agrupación de los jugadores:</b> {{$j->agrupacion->nombre}}</p><br>
 				<h3>Organización:</h3>
 				<p class="badge-primary" style="float: left; padding-left: 5px; padding-right: 4px; border-radius: 5px;">{{$j->organizacion}}</p>
 
 				<br><br><br>
 				<h3>Desarrollo del juego</h3>
 				<p class="badge-primary" style="float: left; padding-left: 5px; padding-right: 4px; border-radius: 5px;">{{$j->desarrollo}}</p>
 
 				@if($j->observaciones!="*")
 					<br><br>
 					<h3>Reglas y observaciones:</h3>
 					<p class="badge-primary" style="float: left; padding-left: 5px; padding-right: 4px; border-radius: 5px;">{{$j->observaciones}}</p>
 				@endif
 
 				@if($j->variantes!="*")
 					<br><br>
 					<h3>Variantes:</h3>
 					<p class="badge-primary" style="float: left; padding-left: 5px; padding-right: 4px; border-radius: 5px;">{{$j->variantes}}</p>
 				@endif
 
 				<?php
 					$contenidos=$j->enlaces;
 				?>
 
 				@if(count($contenidos))
 					<br><br><br>
 					<h3>Contenidos:</h3>
 					@foreach($contenidos as $contenido)
 						<span class="badge badge-cat badge-info">{{$contenido->contenido->nombre}}</span>
 					@endforeach
 				@endif
 			</div>
 		</div>
 	</div>
 </body>
 </html>

Pero me sale este mensaje de error:

Cuando lo hacia con localhost funcionaba.

Otra cosa que he intentado este código:

public function imprimir(Juego $j){
     $pdf = PDF::loadView('pdf.juego', compact('j'));
     return $pdf->download('Juego Nº '.$j->numero.': '.$j->nombre.'.pdf');
}

Y me sale esto:

Hi !

Yes, I am currently investigating the problem and it appears there is an issue with DOMPDF itself: https://github.com/barryvdh/laravel-dompdf/issues/346

I will reply after a while if I find a solution to this one.

1 Like

Por ahora parece que no hay nada aun.
Extrañamente, ahora tengo así el código:

public function imprimir(Juego $j){
$pdf = PDF::loadView(‘pdf.juego’, compact(‘j’));
$salida=$pdf->output();
$ruta=‘C:/Users/pcx/Desktop/Juego ‘.$j->numero.’ ‘.$j->nombre.’.pdf’;
file_put_contents($ruta, $salida);
return back()->with(‘message’,[‘success’,‘El PDF con los datos del juego se han creado con exito. Buscalo en tu escritorio.’]);
}

Y me da esto al intentar crear el PDF:

Al menos ya salen mensajes de error más explicativos, aunque la historia es que sigo sin poder crear documentos PDF.

Yes, that error now pops up because I deleted the fonts cache from DOMPDF, as explained in the GITHub link I posted earlier.

1 Like

Bueno, ya solucione lo de la seguridad de Firefox, y ya por ahora solo queda imprimir en PDF.
Sigo recibiendo ese mensaje de error:

There is nothing I can do about it. The issue is still open.

1 Like

Los días pasa y sigo sin poder imprimir en PDF.
¿Cómo hacen otros usuarios para imprimir documentos PDF con proyectos de Laravel?
Utilizo DomPDF, así que si existe otro modo de imprimir documentos PDF y que tambien aqui funcione, quisiera saberlo.

Actualmente así tengo el código:

public function imprimir(Juego $j){
$pdf=PDF::loadView('pdf.juego', compact('j'));
return $pdf->download();
}

Pero seguimos en las mismas.

Una cosa, me dicen que quizas sea un problema de las “fuentes” de la carpeta de bootstrap y que deberia eliminarlas.
¿Se refiere a esa cosa que esta entre las etiquetas “font”?

The problem is from DomPDF’s side and/or from its configurations. There is nothing I can technically do about it.

Try re-updating DomPDF from Composer.


You may need to update it from a UNIX system so that its configurations are propagated properly.

I try use composer update, but another problem appear:

Package is not installed: intervention/image-9999999-dev

  1. Create a backup of your current project

  1. Try
     
    composer require intervention/image
     
  2. Then perform
     
    composer update


Failed again!