我正在使用Barryvdh DOMPDF在Laravel中从视图生成PDF到PDF。除谷歌地图外,其他一切工作正常。这就是我的表现
Route::get('/printPDF', 'Printer@printPDF');
在Printer Controller中,创建了一个函数printPDF并调用Google Map Api来获取并保存服务器上的地图
$sMapa= public_path("temp/test5".".png");
$image = file_get_contents('http://maps.googleapis.com/maps/api/staticmap?center='
. $sLat. ",". $sLong
. '&maptype=hybrid'
.'&zoom=18&size=510x250&markers=size:tiny|color:red|'
. $sLat. ",". $sLong);
$fp= fopen($sMapa, 'w+');
fputs($fp, $image);
fclose($fp);
它创建了地图并将其作为Test5.png文件保存在服务器上。
现在我们加载视图以生成PDF并在该视图中使用test5.png,并使用绝对路径。
$pdf = "";
$pdf = \PDF::loadView('main_pdf', $data);
$file = "data/report/".$pdf_filename;
file_put_contents($file, $pdf->output());
生成PDF但Map(test5.png)未正确放置,它被扭曲。像这样
有人可以找出问题是什么以及如何解决?
服务器上的图像很好,没有损坏。
我这样做了,效果很好。
$image = file_get_contents('http://maps.googleapis.com/maps/api/staticmap?center='
. $sLat. ",". $sLong
. '&maptype=hybrid'
.'&zoom=18&size=510x250&markers=size:tiny|color:red|'
. $sLat. ",". $sLong);
//将图像保存在服务器中
Storage::put('public/folder/'.'somename'.png', $image);
只需在您正在转换为pdf的视图中查找它
例如:
<img src="{{ url('/') }}{{ Storage::url('folder/'somename'.png')}}" alt="" style="width: 100%;">
我希望这有帮助。