>

.doc 에서 일반 텍스트 만 추출하기 위해 추천 할 수있는 모든 것을 아는 사람  또는 .docx ?

이 를 찾았습니다. 다른 제안이 있는지 궁금하십니까?

  • 답변 # 1

    순수한 평문 (내 요구 사항)을 원한다면 필요한 것은

    unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
    
    

    명령 줄 fu에서 찾은

    docx 파일의 압축을 풀고 실제 문서를 가져온 다음 모든 xml 태그를 제거합니다. 분명히 모든 서식이 손실됩니다.

  • 답변 # 2

    LibreOffice

    하나의 옵션은 헤드리스 모드에서 libreoffice/openoffice입니다 (libreoffice의 다른 모든 인스턴스를 먼저 닫으십시오) :

    libreoffice --headless --convert-to "txt:Text (encoded):UTF8" mydocument.doc
    
    

    자세한 내용은 예를 들어 이 링크 : http://ask.libreoffice.org/en/question/2641/convert-to-command-line-parameter/

    libreoffice 필터 목록은 http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/config/fragments/filters

    를 참조하십시오.

    openoffice 명령 줄 구문이 너무 복잡하기 때문에 프로세스를보다 쉽게 ​​만들 수있는 편리한 래퍼가 있습니다 : unoconv.

    아파치 POI

    또 다른 옵션은 Apache POI입니다. 안티 워드와 달리 .doc 를 읽고 작성하고 변환 할 수있는 잘 지원되는 Java 라이브러리입니다. .docx .xls .xlsx .ppt .pptx  파일.

    .doc 를 변환하는 가장 간단한 Java 코드는 다음과 같습니다.  또는 .docx  일반 텍스트로 문서화 :

    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import org.apache.poi.POITextExtractor;
    import org.apache.poi.extractor.ExtractorFactory;
    import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
    import org.apache.xmlbeans.XmlException;
    public class WordToTextConverter {
        public static void main(String[] args) {
            try {
                convertWordToText(args[0], args[1]);
            } catch (ArrayIndexOutOfBoundsException aiobe) {
                System.out.println("Usage: java WordToTextConverter <word_file> <text_file>");
            }
        }
        public static void convertWordToText(String src, String desc) {
            try {
                FileInputStream fs = new FileInputStream(src);
                final POITextExtractor extractor = ExtractorFactory.createExtractor(fs);
                FileWriter fw = new FileWriter(desc);
                fw.write(extractor.getText());
                fw.flush();
                fs.close();
                fw.close();
            } catch (IOException | OpenXML4JException | XmlException e) {
                e.printStackTrace();
            }
        }
    }
    
    # Maven dependencies (pom.xml):
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my.wordconv</groupId>
    <artifactId>my.wordconv.converter</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.17</version>
        </dependency>
    </dependencies>
    </project>
    
    

    참고 : apache poi 라이브러리를 클래스 경로에 추가해야합니다. 우분투/데비안에서 라이브러리는 sudo apt-get install libapache-poi-java 와 함께 설치할 수 있습니다  — /usr/share/java 에 설치됩니다 . 다른 시스템의 경우 라이브러리를 다운로드하고 /usr/share/java 대신 사용해야하는 폴더에 아카이브 압축을 풀어야합니다. . maven/gradle (권장 옵션)을 사용하는 경우 코드 스 니펫에 표시된대로 org.apache.poi 종속성을 포함하십시오.

    .doc 에서 동일한 코드가 작동합니다.  그리고 .docx  이진 스트림을 검사하여 필요한 변환기 구현이 선택되므로

    위의 클래스를 컴파일하십시오 (기본 패키지에 있고 Apache poi jars가 /usr/share/java 에 있다고 가정합니다) ) :

    javac -cp /usr/share/java/*:. WordToTextConverter.java
    
    

    변환을 실행하십시오 :

    java -cp /usr/share/java/*:. WordToTextConverter doc.docx doc.txt
    
    

    필요한 모든 의존성을 끌어 내고 래퍼 쉘 스크립트를 생성하는 복제 가능한 gradle 프로젝트 ( gradle installDist 사용) ).

  • 답변 # 3

    Apache Tika를 사용해보십시오. Java 기반 라이브러리 (아파치 POI 등)를 사용하여 대부분의 문서 형식 (모든 Office 형식, OpenOffice/LibreOffice 형식, PDF 등)을 지원합니다. 사용하는 것은 매우 간단합니다 :

    java -jar tika-app-1.4.jar --text ./my-document.doc

  • 답변 # 4

    내가 가장 좋아하는 단어는 다음과 같습니다.

    http://www.winfield.demon.nl/

    그리고 docx 지원을 주장하는 비슷한 프로젝트가 있습니다 :

    https://github.com/rainey/antiword-xp-rb/wiki

  • 답변 # 5

    wv가 catdoc 또는 antiword보다 낫습니다. .docx를 처리하고 텍스트 또는 html로 변환 할 수 있습니다. 다음은 터미널에서 파일을 일시적으로 볼 수 있도록 .bashrc에 추가 한 기능입니다. 필요에 따라 변경하십시오.

    # open word in less (ie worl document.doc)
    worl() {
        DOC=$(mktemp /tmp/output.XXXXXXXXXX)
        wvText $1 $DOC
        less $DOC
        rm $DOC
    }
    
    

  • 이전 haskell - 접기를 사용한 문자열 순서
  • 다음 sql - 현재까지의 날짜가 null 인 경우 지난 7 일 동안 데이터를 얻는 방법은 무엇입니까?