WebアプリケーションでWMSからPDFを作成するオープンソースコンポーネントを探しています


8

WebマップアプリケーションでWMSからPDFを作成したい。

誰かが堅牢なコンポーネントを推奨できますか?比較的ビジネスフレンドリーなライセンスの下で無料のオープンソースが欲しいのですが(GPLやBSD / MITなどは理想的ではなく、LGPLでも問題ありません)。

  • 私たちのWMSレイヤーは、ncWMSUNM MapServerによって作成されています。また、外部WMSプロバイダーの一部のレイヤーをオーバーレイすることもできます。
  • 編集:OpenLayersに基づいて独自のJavaScriptクライアントを開発しています。
  • 編集:私たちはJavaでいくつかのバックエンドコードを持っています。また、PDFを作成するためにPHPまたは他のプラットフォームを検討します。

MapFishは優れていますが、GPLです。


1
QGISサーバーとクライアントは、WMSと並行して高解像度のPDF出力を提供しますが、これもGPLです。
アンダーダーク

WMSサービスを提供しているサーバーソフトウェアは何ですか?
アランアデア2011

@アラン私は編集で回答しました
MarkJ '09 / 09/22

2
MapServerはPDF出力(mapserver.org/output/pdf.html)をサポートしていると思います。新しいバージョンでは、LGPLまたはMPLでリリースされているCairo(cairographics.org)を使用しています。
アラン・アデア

@アラン良い点。あなたはそのコメントを答えにすることができます!質問:MAPファイルを作成する必要がありますか?現在、すべてのレイヤーを含むマップファイルはありません。OpenLayersを使用して、クライアントでレイヤーを組み立てています。JavaScriptのフロントエンドがサーバーにコールバックし、サーバーがMapScriptを実行するとします。MAPファイルも作成する必要がありますか?
MarkJ 2011

回答:


3

私はカイロパンゴ(両方LGPL)を一緒に使用してPDFマップを作成しています。

これは低レベルのソリューションですが、Cairoには優れたベクター描画機能とラスター処理機能があり、Pangoは組版に優れています。全体的な結果は素晴らしいですが、多くのコーディングが必要です。たとえば、WMS出力を使用してマップを作成する場合は、WMSリクエストを作成し、画像をリクエストして、Cairoを使用してPDFキャンバスに描画します。

私はこれらのライブラリをJava-Gnome経由で使用していますが、ほとんどの言語で両方にバインドされています。


このオプションを検討する場合は、libharu(C)または古いバージョンのiText(java)を参照することもできます(新しい方は目的に合わないAGPLライセンスを持っています)。
johanvdw

1
この方法を使用してほぼ完全に作成されたマップの例については、この資料を参照してください。追加のファイル2には、元々はベクターでしたが、ダウンロードサイズを減らすためにラスタライズされたマップが含まれています。
ウィル

@johanvdw確かにAGPLは私の目的に合いません。私は、Apacheライセンスの下にあるPDFBoxを検討するかもしれません
MarkJ '23

@カイロは面白そうですね。実稼働サーバーはLinuxですが、開発/テストマシンはWindowsです。WindowsでJavaからCairoを使用する方法はありますか?
MarkJ、2011年

@MarkJ java-gnomeは残念ながらWindowsでは動作しません(そしてそれはGPLです)-代替手段を見つけていません。PythonとMonoバインディングはWindowsでも動作します。
ウィル

3

http://code.google.com/p/wkhtmltopdf/の使用についてはどうですか?これはlgplであり、Webページテンプレートから簡単にPDFを生成できます。このアプローチをdjangoと一緒に使用して、wkhtmlでpdfにレンダリングする前にHTMLを動的に生成します。

よろしく

ティム


+1。OpenLayersベクトルを使用するのは難しいですが、このソリューションでは、印刷出力ページを完全にカスタマイズできます。通常のHTMLページと同じように、ロゴ、凡例、フッターを好きな場所に配置し、そこから画像またはPDFを作成します。
denu

横向き思考だけでも+1!私が理解していることを確認するには、JavaScriptクライアント(OpenLayersなど)を使用してマップレイヤーを表示するWebページを作成し、それをwkhtmlでPDFにレンダリングしますか?
MarkJ 2011

こんにちはティム、どうやってこれを機能させたのですか?オープンレイヤーでいくつかの例を試しましたが、マップがレンダリングされないか、ボックスの左側に圧縮されています。
Dennis van Schaik 2016年

0

Geomajasには、マップをPDFに変換できる印刷プラグインと、マップ画像を含めることができるJasperReportsを使用してレポートを作成するために使用できるレポートプラグイン(進行中)があります。どちらもAGPLですが、ビジネスに適したライセンスを要求できます(Geosparcによって提供されます)。


おかげで、私はGeomajasについて聞いたことがありませんでした、それは興味深いです。ビジネス向けのライセンスに対して料金がかかることに気づきましたが、印刷モジュールはiTextを使用していますが、これもAGPLから解放されるために支払う必要があることを意味しています
MarkJ

0

さて、Javaサーバー側コードからPDFBox(Apacheライセンス)を使用しました

さまざまなレイヤーのWMSリクエストを作成し、画像をメモリ内ビットマップとして取得し、それらを1つのメモリ内ビットマップにオーバーレイします。BufferedImageインメモリビットマップにJava を使用する。次に、PDFBox PDJpegを使用してビットマップをPDFページにレンダリングします。

それはかなりうまくいきます。ちなみに、PDFでマップイメージを少しぼやける可能性があります。PDFBoxで使用するには、不可逆な不可逆圧縮を使用してJPEGとしてエンコードする必要があるためです。これを改善するには、PDFJpegコンストラクターでJPEG品質を最大に設定し、画像を大きなサイズ(300 dpiなど)で要求します。

最終的には、コードをオープンソースとしてリリースする予定です。これが発生したときにリンクを投稿します。

ウィル、アラン、そして皆さん、ありがとうございました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.