使用Google Map问题的Laravel PDF生成

问题描述 投票:1回答:1

我正在使用Barryvdh DOMPDF在Laravel中从视图生成PDF到PDF。除谷歌地图外,其他一切工作正常。这就是我的表现

  1. 创建了一个新的根 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)未正确放置,它被扭曲。像这样 See the attachment

有人可以找出问题是什么以及如何解决?

服务器上的图像很好,没有损坏。

php laravel google-maps pdf-generation dompdf
1个回答
0
投票

我这样做了,效果很好。

$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%;">

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.