私はrtfファイルを持っています。そこにはたくさんのテーブルがあります。私はテーブルを抽出するためにJava(POIとtika)を使用しようとしています。テーブルがそのように定義されている.docでは、これは簡単です。しかし、rtfファイルでは、メタデータの一部として「this is a table」タグは存在しないようです。誰かがそのようなファイルからテーブルを抽出するための最良の戦略を知っていますか?それを別のファイル形式のヘルプに変換しますか?私を見上げる手がかりは?rtfテーブルを抽出するには
0
A
答えて
1
unrtfと呼ばれるLinuxのツールを使用すると、HTMLにあなたのRTFファイルを変換することができアプリをmanual
を見て、あります:
unrtf --html your_input_file.rtf > your_output_file.html
今、あなたは、HTML /の操作のための任意のプログラミングAPIを使用することができます簡単にテーブルを抽出することができます。あなたはそれで十分ですか?
0
回答ありがとうございました。最終的に私はTXTParserを使ってTikaを使って、すべてのセグメントを大胆なタグ(私のテーブルがどのように分離されているか)の間にarraylistに置くことができました。そこからテーブルを定義するためにタブセパレータを使用しなければなりませんでした。 タブに基づいてテーブルを抽出するビットがないコードを次に示します(まだ動作しています):
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.html.HtmlParser;
import org.apache.tika.parser.rtf.RTFParser;
import org.apache.tika.parser.txt.TXTParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
public class TextParser {
public static void main(final String[] args) throws IOException,TikaException{
//detecting the file type
BodyContentHandler handler = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("/Users/mydoc.rtf"));
ParseContext pcontext = new ParseContext();
//Text document parser
TXTParser TXTParser = new TXTParser();
try {
TXTParser.parse(inputstream, handler, metadata,pcontext);
} catch (SAXException e) {
e.printStackTrace();
}
String s=handler.toString();
Pattern pattern = Pattern.compile("(\\\\b\\\\f1\\\\fs24.+?\\\\par .+?)\\\\b\\\\f1\\\\fs24.*?\\{\\\\",Pattern.DOTALL);
Matcher matcher = pattern.matcher(s);
ArrayList<String> arr= new ArrayList<String>();
while (matcher.find()) {
arr.add(matcher.group(1));
}
for(String name : arr){
System.out.println("The array number is: "+arr.indexOf(name)+" \n\n "+name);
}
}
}
関連する問題
- 1. RTFから画像を抽出する
- 2. Word文書からRTF/HTMLテキストを抽出するには?
- 3. Rファイルワードrtfテーブル
- 4. C#でRTF文字列にテキストを抽出/挿入する方法
- 5. RTFファイルから「言語的に重要な」文字を抽出する
- 6. SQL Server:テーブルに列を抽出する
- 7. 抽出テーブル名
- 8. RTFでテーブルを使用する
- 9. ウェブサイトからhtmlテーブルを抽出する
- 10. MySQLテーブルから複数のHTMLタグを抽出するには
- 11. PDFMinerでPDFからテーブルを抽出するには?
- 12. SQLのテーブルから列のリストを抽出するには
- 13. Tabulaでコマンドラインで複数のテーブルを抽出するには?
- 14. 抽出私はこのテーブルを持っている別のテーブル
- 15. curl_initとcurl_exec:抽出テーブル?
- 16. SQLテーブルとデータの抽出
- 17. Htmlからテーブルからテーブルを抽出する
- 18. テーブルを持つRTFファイルをテーブル境界なしのTRichEditにロードする
- 19. Pysparkは複数の列を別のテーブルに抽出します
- 20. Xpathを使用してXMLノードをHiveテーブルに抽出する
- 21. テーブルの外にHTMLデータを抽出する
- 22. リンクを抽出してテーブルに再フォーマットする
- 23. Lotus Notesフォームからフィールド値をdb2テーブルに抽出するLEI
- 24. rvest:テキストの代わりにurlのテーブルを抽出する
- 25. Ruby on Railsでrtfファイルを使ってテーブルをフォーマットするには?
- 26. PHPでRTFを生成するには
- 27. 抽出テーブル名は、私はSQLAlchemyのからテーブル名を抽出するにはどうすればよいのクエリ
- 28. VBA:HTMLテーブルから日付スタンプを抽出
- 29. JavaScriptからテーブルからデータを抽出
- 30. RTFテーブル内のテキストの右揃え