Ich bin neulich auf ein Problem gestoßen, als ich versucht habe, mithilfe des Zuordnungsmoduls von ArcPy rechteckige Textelemente mit Zeilenumbrüchen (\ n) in einem ArcMap-Dokument zu bearbeiten. So sah die Ausgabe aus:
Hier ist der Code, mit dem ich diese Ausgabe generiert habe. Die erste Spalte enthält rechteckige Textelemente Text1, Text2, Text3, die nach unten gehen. Die zweite Spalte enthält "einfache" Textelemente wie Text4, Text5 und Text6.
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)
Bisher sieht es so aus, als ob das Vorhandensein des durcheinandergebrachten Textes davon abhängt, ob die Zeile länger genug ist, um umgebrochen zu werden, und ob die Zeile vor der neuen Zeile länger ist als die Zeile nach der neuen Zeile.
Irgendwelche Ideen, was schief gehen könnte? Gibt es eine Problemumgehung? Ich könnte einfache Textelemente verwenden und mir Gedanken über das Umbrechen von Zeilen mit Python machen, aber ich hoffe, ich kann etwas herausfinden.