我需要一个普通的文本表示的任意HTML文件(例如,博员额)。迄今为止这不是一个问题,有几十个HTML txt转换器。然而,本案文在第(阅读"p 元件")应被理由的明文图(一定量的列),如果可能的话,连得到一个更好的可读的结果。此外,所得文本文件必须UTF-8或UTF-16.

简单纯文本的谈话我可以做XSLT,这是近来微不足道的。但正当理由的案文是超越了它的可能性(不完全正确的,因为XSLT是图灵完成,但足够接近现实).

FOP 和XSL-FO不能工作。他们这样做要求,但FOP的纯文本输出是可怕(开发人员说,它不适用于这种用法).

我还尝试与HTML>XSLT->特殊,但我坚持与格罗夫和其Unicode支持远远不是最佳的。因为有人物,如椭圆("...")和排版的正确quotaion标,这是相当麻烦告诉格罗夫在XSLT样式表的逃序列数十Unicode符。

另一种方式可以转换为特克斯和输出为纯文本,但我从来没有尝试过这之前与(La)TeX。

也许我已经错过了一些东西真的很简单。有人一个想法,我怎么可能实现上述?顺便说一句:一个解决方案应最好的工作没有根本的权利安装,用PHP,蟒蛇,Perl,XSLT或任何程序中发现的一半体面的Linux发行版的.

有帮助吗?

解决方案

尝试的Python。使用 BeautifulSoup 解析HTML。的 textwrap模块将允许你的文本格式。

有两个特征缺失,虽然。为了证明文本,你需要空间添加到每个行,但不应该是一个大问题(见的此代码示例)。

有关连字符,尝试这个项目

其他提示

如果您熟悉的Emacs,你可以打开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 开关。编码的一部分,你可以那么容易的解决单独使用 iconv 或者类似的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top