Как удалить таблицу в документе RTF с помощью Java Apache Tika - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу удалить всю таблицу в файле RTF. Я пытался использовать Apache Tika для чтения документа RTF, но вывод не может показать, находится ли содержимое в таблице.

Пока что я попробовал следующие подходы: 1. Переведите rtf в html, используя функцию HTMLparser в apahce tika. Содержимое таблицы обернуто

...

. Не могу показать, что это таблица.

2. Использование TXTParser для получения содержимого rtf. Содержимое таблицы не может быть отображено в обработчике. Ниже приведен код этого подхода.

3.Используйте программное обеспечение снаружи, чтобы превратить файл RTF в HTML, но все еще не можете показать, является ли оно таблицей.

package crm;
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;

import org.apache.tika.parser.AutoDetectParser;

public class ReadContent {
public static void main(final String[] args) throws IOException,TikaException, SAXException
{ 

        //detecting the file type
         BodyContentHandler handler = new BodyContentHandler(-1);
         Metadata metadata = new Metadata();

         FileInputStream inputstream = new FileInputStream(new File("format/sample.rtf"));
         ParseContext pcontext = new ParseContext();

         //Text document parser
         TXTParser TXTParser = new TXTParser();
         TXTParser.parse(inputstream, handler, metadata,pcontext);

        System.out.println(handler.toString());

}

}

...