2017-11-24 1 views
0

내 응용 프로그램에서 데이터를 클립 보드로 복사 할 수 있습니다. 클립 보드 (예 : WinWord)에서 HTML 데이터를 처리 할 수있는 다른 응용 프로그램에 붙여 넣을 때 형식 정보가 유지되도록 데이터가 HTML 형식으로 클립 보드에 복사됩니다.WinWord가 붙여 넣기 할 수 있도록 HTML 클립 보드 데이터에 공백을 추가하는 방법은 무엇입니까?

예 (4 개 단어 마지막 2 굵게)

<span>This is </span><b>bold text</b> 

결과 : 텍스트가 제대로 WINWORD에 접착되고, 포맷 (굵게)가 보존된다.

예 (5 대)가 :

<span>  </span> 

결과 : 것도 WINWORD에 접착되지 않는다.

질문 : 두 번째 예제에서 WinWord가 공백을 보존하도록하려면 어떻게해야합니까?

나는 문자를 &nbsp;으로 인코딩하려고했지만 단락 기호가 활성화되었을 때 WinWord가 원으로 표시합니다. 그리고 그것은보기 흉하게 보입니다.

+0

내 본능은 이것이 올바른 동작이라는 것입니다. 왜 어떤 형식으로도 비어있는 요소를 복사하겠습니까? 대부분의 응용 프로그램은 아무 것도 붙이지 않을 것이라고 생각합니다. 꼭 필요한 경우 복사 작업을 가로 채고 요소가 비어 있으면 클립 보드로 전송하기 전에 텍스트를 삽입해야합니다. 이는 가능하지만 쉽지는 않습니다. –

+0

@TonyDuffill : 내 응용 프로그램은 이미 클립 보드 복사 작업을 가로 채고 클립 보드에 대한 HTML을 독자적으로 작성하는 텍스트 편집기입니다. 예를 들어 응용 프로그램에서 클립 보드로 텍스트 'a b c d'(<문자 사이에 5 개의 공백이 있음)를 복사 할 수 있습니다. 그러나 Word에 붙여 넣으면 'a b c d'로 추가됩니다 (그래서 모든 공백은 하나의 공백으로 줄어 듭니다). 브라우저에서 ''태그를 사용하여 관련 내용으로 간주되지 않으므로 해당 공백을 생략 할 수 있습니다. 내 질문은 더 비슷합니다 : 어떻게 공간을 강제 HTML을 만들 수 있습니까? –

답변

0

CSS 값 white-space:pre<span> 태그에 추가하여이 문제를 해결했습니다.

white-space:pre-wrap은 올바른 값인 것처럼 보이지만 WinWord에서는 무시됩니다.

업데이트 : 나는 또한 윈 워드가 클립 보드 데이터를 생성하는 방법을 분석

. 여러 공간의 HTML은 다음과 같습니다

<span style='font-size:11.0pt;line-height:105%;font-family:"Calibri",sans-serif;mso-fareast-font-family:Calibri;mso-bidi-font-family:"Times New Roman";mso-ansi-language:DE;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'> 
    <span style='mso-spacerun:yes'>   </span> 
</span> 

참고 : 공간이 사용자 정의 키/값 쌍 mso-spacerun:yes를 포함하는 스타일 속성을 가진 별도의 <span> 태그에있는

  • .
  • HTML은 UTF-8로 인코딩되며 공백의 char 코드는 U + 00A0 (중단 영역 없음)입니다.
+0

좋은 소식! - 흥미로운 해결책 - 나는 그것을 얻지 못했을 것입니다 - 왜 아직도 포맷되지 않은 공간을 복사하고 싶은지 궁금해합니다. 하지만 모든 최고, 토니 –

+0

@ 토니 Duffill : 그것은 그것을 할 수도 있습니다 사용자입니다. :-) –

관련 문제