J'ai rencontré un problème l'autre jour lorsque j'ai essayé d'utiliser le module de cartographie d'ArcPy pour modifier des éléments de texte rectangulaires avec des retours à la ligne (\ n) dans un document ArcMap. Voici à quoi ressemblait la sortie:
Voici le code que j'ai utilisé pour générer cette sortie. La première colonne contient des éléments de texte rectangulaires Text1, Text2, Text3 descendant; la deuxième colonne contient les éléments de texte "en clair" Text4, Text5 et Text6 qui descendent.
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)
Jusqu'à présent, il semble que la présence du texte foiré dépend si la ligne est plus longue pour encapsuler et si la ligne avant la nouvelle ligne est plus longue que la ligne après la nouvelle ligne.
Des idées sur ce qui pourrait mal se passer? Y at-il un travail autour? Je pourrais utiliser des éléments de texte brut et m'inquiéter de l'habillage des lignes à l'aide de Python, mais j'espère pouvoir trouver quelque chose.