Ví dụ sau đây cho thấy cách xuất layout sang PDF. Mã code này có thể dễ dàng được điều chỉnh để xuất thành hình ảnh hoặc SVG.
Chúng ta đã sử dụng đối tượng QssProject trong ví dụ trước để thêm kết quả xử lý vào dự án. Bây giờ, chúng tôi sử dụng QssProject để truy cập QssLayoutManager tương ứng, quản lý tất cả các layout được cấu hình trong một dự án.
Nếu chúng ta mở một dự án có layout in được cấu hình và chạy hai dòng mã sau trong Python Console:
manager =QgsProject.instance().layoutManager()
print(manager.printLayouts())
chúng tôi nhận được một danh sách các đối tượng QssPrintLayout. Nếu dự án chỉ có một layout, danh sách sẽ chỉ chứa một mục, như thế này:
[<qgis._core.QgsPrintLayout objectat 0x000001D288C020D8>]
Tất nhiên, chúng tôi cũng có thể in tên của các layout trong dự án bằng vòng lặp for:
forlayout inmanager.printLayouts():
print(layout.name())
Những tên này có thể được sử dụng để truy cập layout cụ thể. Vì vậy, ví dụ, để có được layout có tên là “my_layout”, chúng ta sử dụng hàm layoutByName():
layout =manager.layoutByName("my_layout")
Để xuất layout, chúng tôi cần một QssLayoutExporter. Có thể xuất sang hình ảnh, SVG và PDF. Để tạo một kết xuất cho đối tượng layout, chúng tôi sử dụng:
exporter =QgsLayoutExporter(layout)
Cuối cùng, chúng ta có thể xuất layout, ví dụ, sang PDF:
exporter.exportToPdf("C:/temp/layout.pdf",QgsLayoutExporter.PdfExportSettings())
Trên đây là những điều cơ bản của việc xuất bố cục bản đồ sang PDF. Bạn cũng đã thấy một ví dụ về thừa kế với QssLayout là lớp cơ sở và QssPrintLayout là lớp con.
Bình luận bằng Facebook Comments