# Skrip 4.5: mengekspor layout Peta_KPH_A4 ke PDF dan PNG pada beberapa resolusi, lalu mencatat ukuran berkas
import os
from qgis.core import QgsProject, QgsLayoutExporter

FOLDER = r"D:/KPH_Contoh"   # ganti dengan folder kerja Anda

tata = QgsProject.instance().layoutManager().layoutByName("Peta_KPH_A4")
assert tata is not None, "Layout Peta_KPH_A4 belum ada; jalankan skrip 4.4 lebih dulu"
pengekspor = QgsLayoutExporter(tata)

# PDF: huruf dan garis tetap berupa vektor
pdf = os.path.join(FOLDER, "Peta_KPH_A4.pdf")
hasil = pengekspor.exportToPdf(pdf, QgsLayoutExporter.PdfExportSettings())
print("PDF  hasil=%s  ukuran=%d byte" % (hasil, os.path.getsize(pdf)))

# PNG: tiga resolusi
for dpi in (72, 150, 300):
    pengaturan = QgsLayoutExporter.ImageExportSettings()
    pengaturan.dpi = dpi
    png = os.path.join(FOLDER, "Peta_KPH_%d.png" % dpi)
    hasil = pengekspor.exportToImage(png, pengaturan)
    from qgis.PyQt.QtGui import QImage
    gambar = QImage(png)
    print("PNG %3d dpi  hasil=%s  %d x %d piksel  %d byte" % (dpi, hasil, gambar.width(), gambar.height(), os.path.getsize(png)))
