Saya mengalami masalah di lain hari ketika saya mencoba menggunakan modul pemetaan ArcPy untuk mengedit elemen teks persegi panjang dengan baris baru (\ n) dalam dokumen ArcMap. Seperti apa outputnya:
Inilah kode yang saya gunakan untuk menghasilkan keluaran itu. Kolom pertama adalah elemen teks persegi panjang Text1, Text2, Text3 turun; kolom kedua adalah elemen teks "biasa" Text4, Text5, dan Text6 turun.
import os
import arcpy
HomeDir = r"C:\Desktop"
arcpy.env.workspace = HomeDir
CurrentMXD = arcpy.mapping.MapDocument(r"C:\Desktop\TextTest.mxd")
OutputFilename = r"C:\Desktop\TextTest.pdf"
if os.path.exists(OutputFilename):
os.remove(OutputFilename)
for TextElement in arcpy.mapping.ListLayoutElements(CurrentMXD, "TEXT_ELEMENT"):
TextElementName = TextElement.name
String1 = "The quick brown fox jumped over the lazy dog.\nShe sells sea shells by the sea shore."
String2 = "The quick brown fox \njumped over the lazy dog.\nShe sells sea shells by the sea shore."
String3 = "The quick brown fox jumped \nover the lazy dog.\nShe sells sea shells by the sea shore."
if TextElementName == "Text1":
TextElement.text = String1
if TextElementName == "Text2":
TextElement.text = String2
if TextElementName == "Text3":
TextElement.text = String3
if TextElementName == "Text4":
TextElement.text = String1
if TextElementName == "Text5":
TextElement.text = String2
if TextElementName == "Text6":
TextElement.text = String3
arcpy.mapping.ExportToPDF(CurrentMXD, OutputFilename)
Sejauh ini, tampaknya keberadaan teks yang berantakan tergantung pada apakah baris lebih panjang untuk dibungkus, dan apakah baris sebelum baris lebih panjang dari baris setelah baris baru.
Ada ide tentang apa yang salah? Apakah ada solusinya? Saya bisa menggunakan elemen teks biasa dan khawatir tentang membungkus garis menggunakan Python, tapi saya berharap saya bisa memikirkan sesuatu.