명령 줄에서 OpenOffice를 사용하여 HTML을 RTF로 변환 RTF로 변환하는 bash 스크립트를

Cygwin에서 HTML 파일을 RTF로 변환하는 bash 스크립트를 작성하려고합니다. OS X에서는 이로 간단 textutils하지만 일반 Linux 또는 Cygwin에는 존재하지 않습니다. 대신 명령 줄에서 OpenOffice를 사용하려고합니다.

OpenOffice가 일반적으로 설치된 프로그램으로 헤드리스로 실행될 수 있다는 것을 읽었 /usr/bin/ooffice지만 Windows의 Cygwin에서는 이것이 작동하지 않습니다. OpenOffice 설치 프로그램은 기본 Cygwin 심볼릭 링크를 빌드하지 않으며 Windows와 동등한 Windows를 설치하지 않을 수도 있습니다 ooffice.

Cygwin의 명령 줄에서 OpenOffice를 사용하여 HTML 파일을 RTF 파일로 변환하려면 어떻게해야합니까?



답변

unoconvOpenOffice / LibreOffice가 지원하는 모든 파일 형식의 변환을 처리 하는 매우 편리한 쉘 스크립트 가 있습니다. 당신은 그것의 사이트에서 그것에 대해 읽을 수 있고 매뉴얼 페이지 를 확인 하십시오 . 많은 배포판에는 cygwin을 포함하여 쉽게 설치할 수있는 패키지가 있습니다.

일단 설치하면 입력 HTML 파일과 출력 RTF 파일을 다음과 같이 지정해야합니다.

unoconv file.html file.rtf

모든 🙂

물론 이것은 여러 파일 상황을 처리하기 위해 스크립팅 될 수 있습니다. 을 사용하는 경우 zsh다음과 같이 HTML 파일의 전체 폴더를 변환 할 수 있습니다.

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done


답변

JODConverter 제안합니다 . 변환을 위해 OpenDoc Api를 둘러싼 Java 랩퍼입니다. 다음과 같은 파일을 변환 할 수 있습니다.

java -jar jodconverter-cli-2.2.0.jar foo.html foo.rtf

python 에서도 사용할 수 있습니다 .

다음 과 같이 openoffice SDK DocumentSaver 클래스 를 사용하는 대신

java -classpath .;./bin;\
                $OO/program/classes/jurt.jar;\
                $OO/program/classes/ridl.jar;\
                $OO/program/classes/sandbox.jar;\
                $OO/program/classes/unoil.jar;\
                $OO/program/classes/juh.jar  \
    DocumentSaver uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager  file:///C:/test/foo.html file:///C:/test/foo.rtf


답변

질문의 첫 부분을 도와 드릴 수 있습니다. Cygwin 명령 행에서 OpenOffice를 실행하는 예는 다음과 같습니다.

/cygdrive/c/Program\ Files/OpenOffice.org\ 3/program/soffice.exe -help

명령 행 인수 목록이 표시됩니다. 파일 형식을 변환하거나 “다른 이름으로 저장”을 수행하는 것을 보지 못했지만 API를 연구하지 않았습니다. 아마도 그 부분을 채울 수 있습니다. OpenOffice.org 3.2 320m12 (Build : 9483)가 있습니다.


답변