ArcPy를 통해 사각형 텍스트 요소에 개행을 삽입하면 겹치게됩니까?


10

다른 날 ArcPy의 매핑 모듈을 사용하여 ArcMap 문서에서 줄 바꿈 (\ n)으로 사각형 텍스트 요소를 편집하려고 할 때 문제가 발생했습니다. 출력 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

출력을 생성하는 데 사용한 코드는 다음과 같습니다. 첫 번째 열은 사각형 텍스트 요소 Text1, Text2, Text3입니다. 두 번째 열은 "일반"텍스트 요소 Text4, Text5 및 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)

지금까지 엉망인 텍스트의 존재는 줄이 줄 바꿈하기에 더 긴지 여부와 줄 바꿈 앞의 줄이 줄 바꿈 뒤의 줄보다 긴지 여부에 달려 있습니다.

무엇이 잘못 될 수 있는지에 대한 아이디어가 있습니까? 해결 방법이 있습니까? 일반 텍스트 요소를 사용하고 Python을 사용하여 줄 바꿈에 대해 걱정할 수는 있지만 무언가를 알아낼 수 있기를 바랍니다.


1
최신 서비스 팩이 설치되어 있습니까?
Jason Scheirer

답변:


10

나도 이것에 부딪쳤다. ArcGIS에는 캐리지 리턴과 줄 바꿈 인 Windows 줄 끝이 필요하기 때문입니다. 약간의 고통. 다행히도 쉽게 돌아 다닐 수 있습니다. 파이썬 대신에 \n(줄 바꿈- 열렬한 경우 더 많은 파이썬 문서 참조) 대신을 사용하십시오 \r\n.


2

textwrap 모듈을 사용하는 것이 더 쉽다고 생각합니다.

파이썬 라벨 표현 :

def FindLabel ( [LEGAL1]  ):
  import textwrap
  return '\r\n'.join(textwrap.wrap([LEGAL1], 20)) #charcter width set at 20

결과 레이블에는 선택한 문자 너비에 따라 캐리지 리턴이 분할됩니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.