2

I would like to open the QGIS Print layout by using Python.

I found some hints here:

QgsPrintLayout Setup from PyQGIS 3? PyQGIS - Managing print layouts

and here:

https://data.library.virginia.edu/how-to-create-and-export-print-layouts-in-python-for-qgis-3/

but unfortunately everywhere is the same problem. I am getting an error:

IndentationError: unexpected indent

https://stackoverflow.com/questions/3920628/indentationerror-unexpected-indent-error

and I don't really know how to solve it

My simple code looks like this:

project = QgsProject.instance()         
manager = project.layoutManager()       
layout = QgsPrintLayout(project)        
layoutName = "Strand_012"

#initializes default settings for blank print layout canvas
layout.initializeDefaults()  

layout.setname(layoutName)
manager.addLayout(layout)

canvas = iface.mapCanvas()
map.setExtent(canvas.extent())
layout.addLayoutItem(map)

I would like to open my map canvas in print layout and export it as PNG setting 170 Dpi resolution for it. How can I do it?

enter image description here

1 Answer 1

5

Try to remove the leading spaces in each line.

enter image description here

4
  • It looks like I am on the right track, but now I have an error: AttributeError: 'QgsPrintLayout' object has no attribute 'setname'
    – Geographos
    Commented Apr 14, 2021 at 10:38
  • 1
    it would be setName (capital N). Commented Apr 14, 2021 at 10:48
  • I have nowhere setName in my code
    – Geographos
    Commented Apr 14, 2021 at 10:54
  • 1
    Replace layout.setname(layoutName) (present in your code) with layout.setName(layoutName) You made a typo hence @MirandaKwon suggestion
    – ThomasG77
    Commented Apr 14, 2021 at 10:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.