Bài 8: Kết xuất layout

- Quảng cáo -

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

MẠNG XÃ HỘI

1,010ThíchThích
435Đăng kýĐăng Ký

TOOL PXTmap.com

BÀI VIẾT LIÊN QUAN

Bài 14: Viết kịch bản xử lý

Trong các bài trước, chúng tôi đã đề cập đến cách chạy các công cụ Processing cũng như cách xâu chuỗi các...

Bài 13: Tạo các hàm để tải các lớp GeoPackage

Hiện tại chúng ta đã từng sử dụng GeoPackages. Ví dụ: trong Tải một lớp vectơ, chúng tôi đã giới thiệu cách...

Bài 12: Sử dụng biểu thức để tính giá trị

Trong các bài trước đây, chúng tôi đã đề cập đến cách tạo các lớp vectơ, cách thêm các trường vào bảng...

Bài 11: Quản lý các lớp dự án (đổi tên và loại bỏ)

Trong các bài trước, chúng tôi đã đề cập đến việc thêm các lớp từ các tệp cũng như tạo các lớp...

Bài 10: Công cụ chuỗi xử lý (Chaining Processing)

Trong Bài 7: Chạy công cụ xử lý (Processing), chúng ta đã khám phá những điều cơ bản của việc chạy các...