#1 Thu 11 February 2021 17:52
- thysma
- Juste Inscrit !
- Date d'inscription: 11 Feb 2021
- Messages: 2
QGIS/python: probleme exportations PDF
Bonjour, je rencontre un problème pour exporter une carte au format PDF avec Python. J'exécute mon script qui ne possède aucune erreur mais rien ne se passe. La carte n'est pas exportée. Quelqu'un pourrait-il m'éclairer sur le sujet svp ? J'ai utilisé le code suivant.
Code:
from qgis.PyQt import QtGui #import des couches layers = QgsProject.instance().mapLayersByName('Autoroutes') layer = layers [0] #Création de la mise en page project = QgsProject.instance() manager = project.layoutManager() layoutName = 'Layout1' #Evite la création de doublons layouts_list = manager.printLayouts() for layout in layouts_list: if layout.name() == layoutName: manager.removeLayout(layout) layout = QgsPrintLayout(project) layout.initializeDefaults() layout.setName(layoutName) manager.addLayout(layout) #Création de la carte dans la mise en page map = QgsLayoutItemMap(layout) map.setRect(20,20,20,20) #Paramètres de la carte settings = QgsMapSettings() settings.setLayers([layer]) rect = QgsRectangle(settings.fullExtent()) rect.scale(1.0) settings.setExtent(rect) map.setExtent(rect) layout.addLayoutItem(map) map.attemptMove(QgsLayoutPoint(5, 20, QgsUnitTypes.LayoutMillimeters)) map.attemptResize(QgsLayoutSize(180, 180, QgsUnitTypes.LayoutMillimeters)) #Création d'une légende legende = QgsLayoutItemLegend(layout) legende.setTitle("Légende") layerTree = QgsLayerTree() layerTree.addLayer(layer) legende.model().setRootGroup(layerTree) layout.addLayoutItem(legende) legende.attemptMove(QgsLayoutPoint(230, 15, QgsUnitTypes.LayoutMillimeters)) #Création d'une échelle echelle = QgsLayoutItemScaleBar(layout) echelle.setStyle('Line Ticks Up') echelle.setUnits(QgsUnitTypes.DistanceKilometers) echelle.setNumberOfSegments(4) echelle.setNumberOfSegmentsLeft(0) echelle.setUnitsPerSegment(5.0) echelle.setUnitLabel('Km') echelle.setLinkedMap(map) echelle.setFont(QFont('Arial', 14)) echelle.update() layout.addLayoutItem(echelle) echelle.attemptMove(QgsLayoutPoint(220, 190, QgsUnitTypes.LayoutMillimeters)) #Création d'un titre titre = QgsLayoutItemLabel(layout) titre.setText("Titre de la carte") titre.setFont(QFont('Arial', 24)) titre.adjustSizeToText() layout.addLayoutItem(titre) titre.attemptMove(QgsLayoutPoint(10, 5, QgsUnitTypes.LayoutMillimeters)) #Export PDF de la carte layout = manager.layoutByName(layoutName) exporter = QgsLayoutExporter(layout) fn = 'C:/layout_export.pdf' exporter.exportToPdf(fn, QgsLayoutExporter.PdfExportSettings())
Merci d'avance
Hors ligne
#2 Thu 11 February 2021 19:38
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS/python: probleme exportations PDF
Pouvez vous executer la dernière ligne dans la console et nous donner le retour ? Cela doit renvoyer un nombre.
Hors ligne