पायथन फ़ाइल में इसे सहेजना और इसका उपयोग करना --code arg में वही करना चाहिए जो आपको चाहिए:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import os
from qgis.core import *
from qgis.gui import *
from qgis.utils import iface
for comp in iface.activeComposers():
print comp
folder = r"C:\temp"
title = "testing"
printer = QPrinter()
painter = QPainter()
comp.composition().setUseAdvancedEffects(False)
myAtlas = comp.composition().atlasComposition()
if myAtlas.enabled():
myAtlas.beginRender()
comp.composition().setAtlasMode(QgsComposition.ExportAtlas)
myAtlas.setFilenamePattern(u"'{}_'||$feature".format(title))
for i in range(0, myAtlas.numFeatures()):
myAtlas.prepareForFeature(i)
filename = os.path.join(folder, title + '.pdf')
print filename
comp.composition().beginPrintAsPDF(printer, filename)
comp.composition().beginPrint(printer)
printReady = painter.begin(printer)
if i > 0:
printer.newPage()
comp.composition().doPrint(printer, painter)
myAtlas.endRender()
painter.end()
यह सभी कंपोज़र्स को लूप करेगा और उन्हें प्रिंट करेगा यदि उनके पास प्रत्येक के लिए एक पीडीएफ में एटलस सक्षम है।
नोट आप QGIS सत्र का उपयोग करके एक प्रोजेक्ट फ़ाइल खोल सकते हैं iface.addProject
। तो आप कई QGIS सत्र खोलने से बचने के लिए ऐसा कर सकते हैं।
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import os
from qgis.core import *
from qgis.gui import *
from qgis.utils import iface
def print_it():
for comp in iface.activeComposers():
print comp
folder = r"C:\temp"
title = "testing"
printer = QPrinter()
painter = QPainter()
comp.composition().setUseAdvancedEffects(False)
myAtlas = comp.composition().atlasComposition()
if myAtlas.enabled():
myAtlas.beginRender()
comp.composition().setAtlasMode(QgsComposition.ExportAtlas)
myAtlas.setFilenamePattern(u"'{}_'||$feature".format(title))
for i in range(0, myAtlas.numFeatures()):
myAtlas.prepareForFeature(i)
filename = os.path.join(folder, title + '.pdf')
print filename
comp.composition().beginPrintAsPDF(printer, filename)
comp.composition().beginPrint(printer)
printReady = painter.begin(printer)
if i > 0:
printer.newPage()
comp.composition().doPrint(printer, painter)
myAtlas.endRender()
painter.end()
for project in projectlist:
iface.addProject(project)
print_it()