jakebur01 Posted July 30, 2014 Share Posted July 30, 2014 I finally got my kml to display through the static maps api thinking I could then display my map on the pdf I'm generating using mpdf. But, it is not displaying the image in the pdf. It works fine on a blank test page. $kmlMap = "<img src=\"http://maps.googleapis.com/maps/api/staticmap?zoom=15&size=500x300&maptype=hybrid&path=color:0xff0000ff|weight:3|$correctedCoords \" /><br />"; Any ideas on how I could make this work with mpdf? Quote Link to comment Share on other sites More sharing options...
CroNiX Posted August 1, 2014 Share Posted August 1, 2014 (edited) Well, you can't legally do that. https://developers.google.com/maps/faq?csw=1#tos_staticmaps_reuse You may not store and serve copies of images generated using the Google Static Maps API from your website. All web pages that require static map images must link the src attribute of an HTML img tag or the CSS background-image attribute of an HTML div tag directly to the Google Static Maps API so that all map images are displayed within the HTML content of the web page and served directly to end users by Google. Edited August 1, 2014 by CroNiX Quote Link to comment Share on other sites More sharing options...
CroNiX Posted August 1, 2014 Share Posted August 1, 2014 (edited) I know you're not directly trying to do that, but the end result would be the same as the pdf generator would store a copy of the image and not dynamically generate it each time you view the pdf like you are above. Edited August 1, 2014 by CroNiX Quote Link to comment Share on other sites More sharing options...
CroNiX Posted August 1, 2014 Share Posted August 1, 2014 Also, I just read that mpdf won't store an image that doesn't have a file extension as it can't determine what image type to parse. Quote Link to comment Share on other sites More sharing options...
jakebur01 Posted August 1, 2014 Author Share Posted August 1, 2014 There has to be a way to alter the code so that it will see it as a .jpg. I am using jpg-baseline as the static image format. Could the code be altered to where it doesn't look for an extension but would bypass and parse all images as .jpg's? http://maps.googleapis.com/maps/api/staticmap?format=jpg-baseline&zoom=15&size=500x300&maptype=hybrid&path=color:0xff0000ff%7Cweight:3%7C33.00246877112488,-92.93866290403291%7C%2033.00644261225979,-92.93867958613085%7C%2033.00645557858705,-92.94401937409705%7C%2033.00247812848498,-92.94400274254195%7C%2033.00246877112488,-92.93866290403291 function _getImage(&$file, $firsttime=true, $allowvector=true, $orig_srcpath=false) { // firsttime i.e. whether to add to this->images - use false when calling iteratively // Image Data passed directly as var:varname if (preg_match('/var:\s*(.*)/',$file, $v)) { $data = $this->$v[1]; $file = md5($data); } // mPDF 5.5.13 if (preg_match('/data:image\/(gif|jpeg|png);base64,(.*)/',$file, $v)) { $type = $v[1]; $data = base64_decode($v[2]); $file = md5($data); } // mPDF 5.6.02 if ($firsttime && $file && substr($file,0,5)!='data:') { $file = urlencode_part($file); } if ($firsttime && $orig_srcpath && substr($orig_srcpath,0,5)!='data:') { $orig_srcpath = urlencode_part($orig_srcpath); } $ppUx = 0; if ($orig_srcpath && isset($this->images[$orig_srcpath])) { $file=$orig_srcpath; return $this->images[$orig_srcpath]; } if (isset($this->images[$file])) { return $this->images[$file]; } else if ($orig_srcpath && isset($this->formobjects[$orig_srcpath])) { $file=$orig_srcpath; return $this->formobjects[$file]; } else if (isset($this->formobjects[$file])) { return $this->formobjects[$file]; } // Save re-trying image URL's which have already failed else if ($firsttime && isset($this->failedimages[$file])) { return $this->_imageError($file, $firsttime, ''); } if (empty($data)) { $type = ''; $data = ''; if ($orig_srcpath && $this->basepathIsLocal && $check = @fopen($orig_srcpath,"rb")) { fclose($check); $file=$orig_srcpath; $data = file_get_contents($file); $type = $this->_imageTypeFromString($data); } if (!$data && $check = @fopen($file,"rb")) { fclose($check); $data = file_get_contents($file); $type = $this->_imageTypeFromString($data); } if ((!$data || !$type) && !ini_get('allow_url_fopen') ) { // only worth trying if remote file and !ini_get('allow_url_fopen') $this->file_get_contents_by_socket($file, $data); // needs full url?? even on local (never needed for local) if ($data) { $type = $this->_imageTypeFromString($data); } } if ((!$data || !$type) && !ini_get('allow_url_fopen') && function_exists("curl_init")) { $this->file_get_contents_by_curl($file, $data); // needs full url?? even on local (never needed for local) if ($data) { $type = $this->_imageTypeFromString($data); } } } if (!$data) { return $this->_imageError($file, $firsttime, 'Could not find image file'); } if (empty($type)) { $type = $this->_imageTypeFromString($data); } if (($type == 'wmf' || $type == 'svg') && !$allowvector) { return $this->_imageError($file, $firsttime, 'WMF or SVG image file not supported in this context'); } // SVG if ($type == 'svg') { if (!class_exists('SVG', false)) { include(_MPDF_PATH .'classes/svg.php'); } $svg = new SVG($this); $family=$this->FontFamily; $style=$this->FontStyle; $size=$this->FontSizePt; $info = $svg->ImageSVG($data); //Restore font if($family) $this->SetFont($family,$style,$size,false); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing SVG file'); } $info['type']='svg'; $info['i']=count($this->formobjects)+1; $this->formobjects[$file]=$info; return $info; } // JPEG if ($type == 'jpeg' || $type == 'jpg') { $hdr = $this->_jpgHeaderFromString($data); if (!$hdr) { return $this->_imageError($file, $firsttime, 'Error parsing JPG header'); } $a = $this->_jpgDataFromHeader($hdr); $j = strpos($data,'JFIF'); if ($j) { //Read resolution $unitSp=ord(substr($data,($j+7),1)); if ($unitSp > 0) { $ppUx=$this->_twobytes2int(substr($data,($j+,2)); // horizontal pixels per meter, usually set to zero if ($unitSp == 2) { // = dots per cm (if == 1 set as dpi) $ppUx=round($ppUx/10 *25.4); } } } if ($a[2] == 'DeviceCMYK' && (($this->PDFA && $this->restrictColorSpace!=3) || $this->restrictColorSpace==2)) { // convert to RGB image if (!function_exists("gd_info")) { $this->Error("JPG image may not use CMYK color space (".$file.")."); } if ($this->PDFA && !$this->PDFAauto) { $this->PDFAXwarnings[] = "JPG image may not use CMYK color space - ".$file." - (Image converted to RGB. NB This will alter the colour profile of the image.)"; } $im = @imagecreatefromstring($data); if ($im) { $tempfile = _MPDF_TEMP_PATH.'_tempImgPNG'.md5($file).RAND(1,10000).'.png'; imageinterlace($im, false); $check = @imagepng($im, $tempfile); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary file ('.$tempfile.') whilst using GD library to parse JPG(CMYK) image'); } $info = $this->_getImage($tempfile, false); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file ('.$tempfile.') created with GD library to parse JPG(CMYK) image'); } imagedestroy($im); unlink($tempfile); $info['type']='jpg'; if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } else { return $this->_imageError($file, $firsttime, 'Error creating GD image file from JPG(CMYK) image'); } } else if ($a[2] == 'DeviceRGB' && ($this->PDFX || $this->restrictColorSpace==3)) { // Convert to CMYK image stream - nominally returned as type='png' $info = $this->_convImage($data, $a[2], 'DeviceCMYK', $a[0], $a[1], $ppUx, false); if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "JPG image may not use RGB color space - ".$file." - (Image converted to CMYK. NB This will alter the colour profile of the image.)"; } } else if (($a[2] == 'DeviceRGB' || $a[2] == 'DeviceCMYK') && $this->restrictColorSpace==1) { // Convert to Grayscale image stream - nominally returned as type='png' $info = $this->_convImage($data, $a[2], 'DeviceGray', $a[0], $a[1], $ppUx, false); } else { $info = array('w'=>$a[0],'h'=>$a[1],'cs'=>$a[2],'bpc'=>$a[3],'f'=>'DCTDecode','data'=>$data, 'type'=>'jpg'); if ($ppUx) { $info['set-dpi'] = $ppUx; } } if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing or converting JPG image'); } if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } // PNG else if ($type == 'png') { //Check signature if(substr($data,0,!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) { return $this->_imageError($file, $firsttime, 'Error parsing PNG identifier'); } //Read header chunk if(substr($data,12,4)!='IHDR') { return $this->_imageError($file, $firsttime, 'Incorrect PNG file (no IHDR block found)'); } $w=$this->_fourbytes2int(substr($data,16,4)); $h=$this->_fourbytes2int(substr($data,20,4)); $bpc=ord(substr($data,24,1)); $errpng = false; $pngalpha = false; if($bpc> { $errpng = 'not 8-bit depth'; } $ct=ord(substr($data,25,1)); if($ct==0) { $colspace='DeviceGray'; } elseif($ct==2) { $colspace='DeviceRGB'; } elseif($ct==3) { $colspace='Indexed'; } elseif($ct==4) { $colspace='DeviceGray'; $errpng = 'alpha channel'; $pngalpha = true; } else { $colspace='DeviceRGB'; $errpng = 'alpha channel'; $pngalpha = true; } if(ord(substr($data,26,1))!=0) { $errpng = 'compression method'; } if(ord(substr($data,27,1))!=0) { $errpng = 'filter method'; } if(ord(substr($data,28,1))!=0) { $errpng = 'interlaced file'; } $j = strpos($data,'pHYs'); if ($j) { //Read resolution $unitSp=ord(substr($data,($j+12),1)); if ($unitSp == 1) { $ppUx=$this->_fourbytes2int(substr($data,($j+4),4)); // horizontal pixels per meter, usually set to zero $ppUx=round($ppUx/1000 *25.4); } } if (($colspace == 'DeviceRGB' || $colspace == 'Indexed') && ($this->PDFX || $this->restrictColorSpace==3)) { // Convert to CMYK image stream - nominally returned as type='png' $info = $this->_convImage($data, $colspace, 'DeviceCMYK', $w, $h, $ppUx, $pngalpha); if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "PNG image may not use RGB color space - ".$file." - (Image converted to CMYK. NB This will alter the colour profile of the image.)"; } } else if (($colspace == 'DeviceRGB' || $colspace == 'Indexed') && $this->restrictColorSpace==1) { // Convert to Grayscale image stream - nominally returned as type='png' $info = $this->_convImage($data, $colspace, 'DeviceGray', $w, $h, $ppUx, $pngalpha); } else if (($this->PDFA || $this->PDFX) && $pngalpha) { // Remove alpha channel if ($this->restrictColorSpace==1) { // Grayscale $info = $this->_convImage($data, $colspace, 'DeviceGray', $w, $h, $ppUx, $pngalpha); } else if ($this->restrictColorSpace==3) { // CMYK $info = $this->_convImage($data, $colspace, 'DeviceCMYK', $w, $h, $ppUx, $pngalpha); } else if ($this->PDFA ) { // RGB $info = $this->_convImage($data, $colspace, 'DeviceRGB', $w, $h, $ppUx, $pngalpha); } if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "Transparency (alpha channel) not permitted in PDFA or PDFX files - ".$file." - (Image converted to one without transparency.)"; } } else if ($errpng || $pngalpha) { if (function_exists('gd_info')) { $gd = gd_info(); } else {$gd = array(); } if (!isset($gd['PNG Support'])) { return $this->_imageError($file, $firsttime, 'GD library required for PNG image ('.$errpng.')'); } $im = imagecreatefromstring($data); if (!$im) { return $this->_imageError($file, $firsttime, 'Error creating GD image from PNG file ('.$errpng.')'); } $w = imagesx($im); $h = imagesy($im); if ($im) { $tempfile = _MPDF_TEMP_PATH.'_tempImgPNG'.md5($file).RAND(1,10000).'.png'; // Alpha channel set if ($pngalpha) { if ($this->PDFA) { $this->Error("PDFA1-b does not permit images with alpha channel transparency (".$file.")."); } $imgalpha = imagecreate($w, $h); // generate gray scale pallete for ($c = 0; $c < 256; ++$c) { ImageColorAllocate($imgalpha, $c, $c, $c); } // extract alpha channel for ($xpx = 0; $xpx < $w; ++$xpx) { for ($ypx = 0; $ypx < $h; ++$ypx) { $alpha = (imagecolorat($im, $xpx, $ypx) & 0x7F000000) >> 24; // mPDF 5.7.2 if ($alpha < 127) { imagesetpixel($imgalpha, $xpx, $ypx, (255-($alpha * 2))); } } } // create temp alpha file $tempfile_alpha = _MPDF_TEMP_PATH.'_tempMskPNG'.md5($file).RAND(1,10000).'.png'; if (!is_writable(_MPDF_TEMP_PATH)) { // mPDF 5.7.2 ob_start(); $check = @imagepng($imgalpha); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary image object whilst using GD library to parse PNG image'); } imagedestroy($imgalpha); $this->_tempimg = ob_get_contents(); $this->_tempimglnk = 'var:_tempimg'; ob_end_clean(); // extract image without alpha channel $imgplain = imagecreatetruecolor($w, $h); imagealphablending( $imgplain, false ); // mPDF 5.7.2 imagecopy($imgplain, $im, 0, 0, 0, 0, $w, $h); // create temp image file $minfo = $this->_getImage($this->_tempimglnk, false); if (!$minfo) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file image object created with GD library to parse PNG image'); } ob_start(); $check = @imagepng($imgplain); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary image object whilst using GD library to parse PNG image'); } $this->_tempimg = ob_get_contents(); $this->_tempimglnk = 'var:_tempimg'; ob_end_clean(); $info = $this->_getImage($this->_tempimglnk, false); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file image object created with GD library to parse PNG image'); } imagedestroy($imgplain); $imgmask = count($this->images)+1; $minfo['cs'] = 'DeviceGray'; $minfo['i']=$imgmask ; $this->images[$tempfile_alpha] = $minfo; } else { $check = @imagepng($imgalpha, $tempfile_alpha); if (!$check) { return $this->_imageError($file, $firsttime, 'Failed to create temporary image file ('.$tempfile_alpha.') parsing PNG image with alpha channel ('.$errpng.')'); } imagedestroy($imgalpha); // extract image without alpha channel $imgplain = imagecreatetruecolor($w, $h); imagealphablending( $imgplain, false ); // mPDF 5.7.2 imagecopy($imgplain, $im, 0, 0, 0, 0, $w, $h); // create temp image file $check = @imagepng($imgplain, $tempfile); if (!$check) { return $this->_imageError($file, $firsttime, 'Failed to create temporary image file ('.$tempfile.') parsing PNG image with alpha channel ('.$errpng.')'); } imagedestroy($imgplain); // embed mask image $minfo = $this->_getImage($tempfile_alpha, false); unlink($tempfile_alpha); if (!$minfo) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file ('.$tempfile_alpha.') created with GD library to parse PNG image'); } $imgmask = count($this->images)+1; $minfo['cs'] = 'DeviceGray'; $minfo['i']=$imgmask ; $this->images[$tempfile_alpha] = $minfo; // embed image, masked with previously embedded mask $info = $this->_getImage($tempfile, false); unlink($tempfile); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file ('.$tempfile.') created with GD library to parse PNG image'); } } $info['masked'] = $imgmask; if ($ppUx) { $info['set-dpi'] = $ppUx; } $info['type']='png'; if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } else { // No alpha/transparency set imagealphablending($im, false); imagesavealpha($im, false); imageinterlace($im, false); if (!is_writable($tempfile)) { ob_start(); $check = @imagepng($im); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary image object whilst using GD library to parse PNG image'); } $this->_tempimg = ob_get_contents(); $this->_tempimglnk = 'var:_tempimg'; ob_end_clean(); $info = $this->_getImage($this->_tempimglnk, false); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file image object created with GD library to parse PNG image'); } imagedestroy($im); } else { $check = @imagepng($im, $tempfile ); if (!$check) { return $this->_imageError($file, $firsttime, 'Failed to create temporary image file ('.$tempfile.') parsing PNG image ('.$errpng.')'); } imagedestroy($im); $info = $this->_getImage($tempfile, false) ; unlink($tempfile ); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file ('.$tempfile.') created with GD library to parse PNG image'); } } if ($ppUx) { $info['set-dpi'] = $ppUx; } $info['type']='png'; if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } } } else { $parms='/DecodeParms <</Predictor 15 /Colors '.($ct==2 ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w.'>>'; //Scan chunks looking for palette, transparency and image data $pal=''; $trns=''; $pngdata=''; $p = 33; do { $n=$this->_fourbytes2int(substr($data,$p,4)); $p += 4; $type=substr($data,$p,4); $p += 4; if($type=='PLTE') { //Read palette $pal=substr($data,$p,$n); $p += $n; $p += 4; } elseif($type=='tRNS') { //Read transparency info $t=substr($data,$p,$n); $p += $n; if($ct==0) $trns=array(ord(substr($t,1,1))); elseif($ct==2) $trns=array(ord(substr($t,1,1)),ord(substr($t,3,1)),ord(substr($t,5,1))); else { $pos=strpos($t,chr(0)); if(is_int($pos)) $trns=array($pos); } $p += 4; } elseif($type=='IDAT') { $pngdata.=substr($data,$p,$n); $p += $n; $p += 4; } elseif($type=='IEND') { break; } else if (preg_match('/[a-zA-Z]{4}/',$type)) { $p += $n+4; } else { return $this->_imageError($file, $firsttime, 'Error parsing PNG image data'); } } while($n); if (!$pngdata) { return $this->_imageError($file, $firsttime, 'Error parsing PNG image data - no IDAT data found'); } if($colspace=='Indexed' and empty($pal)) { return $this->_imageError($file, $firsttime, 'Error parsing PNG image data - missing colour palette'); } $info = array('w'=>$w,'h'=>$h,'cs'=>$colspace,'bpc'=>$bpc,'f'=>'FlateDecode','parms'=>$parms,'pal'=>$pal,'trns'=>$trns,'data'=>$pngdata); $info['type']='png'; if ($ppUx) { $info['set-dpi'] = $ppUx; } } if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing or converting PNG image'); } if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } // GIF else if ($type == 'gif') { if (function_exists('gd_info')) { $gd = gd_info(); } else {$gd = array(); } if (isset($gd['GIF Read Support']) && $gd['GIF Read Support']) { $im = @imagecreatefromstring($data); if ($im) { $tempfile = _MPDF_TEMP_PATH.'_tempImgPNG'.md5($file).RAND(1,10000).'.png'; imagealphablending($im, false); imagesavealpha($im, false); imageinterlace($im, false); if (!is_writable($tempfile)) { ob_start(); $check = @imagepng($im); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary image object whilst using GD library to parse GIF image'); } $this->_tempimg = ob_get_contents(); $this->_tempimglnk = 'var:_tempimg'; ob_end_clean(); $info = $this->_getImage($this->_tempimglnk, false); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file image object created with GD library to parse GIF image'); } imagedestroy($im); } else { $check = @imagepng($im, $tempfile); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary file ('.$tempfile.') whilst using GD library to parse GIF image'); } $info = $this->_getImage($tempfile, false); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file ('.$tempfile.') created with GD library to parse GIF image'); } imagedestroy($im); unlink($tempfile); } $info['type']='gif'; if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } else { return $this->_imageError($file, $firsttime, 'Error creating GD image file from GIF image'); } } if (!class_exists('gif', false)) { include_once(_MPDF_PATH.'classes/gif.php'); } $gif=new CGIF(); $h=0; $w=0; $gif->loadFile($data, 0); if(isset($gif->m_img->m_gih->m_bLocalClr) && $gif->m_img->m_gih->m_bLocalClr) { $nColors = $gif->m_img->m_gih->m_nTableSize; $pal = $gif->m_img->m_gih->m_colorTable->toString(); if($bgColor != -1) { $bgColor = $gif->m_img->m_gih->m_colorTable->colorIndex($bgColor); } $colspace='Indexed'; } elseif(isset($gif->m_gfh->m_bGlobalClr) && $gif->m_gfh->m_bGlobalClr) { $nColors = $gif->m_gfh->m_nTableSize; $pal = $gif->m_gfh->m_colorTable->toString(); if((isset($bgColor)) and $bgColor != -1) { $bgColor = $gif->m_gfh->m_colorTable->colorIndex($bgColor); } $colspace='Indexed'; } else { $nColors = 0; $bgColor = -1; $colspace='DeviceGray'; $pal=''; } $trns=''; if(isset($gif->m_img->m_bTrans) && $gif->m_img->m_bTrans && ($nColors > 0)) { $trns=array($gif->m_img->m_nTrans); } $gifdata=$gif->m_img->m_data; $w=$gif->m_gfh->m_nWidth; $h=$gif->m_gfh->m_nHeight; $gif->ClearData(); if($colspace=='Indexed' and empty($pal)) { return $this->_imageError($file, $firsttime, 'Error parsing GIF image - missing colour palette'); } if ($this->compress) { $gifdata=gzcompress($gifdata); $info = array( 'w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>8, 'f'=>'FlateDecode', 'pal'=>$pal, 'trns'=>$trns, 'data'=>$gifdata); } else { $info = array( 'w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>8, 'pal'=>$pal, 'trns'=>$trns, 'data'=>$gifdata); } $info['type']='gif'; if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } /*-- IMAGES-BMP --*/ // BMP (Windows Bitmap) else if ($type == 'bmp') { if (!class_exists('bmp', false)) { include(_MPDF_PATH.'classes/bmp.php'); } if (empty($this->bmp)) { $this->bmp = new bmp($this); } $info = $this->bmp->_getBMPimage($data, $file); if (isset($info['error'])) { return $this->_imageError($file, $firsttime, $info['error']); } if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } /*-- END IMAGES-BMP --*/ /*-- IMAGES-WMF --*/ // WMF else if ($type == 'wmf') { if (!class_exists('wmf', false)) { include(_MPDF_PATH.'classes/wmf.php'); } if (empty($this->wmf)) { $this->wmf = new wmf($this); } $wmfres = $this->wmf->_getWMFimage($data); if ($wmfres[0]==0) { if ($wmfres[1]) { return $this->_imageError($file, $firsttime, $wmfres[1]); } return $this->_imageError($file, $firsttime, 'Error parsing WMF image'); } $info = array('x'=>$wmfres[2][0],'y'=>$wmfres[2][1],'w'=>$wmfres[3][0],'h'=>$wmfres[3][1],'data'=>$wmfres[1]); $info['i']=count($this->formobjects)+1; $info['type']='wmf'; $this->formobjects[$file]=$info; return $info; } /*-- END IMAGES-WMF --*/ // UNKNOWN TYPE - try GD imagecreatefromstring else { if (function_exists('gd_info')) { $gd = gd_info(); } else {$gd = array(); } if (isset($gd['PNG Support']) && $gd['PNG Support']) { $im = @imagecreatefromstring($data); if (!$im) { return $this->_imageError($file, $firsttime, 'Error parsing image file - image type not recognised, and not supported by GD imagecreate'); } $tempfile = _MPDF_TEMP_PATH.'_tempImgPNG'.md5($file).RAND(1,10000).'.png'; imagealphablending($im, false); imagesavealpha($im, false); imageinterlace($im, false); $check = @imagepng($im, $tempfile); if (!$check) { return $this->_imageError($file, $firsttime, 'Error creating temporary file ('.$tempfile.') whilst using GD library to parse unknown image type'); } $info = $this->_getImage($tempfile, false); imagedestroy($im); unlink($tempfile); if (!$info) { return $this->_imageError($file, $firsttime, 'Error parsing temporary file ('.$tempfile.') created with GD library to parse unknown image type'); } $info['type']='png'; if ($firsttime) { $info['i']=count($this->images)+1; $this->images[$file]=$info; } return $info; } } return $this->_imageError($file, $firsttime, 'Error parsing image file - image type not recognised'); } Quote Link to comment Share on other sites More sharing options...
CroNiX Posted August 1, 2014 Share Posted August 1, 2014 Sorry, I'm not going to help violate googles terms of service. To display a map, they want you to retrieve it each time (like from a web page) and not store it. You're trying to store it in your pdf. Quote Link to comment Share on other sites More sharing options...
jakebur01 Posted August 1, 2014 Author Share Posted August 1, 2014 CroNiX I have a license. Besides that doesn't make any sense to me. Google Earth Pro lets you export images and pdf's. Right now they can print a picture of the map off of the webpage, my only problem is that I have my content ( details, images, etc.) in tabs. So, If you print the page you are only going to get whats displayed in the active tab. By putting everything on pages in a pdf that will allow them to print everything they need on individual pages. Or I could e-mail them a copy to print. I'm not doing anything illegal, they would print the map anyway. Quote Link to comment Share on other sites More sharing options...
CroNiX Posted August 1, 2014 Share Posted August 1, 2014 Well, you're dealing with the static maps api, not google earth pro, and the TOS for that service prohibits what you are trying to do. Please read it. It doesn't matter if you have a license (which just allows you have more hits to the service/day). If you can show something from the static maps api TOS that expressly allows you to store one of their images without using their api each time outside of a publicly accessible website, please point it out and I'll gladly try to help. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.