문제

임의의 HTML 파일 (예 : 블로그 게시물)의 일반 텍스트 표현이 필요합니다. 지금까지는 문제가되지 않습니다. 수십 개의 HTML에서 TXT 변환기가 있습니다. 그러나 단락의 텍스트 (읽기”p 요소 ")는 일반 텍스트보기 (일정량의 열에)에서 정당화되어야하며 가능하면 더 나은 읽기 쉬운 결과를 제공하기 위해 하이픈을 만들어야합니다. 또한 결과 텍스트 파일은 UTF-8 또는 UTF-16이어야합니다.

XSLT와 함께 할 수있는 간단한 일반 텍스트 대화는 사소한 일입니다. 그러나 텍스트의 정당화는 그 가능성을 벗어납니다 (XSLT가 완전하지만 현실에 충분히 가깝기 때문에 사실이 아닙니다).

FOP 그리고 XSL-FO도 작동하지 않습니다. 그들은 요청 된대로 수행하지만 FOP의 일반 텍스트 출력은 끔찍합니다 (개발자는 그러한 사용을위한 것이 아니라고 말합니다).

또한 HTML-> XSLT-> Roff를 실험했지만 Groff에 붙어 있으며 유니 코드 지원은 최적이 아닙니다. Ellipses ( "...")와 같은 문자가 있고 타옥적으로 올바른 할당량 마크가 있기 때문에 XSLT 스타일 시트에서 수십 개의 유니 코드 문자에 대한 탈출 시퀀스를 Groff에게 알려주는 것은 매우 번거 롭습니다.

또 다른 방법은 Tex로 전환하고 일반 텍스트로 출력 할 수 있지만 (LA) Tex에서는 이전에 시도한 적이 없습니다.

아마도 나는 정말 간단한 것을 놓쳤을 것입니다. 내가 위의 방법을 어떻게 달성 할 수 있는지 아이디어가 있습니까? 그건 그렇고 : 솔루션은 바람직하게는 PHP, Python, Perl, XSLT 또는 절반 정도의 Linux 배포판에서 발견 된 모든 프로그램을 사용하여 설치에 대한 루트 권한없이 작동해야합니다.

도움이 되었습니까?

해결책

파이썬을 사용해보십시오. 사용 BeautifulSoup HTML을 구문 분석합니다. 그만큼 TextWrap 모듈 텍스트를 포맷 할 수 있습니다.

그래도 두 가지 기능이 누락되었습니다. 텍스트를 정당화하려면 각 줄에 공백을 추가해야하지만 큰 문제는 아닙니다 ( 이 코드 예제).

하이픈을 사용하려면 시도하십시오 이 프로젝트.

다른 팁

EMAC에 익숙하다면 HTML 파일을 열 수 있습니다. EMACS-W3M (즉 M-x w3m-find-file foo.html), 렌더링 된 페이지를 일반 텍스트 파일로 저장 한 다음 M-x set-justification-full 그 위에.

작업을 수행하기 위해 작은 기능을 작성할 수도 있습니다.

(defun my-html-to-justifed-text (html-file text-file)
  "Convert HTML-FILE to plain TEXT-FILE."
  (find-file html-file)
  (w3m-rendering-buffer)
  (set-justification-full (point-min) (point-max))
  (write-file text-file))

(my-html-to-justifed-text "~/tmp/2.html" "~/tmp/2.txt")

연결 또는 스라소니 시도해 볼 가치가있을 수 있습니다 -dump 스위치. 인코딩 부품을 사용하여 별도로 쉽게 해결할 수 있습니다. 아이콘 또는 비슷한 것.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top