[Mapbender-users] High Quality Print

Marc Jansen jansen.marc at gmx.de
Wed Dec 13 04:59:07 EST 2006


Hallo Mike,


Wigold at aol.com schrieb:
> Hallo Liste,
>  
> hatte zwar vor einiger Zeit das Thema schon mal gepostet, aber leider 
> ohne große Resonanz. Das Problem habe ich besher immer noch nicht 
> lösen können:
>
> Wenn ich den printpdf Quality Wert auf 288dpi einstelle,
> dann wird zwar ein neues Fenster mit der pdf-datei geöffnet,
> aber es ist keine Karte sichtbar. Nur diese Fehlermeldung ist im 
> Kartenrahmen sichtbar:
> "msWMSLoadGetMapParams(): Image Size out of range, WIDTH and HEIGHT 
> must be between 1 and 2048 pixels."
> Das komische daran ist, das in meinem Mapfile (*_4.map) für den 
> 288dpi-Druck
> "SIZE 1600 1600" angegeben ist.
Das deutet darauf hin, das die Map-Requests zu groß sind.

Testweise könntest Du in der /print/mod_printPDF_pdf.php
die folgenden Zeilen:

if($factor>1){
	for($i=0; $i<count($array_urls); $i++){
		$m = new stripRequest($array_urls[$i]);
		$m->set('width',(intval($m->get('width'))*4));
		$m->set('height',(intval($m->get('height'))*4));
		if(in_array($m->get('map'),$highqualitymapfiles)){	
			$m->set('map',str_replace(".map","_4.map",$m->get('map')));			
		}
		$array_urls[$i] = $m->url;
	}
}


Durch dieses ersetzen:

if($factor>1){
	for($i=0; $i<count($array_urls); $i++){
		$m = new stripRequest($array_urls[$i]);
		$m->set('width',(intval($m->get('width'))*4));
		$m->set('height',(intval($m->get('height'))*4));
		if(in_array($m->get('map'),$highqualitymapfiles)){	
			$m->set('map',str_replace(".map","_4.map",$m->get('map')));			
		}
		$array_urls[$i] = $m->url;
	}
}

echo "<pre>";
print_r($array_urls);
echo "</pre>",
die('Druckscript abgebrochen!');

Das bricht das Script ab, sofort nachdem die Ersetzungen der Width und 
Height in den requests gemacht wurden.
Angezeigt werden dann die einzelnen Maprequest, die jeweils einzeln in 
einem Browser ausgeführt, eine Karte zurückliefern sollten. Ist dies 
nicht der Fall, so ist der Fehler im Mapfile zu suchen, es empfiehlt 
sich die tatsächlichen WIDTH | HEIGHT Parameter in den einzelnen urls 
anzuschauen.
> Das Mapfile habe ich mit dem Mapbender-Tool "mapfiler.php" generiert.
> Die Übersichtskarte wird im Druck übrigens angezeigt.
> Der 72dpi-Druck funktioniert einwandfrei.
> Was kann diese Fehlermeldung verursachen?
> Kann es evtl. an der vorkompilierten Version 4.8.1 des UMN Mapservers 
> für Windows liegen?
>  
> In der printpdf.conf habe ich folgendes stehen:
> /*
> * high quality printing 288dpi
> * highquality mapfiles will be supplemented with "_4"
> * example: germany.map -> germany_4.map
> */
>  
> $highquality = true;
> $highqualitymapfiles = array(
>  "/Pfad/zum/mapfile/test.map",
> );
>  
>  
> Muß etwa auch folgender Wert geändert werden?
> # Dots per cm (72 dpi):
> # 28.346456692913385826771653543307
> $DPC = 28.35;
>  
üblicherweise nicht.
>  
> Mfg
> Mike
Viel Erfolg,

-- Marc





More information about the Mapbender_users mailing list