Message posté par : Pascal PLUVINET
----------------------------------------
Bonjour,
Je réactive ce sujet. En effet, je souhaite faire la même chose avec QGIS 3.16 , à savoir
exporter un atlas d'un composeur , mais j'ai un message d'erreur :
-----------------
Code :
composerView = qgis.utils.iface.activeComposers()[0]
NameError: name 'qgis' is not defined
-----------------
Mon script est le suivant :
-----------------
Code :
port os
from qgis.core import QgsApplication, QgsProject, QgsProject
from qgis.core import QgsProject
from qgis.gui import QgsMapCanvas, QgsLayerTreeMapCanvasBridge
from qgis.utils import iface
from qgis.core.contextmanagers import qgisapp
from PyQt5.QtCore import QFileInfo
import sys
print(os.environ['OSGEO4W_ROOT'])
projectPath = sys.argv[1]
renderingPath = sys.argv[2]
ComposerName = sys.argv[3]
def printAtlas(projectPath, renderingPath):
canvas = QgsMapCanvas(None) # will reparent it to widget via layout
# Load our project
bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), canvas)
#QgsProject.instance().read(QFileInfo(projectPath))
QgsProject.instance().read(projectPath)
# Load the composer
composerView = qgis.utils.iface.activeComposers()[0]
#composerView = activeComposers()[0]
composition = composerView.composition()
atlas = composition.atlasComposition()
composition.setAtlasMode(QgsComposition.ExportAtlas)
atlas.beginRender()
for i in range(0,atlas.numFeatures()):
atlas.prepareForFeature(i)
composition.exportAsPDF(renderingPath+str(i)+'_carte.pdf')
atlas.endRender()
qgs = QgsApplication([], True)
# load providers
qgs.initQgis()
printAtlas(projectPath, renderingPath)
# When your script is complete, call exitQgis() to remove the provider and
# layer registries from memory
qgs.exitQgis()
-----------------
Si quelqu'un a fait récemment la même chose, je suis preneur !
Merci d'avance pour votre retour,
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=342372#p342372
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net