我只是有同样的问题。
我成功安装了软件包,到目前为止一切顺利,但我尝试使用barryvdh/laravel-dompdf生成 pdf ,但我所有的尝试都失败了。
我的阿贾克斯:
$.ajax({
type: 'post',
url: 'equipos/generarPdf',
global: false,
data: {
'data': data
},
}).then(
function(data) {
console.log("Documento Generado");
}, function(data) {
console.log('this will run if the $.ajax fails');
}, function() {
console.log('this will run if the deferred generates a progress update');
}
);
注意:在执行 ajax 时,它返回我没有问题。
我的路线:
Route::post('equipos/generarPdf','EquiposController@generarPdf');
注意:至于路线,它很好地识别我。
我的控制器(generatePdf 函数):
public function generarPdf(Request $req) {
$pdf = \App::make('dompdf.wrapper');
$pdf->loadHTML('Test');
return $pdf->stream();
}
注意:当它到达这里时,我的应用程序什么也不做,我检查network
Google Chrome 并返回以下内容:
更新1:
我尝试了不同的方式:
在这里我加载文件并运行流:
public function generarPdf(Request $req) {
$datos = $req->data;
$name_file = $datos[1].'-'.$datos[2].'.pdf';
$file_storage = storage_path('app\public\pdf\equipos\\').$name_file;
$file_public = public_path('storage\pdf\equipos\\').$name_file;
$pdf = \PDF::loadView('equipos.pdf_vista', $datos);
$pdf->setPaper('a4');
$pdf->setWarnings(false);
$pdf->save($file_storage);
return $pdf->loadFile($file_public)->stream($name_file);
}
在这里我运行流:
public function generarPdf(Request $req) {
$datos = $req->data;
$name_file = $datos[1].'-'.$datos[2].'.pdf';
$file_storage = storage_path('app\public\pdf\equipos\\').$name_file;
$file_public = public_path('storage\pdf\equipos\\').$name_file;
$pdf = \PDF::loadView('equipos.pdf_vista', $datos);
$pdf->setPaper('a4');
$pdf->setWarnings(false);
$pdf->save($file_storage);
return $pdf->stream($name_file);
}
我在这里下载文件:
public function generarPdf(Request $req) {
$datos = $req->data;
$name_file = $datos[1].'-'.$datos[2].'.pdf';
$file_storage = storage_path('app\public\pdf\equipos\\').$name_file;
$file_public = public_path('storage\pdf\equipos\\').$name_file;
$pdf = \PDF::loadView('equipos.pdf_vista', $datos);
$pdf->setPaper('a4');
$pdf->setWarnings(false);
$pdf->save($file_storage);
return $pdf->download($name_file);
}
注意:该文件是在publica
Laravel 文件夹中创建的,但它不会生成文件的下载,对于 3 个选项,我没有收到错误,但作为响应,我得到的结果与之前公开的图像相同。
通过创建 GET 路由并从浏览器访问它,确保您的 pdf 正确生成。然后试试这个。
[编辑]
如果它已经在控制台日志中返回 PDF 符号,那么您唯一错误的是您的 ajax。用这个:
如果它仍然不起作用,请检查该 console.log 以确保 PDF 符号中没有出现奇怪的字符。如果它们出现,您必须在 javascript 和 php 端尝试 utf8 编码和 utf8 解码的组合,直到它起作用。
最近我遇到了一个问题......这是我的 php 版本,事实证明,在我的情况下,替换 xampp 的 laragon 是 php 7.0 版本,因此您可以查看 dompdf 的文档并查看您的 php 版本正在使用,如果因为您无法使用 er 主要版本,您将不得不更改 php 的版本或使用 dompdf 中所说的 php 的次要版本创建项目