1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
// Le printProvider.
var printProvider = new GeoExt.data.PrintProvider({
method: "GET",
encoding: "UTF-8",
capabilities: printCapabilities
});
// La configuration de la page d'impression.
var printPage = new GeoExt.data.PrintPage({
printProvider: printProvider
});
// La carte de l'aperçu avant impression.
var mapPanelPrint = new GeoExt.PrintMapPanel({
map: {controls: [new OpenLayers.Control.Navigation()]},
sourceMap: map, // map : carte OpenLayers.
printProvider: printProvider,
region: "center",
width : 265,
height : 355
});
// Le formulaire avec les options d'impression : titre, commentaire, taille et rotation.
var formPanel = new Ext.form.FormPanel({
region: "west",
width: 150,
height: 355,
bodyStyle: "padding:5px",
labelAlign: "top",
defaults: {anchor: "100%"},
items: [
{
xtype: "textfield",
name: "mapTitle",
fieldLabel: "Titre"
},
{
xtype: "textarea",
name: "comment",
value: "",
fieldLabel: "Commentaire",
plugins: new GeoExt.plugins.PrintPageField({
printPage: printPage
})
}, {
xtype: "combo",
store: printProvider.layouts,
displayField: "name",
fieldLabel: "Taille",
typeAhead: true,
mode: "local",
triggerAction: "all",
plugins: new GeoExt.plugins.PrintProviderField({
printProvider: printProvider
})
},{
xtype: "textfield",
name: "rotation",
fieldLabel: "Rotation",
plugins: new GeoExt.plugins.PrintPageField({
printPage: printPage
})
}],
buttons: [{
text: "Créer le PDF",
handler: function() {
// Récupérer le titre de la carte depuis le formulaire.
printProvider.customParams.mapTitle = formPanel.getForm().getValues()['mapTitle'];
// Pour que l'étendu de la carte imprimée soit exactement celui de la carte d'aperçu.
printPage.fit(mapPanelPrint, true);
// Impression.
printProvider.print(mapPanelPrint, printPage);
}
}]
});
// Création d'un bouton qui ouvre un dialogue d'impression.
print = new Ext.Button({
iconCls: 'print',
tooltip: "Imprimer la carte",
handler: function(){
printDialog = new Ext.Window({
title: "Aperçu avant impression",
layout: 'border',
items: [mapPanelPrint, formPanel]
});
printDialog.setSize(415,355);
printDialog.on('show', function(){
printDialog.center();
});
printDialog.show();
}
}); |
Partager