Ich möchte ein PDF aus WMS in einer Webkartenanwendung erstellen.
Kann mir bitte jemand eine robuste Komponente empfehlen? Ich möchte kostenlos Open Source unter einer relativ geschäftsfreundlichen Lizenz (keine GPL, BSD / MIT usw. wäre ideal, LGPL wäre in Ordnung).
- Unsere WMS-Layer werden von ncWMS und UNM MapServer erstellt . Wir werden auch einige Ebenen von externen WMS-Anbietern überlagern wollen.
- EDIT : Wir entwickeln unseren eigenen JavaScript-Client basierend auf OpenLayers.
- EDIT : Wir haben Backend-Code in Java. Wir würden auch PHP oder andere Plattformen in Betracht ziehen, um das PDF zu erstellen.
MapFish wäre ausgezeichnet, aber es ist GPL.
open-source-gis
wms
pdf
MarkJ
quelle
quelle
Antworten:
Ich benutze Kairo und Pango (beide LGPL) zusammen, um PDF-Karten zu erstellen.
Es ist eine Low-Level-Lösung, aber Kairo verfügt über hervorragende Funktionen zum Zeichnen von Vektoren und zur Handhabung von Raster, während Pango sich hervorragend für den Satz eignet. Die Gesamtergebnisse sind großartig, aber es erfordert viel Codierung. Wenn ich beispielsweise eine Karte mit einer WMS-Ausgabe erstellen möchte, erstelle ich eine WMS-Anforderung, fordere das Bild an und zeichne es mit Kairo auf eine PDF-Leinwand.
Ich benutze diese Bibliotheken über Java-Gnome, aber in den meisten Sprachen gibt es Bindungen zu beiden.
quelle
Was ist mit http://code.google.com/p/wkhtmltopdf/ ? Es ist lgpl und ermöglicht es Ihnen, einfach ein PDF aus einer Webseitenvorlage zu generieren. Wir verwenden diesen Ansatz zusammen mit django, um das HTML dynamisch zu generieren, bevor es mit wkhtml als PDF gerendert wird.
Grüße
Tim
quelle
Geomajas verfügt über ein Druck-Plug-In, mit dem Sie Ihre Karte in PDF konvertieren können, sowie ein Berichts-Plug-In (in Bearbeitung), mit dem Sie mithilfe von JasperReports einen Bericht erstellen können, der das Kartenbild enthalten kann. Beide sind AGPL, es kann jedoch eine geschäftsfreundliche Lizenz angefordert werden (bereitgestellt von Geosparc ).
quelle
Nun, wir haben PDFBox (Apache-Lizenz) aus serverseitigem Java-Code verwendet.
Wir erstellen WMS-Anforderungen für die verschiedenen Ebenen, erhalten Bilder als speicherinterne Bitmaps und überlagern sie zu einer einzigen speicherinternen Bitmap. Verwenden von Java
BufferedImage
für die speicherinternen Bitmaps. Anschließend rendern wir die Bitmap mit PDFBox PDJpeg auf die PDF-Seite .Es funktioniert ziemlich gut. Ein Problem ist, dass die Kartenbilder im PDF leicht unscharf werden können, da Sie sie als JPEG codieren müssen, um sie mit PDFBox zu verwenden, mit der unvermeidlichen verlustbehafteten Komprimierung. Sie können dies verbessern, indem Sie die JPEG-Qualität im PDFJpeg-Konstruktor auf das Maximum einstellen und die Bilder in einer großen Größe (z. B. 300 dpi) anfordern.
Schließlich planen wir, unseren Code als Open Source zu veröffentlichen. Ich werde einen Link posten, wenn dies passiert.
Nochmals vielen Dank an Will, Allan und alle!
quelle