PowerPoint에서 주어진 텍스트 상자 안에 텍스트가 들어갈 수 있도록 필요한 글꼴 눈금을 결정하기 위해 PowerPoint에서 텍스트를 맞추는 방법을 재 작성해야하는 응용 프로그램을 개발 중입니다.SharpDX 문자 간격
슬라이드를 생성하기 위해 Aspose 라이브러리를 사용하고 있지만 Aspose에서 계산 된 글꼴 크기는 종종 올바르지 않기 때문에 프레젠테이션을 처음 열면 예상보다 큰 텍스트가 표시되어 긴 텍스트가 밖으로 나올 수 있습니다 텍스트 상자 및 다른 인접한 텍스트 상자로.
처음에는 GDI MeasureString()과 수동 단어 줄 바꿈 알고리즘을 사용해 보았습니다. 그러나 이것은 매우 부정확했습니다. PowerPoint에서 DirectWrite를 사용하여 텍스트를 화면에 표시하므로 ShaprDX 및 TextLayout을 사용하여 더 나은 결과를 얻었습니다.
내 알고리즘은 주어진 텍스트 상자에 텍스트 레이아웃을 반복적으로 적용하고 글꼴 크기를 줄이기까지 반복적으로 시도합니다.
그러나 최근에 PowerPoint에서 SharpDX보다 넓은 문자 간격이있는 것으로 나타났습니다. 그러나 일부 문자 뒤에 SharpDX보다 PowerPoint에서 텍스트 줄 바꿈이 빨라졌습니다. 샘플 이미지를 보면
, 나는 100 % 파워 포인트 슬라이드의 스크린 샷을 갔고, SharpDX의 스크린 샷은 형태로 렌더링합니다. PowerPlay 이미지 위에 SharpDX 이미지를 중첩했습니다.
SharpDX 텍스트는 지정된 글꼴 크기에 이미 "적합"하기 때문에 더 길습니다.
텍스트 : Αποτελέσματα έναντι Παγκόσμιο Πρότυπο Υψηλών Επιδόσεων 글꼴 : 굴림 11pt 텍스트 상자 크기 : (4.63 "X 0.26")에 맞게 축소없이 0 마진 파워 포인트 주위의 모든 곳에
, 444px X 24 픽셀,이 텍스트 것 덮개.
SharpDX에서는 텍스트가 줄 바꿈되지 않습니다.
I는 수식을 사용하여 화소 점에서 폰트 크기를 변환하고 :
화소 점 X = 96F/72F;
SharpDX에서 문자 간격을 설정하는 방법을 찾지 못했습니다. 이것은 가능한가?
안녕하세요. [내가 뭘 물어볼 수있는 주제는 무엇입니까?] (http://stackoverflow.com/help/on-topic)와 [좋은 질문을하는 법] (http://stackoverflow.com/help/how-to-ask)을 읽어보십시오.) 그리고 완벽한 질문 그리고 [최소, 완전하고 검증 가능한 예제] (http : // stackoverflow.com/help/mcve) SO는 무료 코딩 또는 코드 변환 또는 디버깅 또는 자습서 또는 라이브러리 찾기 서비스가 아닙니다. 여기에서 우리는 사용자의 시도를 수정하고, 코드는 작성하지 않습니다. – Mingebag
PowerPoint 오브젝트 모델에서 텍스트 범위는 BoundHeight, BoundTop, BoundLeft 및 BoundWidth 속성을 사용하면 텍스트의 크기를 "설정"할 수 있습니다. Aspose에서 이러한 속성에 액세스 할 수 있으면 일치 할 때까지 텍스트 크기를 줄이거 나 늘릴 수 있습니다. –