2011-08-27 4 views
1

OpenXml 라이브러리를 사용하여 Microsoft Word 문서를 만듭니다. 내가 필요한 것은 대부분 이미 올바르게 작동하고 있습니다. 그러나 나는 다음과 같은 정보를 찾을 수 없다.OpenXml 및 Word : WrapPolygon 좌표를 계산하는 방법?

앵커에 이미지가 표시되어 텍스트가 이미지 주위를 둘러 쌉니다. WrapSquare을 사용했지만 아래 그림과 같이 이전 단락의 마지막 줄에 영향을주는 것으로 보입니다. 이미지는 두 번째 단락에 고정되지만 첫 번째 단락의 마지막 줄도 이미지 주위에 들여 쓰기됩니다. 워드 내에서 실험

Word Screenshot http://www.softcircuits.com/Client/Word.jpg

, 나는 WrapTight로 포장을 변경하여 내가 원하는 방법을 바꿈 텍스트를 만들 수 있습니다. 그러나 여러 좌표가있는 WrapPolygon이 필요합니다. 그리고 픽셀 단위의 이미지 크기와 일치하도록 다각형 좌표를 결정할 방법을 찾을 수 없습니다.

문서에서 이러한 좌표에 사용되는 단위가 무엇인지 나타내지 않고 픽셀로 계산하는 방법은 물론입니다. 계산에 DPI 값이 포함된다고 가정 할 수는 있지만 사용자가 Word로 문서를로드 할 때 DPI가 어떻게 사용되는지 결정할 방법이 없습니다.

누군가가 위에서 설명한 문제가 왜 처음에 발생하는지 설명 할 수 있으면 만족할 것입니다. 이미지를 아래로 이동시킬 수 있으며 이전 단락에 더 이상 영향을주지 않습니다. 그러나 이것이 필요한 이유는 무엇입니까? (좌측 및 상위 모두 텍스트 설정과의 거리를 "0이다.)

답변

1

나는 이것을 마침내 해결했다. 표준에 언급 된 내용에도 불구하고 WrapPolygon 좌표는 이 아니며 EMU (영어 메트릭 단위)입니다. 좌표는 고정 좌표 공간 (amurra가 제공 한 견적에서 언급 한 바와 같이 21600 x 21600)에 상대적입니다.

더 구체적으로 말하면, 0,0은 이미지의 왼쪽 상단에 있고 21600,21600은 이미지의 오른쪽 하단에 있다는 것을 의미합니다. 이것은 이미지의 크기가 무엇이든 관계 없습니다. 21600보다 큰 좌표는 이미지 외부로 확장됩니다.

this article에 따르면 "21600 값은 초기 버전의 Microsoft Office 드로잉 레이어의 레거시 아티팩트"입니다.

2

WrapPolygon 소자 1331년 2월 1일 제 1 항에 따라 각각 AX 걸릴 y 좌표 LineToStartPoint 두 가능한 자식 요소. 갖는 20.4 .2.9,에 lineTo (포장 다각형 선 끝 위치)1334년 2월 1일 제 1 항 20.4.2.14 시작 (포장 다각형 시작)는 [MS-OI29500: Microsoft Office Implementation Information for ISO/IEC-29500 Standard Compliance]에서 발견 :

표준 상태는 x 그 y 특성은 EMU에 표시됩니다. Office는 x 및 y를 해석합니다. 속성은 고정 좌표 의 공간 21600x21600에 있습니다.

픽셀을 EMU (영어 메트릭 단위)로 변환하는 경우 예제는 blog 게시물을 참조하십시오.

+0

이러한 좌표가 EMU로 표시되어 있음을 참조 해 주셔서 감사합니다. ECMA-376을 참조로 사용했는데이 정보를 제공하지 못했습니다.블로그 게시물에 관해서는이 블로그에 익숙합니다. 인치를 기준으로 한 값으로 픽셀을 변환하는 방법을 보여줍니다 (EMU와 같습니다). 그러나, 그것은 72의 DPI를 가정합니다. 제가 이해하기 때문에, DPI는 72, 96, 300, 심지어 1200과 같은 값이 될 수 있습니다. –

+0

BTW, Microsoft 문서의 마지막 문장은 나에게 이해가 가지 않습니다. 21600x21600 EMU의 좌표 공간은 1 인치 미만입니다. 나는 이것의 일부를 놓치고있다. –