代码之家  ›  专栏  ›  技术社区  ›  Recursion

将chm文件转换为其他格式

chm
  •  3
  • Recursion  · 技术社区  · 15 年前

    我需要将chm文件转换成另一种格式,很可能是pdf或html。我试过chm2pdf和其他转换器,但它们在转换时都做了可怕的工作。即使使用像htmldoc这样的程序,也不能很好地转换为HTML。

    有没有一种方法可以打印CHM文件的每一页,或者获取它的图像,然后将该图像保存为PDF或其他格式?

    这主要是因为CHM书籍中充满了代码,而转换工具没有正确地格式化任何内容。

    6 回复  |  直到 7 年前
        1
  •  2
  •   Jan Krüger    15 年前

    恐怕这将是一个多步骤的过程…

    1. 从chm文件中提取页面,例如使用archmage。
    2. 在每一页上使用wkhtmltopdf。
    3. 使用pdfjoin(从pdfjam)之类的工具将文档粘在一起。

    这补充了建议使用虚拟到PDF打印机的答案,因为它是一个更Linuxy的命令行解决方案(上面提到的所有工具都在Debian和Ubuntu的软件包存储库中提供)。挑选你的毒药。;)

        2
  •  2
  •   naivists    15 年前

    安装类似primo pdf的东西,它安装一个虚拟打印机并输出一个pdf文件。然后,一章一章地打印出这本书(如这里所述- http://www.helixoft.com/vsdocman-faqs/printing-chm-documentation.html )

        3
  •  2
  •   mothis    15 年前

    如果您只需要在Linux上阅读它,xchm( http://xchm.sourceforge.net/ )为查看.chm文件提供良好的本机支持。

        4
  •  2
  •   Marco van de Voort    15 年前

    问题是Windows CHM查看器基本上是MSIE(Internet Explorer)。准确的渲染可能取决于版本。(对于普通文件,您可能需要msie 6)

    换句话说,要得到一个忠实的复制,需要使用一些抽取器(我使用chmlib中的抽取器,或者最近的free-pascal/lazarus)来解压缩chm(它只是一个带有附加索引的HTML归档文件),并为每个页面启动msie,并插入工具以写入例如虚拟PDF编写器。

    这样你就有机会真正地捕捉到它。(希望它对打印机的渲染与对屏幕的渲染不同)。

    TOC在.hhc文件中是XML格式的,您可以将其中一个文件转换为PDF书签树视图。

    如果你能从IE中得到“页面”的数量,你甚至可以将索引文件转换成你可以添加到PDF中的内容,因为你可以确定每个主题都在哪个页面上。但那是高级班的课程——)

        5
  •  1
  •   langlauf.io    9 年前

    这对我很有用:

    https://cloudconvert.com/chm-to-pdf

    还有一个REST API:

    CloudConvert REST API提供了很大的可能性,可以像在CloudConvert网站上那样转换文件。

    如果边框上没有足够的空白,可以将其重新打印为PDF格式,并将其大小调整为80%。

        6
  •  0
  •   djrconcepts    12 年前

    要将chm转换为pdf,可以尝试以下步骤。

    1)点击打印
    2)选择“打印所选标题和所有副标题”,然后按“确定”。
    3)当打印提示仍然显示时,转到临时文件夹(通常是c:\documents and settings\username\local settings\temp),找到最新的文件“~hhsometext.htm”
    4)使用Internet Explorer打开.htm文件并打印为PDF格式

    要删除上一个和下一个按钮,您可能需要设置样式,如img_display:none!重要;