Geçen gün bir ArcMap belgesinde yeni satırlarla (\ n) dikdörtgen metin öğelerini düzenlemek için ArcPy'nin eşleme modülünü kullanmaya çalıştığımda bir sorunla karşılaştım. Çıktı şöyle görünüyordu:
İşte bu çıktıyı oluşturmak için kullandığım kod. İlk sütun, metin1, Metin2, Metin3'ün aşağı ineceği dikdörtgen metin öğeleridir; ikinci sütun, Metin4, Metin5 ve Metin6 aşağı inen "düz" metin öğeleridir.
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)
Şimdiye kadar, dağınık metnin varlığı, satırın sarılmaya yetecek kadar uzun olup olmamasına ve yeni satırdan önceki satırın yeni satırdan sonraki satırdan uzun olup olmamasına bağlıdır.
Neyin yanlış gidebileceği hakkında bir fikriniz var mı? Bir çözüm var mı? Düz metin öğeleri kullanabilir ve Python kullanarak satırları sarma konusunda endişelenebilirim, ancak bir şey bulabileceğimi umuyorum.