2014-02-21 4 views
0

WebView에 RTF로 변환하려는 일부 HTML 콘텐츠가 있습니다. RTF 변환 함수를 살펴 보았습니다. 그리고 그들은 모두 정직하기가 좀 벗겨지기 마련입니다. 그래서 내 생각은 WebView의 콘텐츠를 RichEditBox으로 복사하고 거기에서 RTF로 저장하는 것입니다.WinRT에서 WebView의 콘텐츠 복사

이 예제를 여러 번 보았습니다. 불행하게도

WebBrowser1.Document.ExecCommand("SelectAll", false, null); 
WebBrowser1.Document.ExecCommand("Copy", false, null); 

, WinRT의 WebView 컨트롤은 문서 속성이 없습니다, 그래서 나는 할 수 없어이

제어에서 콘텐츠를 풀 수있는 방법이 있습니까? HTML 자체를하지 명확하게하기 위해, 내가 할 - 나는 이미 내가 실제 렌더링 HTML이 원하는 것은

InvokeScript("eval", new string[] { "document.getElementById('editor').innerHTML;" }); 

을 사용하여 해당를 얻을 수 있습니다 - 나는 모든 것을 선택하는 것처럼 같은 내 WebView에서 CTRL + C를 누른 다음 워드 패드에 붙여 넣습니다.

답변

2

더 큰 작업을 수행하기 위해 내가 질문 한 일련의 질문 중 일부입니다. Windows Store App에서 HTML을 RTF로 변환하는 것입니다.

위의 일 수 있다고보고하게되어 매우 기쁩니다. 마침내 그것을하는 방법을 알아 냈습니다 DataPackage - 일반적으로 응용 프로그램간에 콘텐츠를 공유하는 데 사용됩니다.

먼저이 자바 스크립트 함수는 webview에로드 된 HTML에 있어야합니다.

function select_body() { 
    var range = document.body.createTextRange(); 
    range.select(); 
} 

다음으로 문서 상단에 using Windows.ApplicationModel.DataTransfer;을 추가해야합니다. StackOverflow 응답에 사용 된 네임 스페이스에 대한 설명이 충분하지 않습니다. 나는 항상 그들을 위해 사냥하러 가야한다.

// call the select_body function to select the body of our document 
MyWebView.InvokeScript("select_body", null); 

// capture a DataPackage object 
DataPackage p = await MyWebView.CaptureSelectedContentToDataPackageAsync(); 

// extract the RTF content from the DataPackage 
string RTF = await p.GetView().GetRtfAsync(); 

// SetText of the RichEditBox to our RTF string 
MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.FormatRtf, RTF); 

나는이 작업을 얻기 위해 노력하고 약 2 주 동안했습니다

여기에 마법을 수행하는 코드입니다. 그 같은 안도가 마침내 RTF에 파일을 수동으로 인코딩 할 필요가 없음을 알게되었습니다. 이제 내가 다른 방향으로 일할 수 있다면 황홀 할 것입니다. 내가 만들고있는 앱에 필수는 아니지만 멋진 기능입니다.

UPDATE 돌이켜

당신은 아마 (내가 테스트하지 않았습니다하지만), 당신은 아마이 멀리 얻을 수있는 HTML의 기능이 필요하지 않습니다

MyWebView.InvokeScript("execScript", new string[] {"document.body.createTextRange().select();"}) 
+0

그것은하지 않습니다 이미지가 HTML에 포함되어있는 경우 작동합니다. 어떤 아이디어? – Shefali

+0

RichEditBox에 이미지와 관련된 몇 가지 문제가있는 것처럼 보입니다. [여기] (http://social.msdn.microsoft.com/Forums/windowsapps/en-US/fd5e4f6e-3613-47bf-b57c-2aa19991e94d/saving-rtf-with-image-from-richeditbox-to-file 참조) ? forum = winappswithcsharp) 및 [여기] (http://social.msdn.microsoft.com/Forums/windowsapps/en-US/540f2747-b350-4eac-930d-0af5ade88e8b/cant-save-images-in-richeditbox? 포럼 = winappswithcsharp). RichEditBox에 가지 않고 직접 저장할 수 있습니다. – roryok

+0

안녕하세요, 저는 솔루션에 관심이 많습니다. 다운로드 할 수있는 솔루션을 원한다면 HTML로 자바 스크립트를 삽입하는 방법을 이해하지 못합니다. 어떤 웹 페이지의 내용.복사하려는 페이지에 해당 함수가 없으면 대체 무엇입니까? – Marc