[GIS] Trouble in adding a print function to GeoExt MapPanel

geoextprinting

I am trying to add print function to my GeoExt 2 web application, like:

http://geoext.github.com/geoext2/examples/printpreview/print-preview.html

first I am testing this using the same example urls, so in app.html I add:

<script type="text/javascript" src="http://demo.opengeo.org/geoserver/pdf/info.json?var=printCapabilities"></script>

then in my js file :

printProvider : Ext.create('GeoExt.data.PrintProvider', {
            method: "GET", 
            capabilities: printCapabilities,
            customParams: {
                mapTitle: "GeoExt Printing Demo",
                comment: "This demo shows how to use GeoExt.PrintMapPanel"
            }
        }),


myP = Ext.create('GeoExt.panel.Map', {
            renderTo: "content",
            width: 500,
            height: 350,
            map: {
                maxExtent: new OpenLayers.Bounds(
                    143.835, -43.648,
                    148.479, -39.574
                ),
                maxResolution: 0.018140625,
                projection: "EPSG:4326",
                units: 'degrees'
            },
            layers: [new OpenLayers.Layer.WMS("Tasmania State Boundaries",
                "http://demo.opengeo.org/geoserver/wms",
                {layers: "topp:tasmania_state_boundaries"},
                {singleTile: true
                 , numZoomLevels: 8
                    })],
            center: [146.56, -41.56],
            zoom: 0,
            bbar: [{
                text: "Print...",
                handler: function(){
                    // A window with the PrintMapPanel, which we can use to adjust
                    // the print extent before creating the pdf.
                    printDialog = Ext.create('Ext.Window', {
                        title: "Print Preview",
                        layout: "fit",
                        width: 350,
                        autoHeight: true,
                        items: [{
                            xtype: "gx_printmappanel",
                            sourceMap: myP,
                            printProvider: printProvider 
                                }
                            ],
                        bbar: [{
                            text: "Create PDF",
                            handler: function(){ printDialog.items.get(0).print(); }
                        }]
                    });
                    printDialog.show();
                }
            }]
        });

but I keep getting Cannot read property 'capabilities' of undefined error. I am not sure what I miss here 🙁

Best Answer

have you tried changing the address of the info.json?

I'm also using Printing functions and I put the address of geoserver printing module

http://127.0.0.1:8080/geoserver/pdf/info.json?var=printCapabilities

(only if you have geoserver installed locally).

Let me know.

Bye

Related Question