2017-05-19 1 views
1

Ich benutze Barryvdh DOMPDF, um eine PDF-Datei aus der Ansicht zu PDF in Laravel zu generieren. Alles funktioniert gut außer einer Google Map. Dies ist, wie ich tueLaravel PDF-Generierung mit Google Map Problem

  1. Erstellen eine neue Wurzel

    Route::get('/printPDF', '[email protected]'); 
    
    1. Druckercontroller, eine Funktion PrintPDF erstellt und Google Map API-Aufruf zu erhalten und speichern Karte auf dem Server

      $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); 
      

Es erstellt die Karte und speichert sie als Test5.png Datei auf dem Server.

Jetzt laden wir die Ansicht, um PDF zu generieren und test5.png in dieser Ansicht mit absolutem Pfad zu verwenden.

$pdf = ""; 
    $pdf = \PDF::loadView('main_pdf', $data); 
    $file = "data/report/".$pdf_filename; 
    file_put_contents($file, $pdf->output()); 

PDF wird generiert, aber die Karte (test5.png) ist nicht richtig platziert, sie ist verzerrt. wie dieser  See the attachment

Kann jemand bitte herausfinden, was das Problem ist und wie man es repariert?

Das Bild auf dem Server ist in Ordnung und nicht beschädigt.

+0

wenn Sie nur test5.png öffnen ist das Bild auch verzerrt oder nicht? – FMashiro

+0

Es ist nicht verzerrt, wenn wir es direkt öffnen. – qammar

Antwort

0

Ich dit es auf diese Weise und es hat gut funktioniert.

$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); 

// Speichern Sie das Bild in Ihrem Server

Storage::put('public/folder/'.'somename'.png', $image); 

Und schauen Sie nur für ihn auf der Ansicht, Ihre

zum Beispiel pdf transformieren:

<img src="{{ url('/') }}{{ Storage::url('folder/'somename'.png')}}" alt="" style="width: 100%;"> 

I hoffe das hilft.