Guardar esto en un archivo Python y usarlo en --code arg debería hacer lo que necesita:
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()
Esto repetirá a todos los compositores e imprimirá si tienen un atlas habilitado en un solo PDF para cada uno.
NOTA Puede abrir un archivo de proyecto en una sesión QGIS usando iface.addProject. Entonces puede hacer esto para evitar abrir muchas sesiones de 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()