Perbaiki dokumen RPS hasil unduh yang rusak/berantakan
Sel "Peta CPL-CPMK" pada template resmi UNTAN memuat tabel kecil bersarang (contoh isian bawaan SN-Dikti). _set_text() cuma membuang paragraf tambahan saat menimpa sel dengan teks generate, tak tahu ada tabel bersarang di dalamnya -- hasilnya sel berakhir dengan w:tbl tanpa w:p setelahnya, yang melanggar skema OOXML. Word membaca file itu sebagai "rusak" dan otomatis memperbaikinya sendiri saat dibuka, dan perbaikan-otomatis itulah yang mengacak tata letak dokumen. - _set_text() sekarang membuang tabel bersarang tersisa sebelum menulis teks baru ke sel manapun (berlaku umum, bukan cuma sel yang saat ini kena masalah) - Ganti templates/rps_untan.docx dengan versi yang sudah dirapikan formatnya (font/spacing) -- struktur baris & kolom identik (39x18), jadi tetap kompatibel dengan pemetaan baris di rps_untan.py - Diverifikasi: tak ada lagi sel yang berakhir dengan tabel bersarang tanpa paragraf penutup di seluruh dokumen hasil generate Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -39,7 +39,17 @@ PRODI = os.environ.get("PRODI", "PROGRAM STUDI INFORMATIKA")
|
|||||||
|
|
||||||
|
|
||||||
def _set_text(cell, text, align=None, bold=None):
|
def _set_text(cell, text, align=None, bold=None):
|
||||||
"""Ganti isi sel; gaya paragraf/tabel template dipertahankan."""
|
"""Ganti isi sel; gaya paragraf/tabel template dipertahankan.
|
||||||
|
|
||||||
|
Beberapa sel template resmi (mis. contoh isian "peta CPL-CPMK") memuat
|
||||||
|
tabel kecil bersarang di antara paragraf petunjuknya. w:tc yang berakhir
|
||||||
|
dengan w:tbl tanpa w:p setelahnya melanggar skema OOXML — Word
|
||||||
|
menganggap dokumennya rusak dan mem-"perbaiki" (merapikan ulang) sendiri
|
||||||
|
saat dibuka, yang justru merusak tata letak. Buang tabel bersarang itu
|
||||||
|
sekalian saat sel ditimpa teks baru.
|
||||||
|
"""
|
||||||
|
for tbl in cell._tc.findall(qn("w:tbl")):
|
||||||
|
tbl.getparent().remove(tbl)
|
||||||
for p in cell.paragraphs[1:]:
|
for p in cell.paragraphs[1:]:
|
||||||
p._p.getparent().remove(p._p)
|
p._p.getparent().remove(p._p)
|
||||||
p = cell.paragraphs[0]
|
p = cell.paragraphs[0]
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user