4

MS Wordドキュメント(.doc、.docx、.docs)からテキストを読み込もうとしています。昨日から検索してきましたが、解決策が見つかりませんでした。誰か教えてください私は何をすべきですか?私はすでにJavaScriptからテキストを取得するためにUIWebviewを試しましたが、これも機能していません。

- (NSString *)textFromWordDocument:(NSString *)path {
    UIWebView *theWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [theWebView loadRequest:request ];
    NSString *document = [theWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
    [theWebView release];
    return document;
}

誰かが私に何をすべきか、どこを見回すかを教えてくれるなら、それは本当に私に完全に役立つでしょうありがとう

4

2 に答える 2

5

UIWebViewをロードし、すぐにdomにアクセスしようとしていますが、おそらくまだ準備ができていません。

UIWebViewDelegate didFinishLoad:が呼び出されるまで、stringByEvaluatingJavaScriptFromString:を呼び出さないでください。

于 2012-05-31T14:11:01.953 に答える
3

以下のコードは、起動時にWord.docxファイルをアプリのドキュメントディレクトリに保存します。次に、viewDidLoad中にそのファイルをUIWebViewに読み込みます。最後に、UIWebViewからテキストをフェッチする前に、UIWebViewがドキュメントをロードするのを待ちます。ビューコントローラのヘッダーファイルのUIWebViewDelegateプロトコルに準拠することを忘れないでください。そしてもちろん、Word文書はプロジェクトに含まれている必要があります。ドキュメントをビルドフェーズ>バンドルリソースのコピーに必ず追加してください。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    /* WRITE WORD FILE TO DOCUMENT DIRECTORY */
    NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *path = [docsDirectory stringByAppendingPathComponent:@"Text.docx"];
    NSData *data = [NSData dataWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Text.docx"]];
    [data writeToFile:path atomically:YES];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

   /* READ WORD FILE FROM DOCUMENT DIRECTORY TO WEB VIEW */
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *wordFilePath = [documentsDirectory stringByAppendingPathComponent:@"Text.docx"];
    UIWebView *theWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    NSURL *wordFileUrl = [NSURL fileURLWithPath:wordFilePath];
    NSURLRequest *request = [NSURLRequest requestWithURL:wordFileUrl];
    [theWebView loadRequest:request];
    theWebView.delegate = self;
    [self.view addSubview:theWebView];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    /* GET TEXT FROM WEB VIEW */
    NSString *text = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
}
于 2014-02-25T11:07:05.430 に答える