2017-12-03 14 views
0

私は数学の方程式を持つ.docファイルを持っています。私はNSDocFormatTextDocumentTypeを使って.docファイルを読んで、NSAttributedStringのデータを取得しました。テキストはOKですが、数式は読み取れません。Cocoa Obj Cを使用して.docファイルの数式を読み取るには?

NSAttachmentAttributeNameを使用しようとしましたが、値は常にnilです。どのようにdocファイルの方程式を読むことができますか?ありがとう。

NSAttributedStringDocumentAttributeKey documentType = NSDocFormatTextDocumentType; // for ony .doc 

    NSDictionary *attrs = @{NSDocumentTypeDocumentAttribute: documentType}; 
    NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:data options:attrs documentAttributes:nil error:&error]; 

    if (attrString == nil) { 
     NSLog(@"err: %@", error); 
     return; 
    } 

    NSLog(@"attrString: %@", attrString); 
    [[self.textview textStorage] setAttributedString: attrString]; 
    [attrString enumerateAttribute:NSAttachmentAttributeName 
         inRange:NSMakeRange(0, [attrString length]) 
         options:0 
         usingBlock:^(id value, NSRange range, BOOL *stop) 
    { 
     if ([value isKindOfClass:[NSTextAttachment class]]) 
     { 
      NSTextAttachment *attachment = (NSTextAttachment *)value; 

     } 
    }]; 
+0

私は.docに精通していません(iOSには同等のものはありません)。しかし、NSAttachmentAttributeNameのみを列挙する代わりに、それらのすべてを列挙できますか?また、数式の範囲(範囲)の位置を特定することもできますか?また、.docからの数学の質問は 'NSAttributedString'によって解釈されないかもしれません。 – Larme

+0

@Larme:はい、ログに印刷しようとしましたが、式はありません。 Mac OS上で.Docファイルのすべてのデータを読み取る方法はありますか? – NTNT

+0

私は、NSAttributedStringがすべてのHTMLタグを解釈しないことを知っています。それはちょうど推測です。 – Larme

答えて

0

あなたの質問への答えはあなたができないということです。

これは私のいくつかのコードです。 Word文書ファイル(.doc、.docx)の標準ライブラリでのサポートは制限されています。書式設定の問題が発生しやすく、詳細な数式をインポートすることには依存しないことを強くお勧めします。あなたの最善の策は、方程式があなたのアプリにより簡単に解析可能なフォーマット(mathjax)で提出されるようにすることです。たとえラテックスが良いサードパーティのライブラリを持っているとしてもそうです。私は、Wordの数式を読むことができるサードパーティ製のCocoaライブラリがあるとは思わない。

+0

CocoaでWordの数学を読むライブラリが分かりますか? – NTNT

+0

私はそのようなライブラリは存在しないと言っています。 – davecom

関連する問題