2

目前,我正在使用 Microsoft Word 2003 管理我的用户指南,并将其转换为可以从网站下载的 PDF 文件,并且产品安装程序中包含该文件。

我想转向实现以下目标的机制:

  • 生成带有可点击目录和首页的 PDF 文件
  • 每章/节生成符合 HTML5 的输出,但没有 HTML 框架
  • 为用户指南生成 JSON TOC(章节/章节大纲)

我想将 PDF 文件与分发的产品打包在一起。

我想创建一些简单的 PHP 脚本来生成带有上下文相关目录的 HTML 页面(显示当前章节的部分)并显示相关文档。

我对开发 PHP 脚本来实现这一点没有任何问题,但我想知道如何生成上述输出。我希望使用现成的 GUI 键入文档。我很高兴编写 XSLT2 样式表来执行任何必要的转换。

为了让人们了解我所追求的:

当您浏览我的 API 文档时,您会注意到左侧的 TOC 是上下文相关的。我希望我的用户指南以类似的方式工作。

是否有 Prince 的免费替代品:http: //www.princexml.com/用于分页媒体 CSS?

4

2 回答 2

0

在花了相当长的时间阅读了很多变化之后,我遇到了一个潜在的解决方案......

  1. 使用 PHP 和http://aloha-editor.org为我的所见即所得编辑器创建一个非常简单的“静态”CMS 。可能使用https://github.com/chillitom/CefSharp将编辑器直接嵌入到更相关的 GUI 中。

  2. 使用带有自定义封面、页眉和页脚 .html 文件的“wkhtmltoxdoc”将 HTML5 页面转换为 PDF。Plus 会自动生成一个 TOC 页面。

  3. “wkhtmltoxdoc”还生成一个可以轻松转换为 JSON 的 XML TOC。

我仍在尝试“wkhtmltoxdoc”,但它看起来还不错!除非当然有更简单的解决方案......

添加:

看来我的 TOC 文件需要混合手动编写和自动生成。类似于 Eclipse TOC 模式的内容就足够了,一个简单的 XSLT 样式表可以通过抓取 H1-6 标记以及为散列链接添加唯一标识符来自动填充空白。

因此,此 TOC 可以由 XSLT2 样式表使用,然后最终转换为 JSON 以供 PHP 脚本使用。

我现有文档的模拟摘录:

<?xml version="1.0" encoding="UTF-8"?>
<toc>
    <topic label="Introduction" href="introduction.html"/>
    <topic label="Getting Started">
        <topic label="Installation" href="getting-started/installation.html"/>
        <topic label="User Interface" href="getting-started/ui/index.html">
            <topic label="Menu Commands" href="getting-started/ui/menu-commands.html"/>
            <topic label="Tile System Panel" href="getting-started/ui/tile-system-panel.html"/>
            <topic label="Brush Designer" href="getting-started/ui/brush-designer.html"/>
        </topic>
        <topic label="User Preferences" href="getting-started/user-preferences.html"/>
    </topic>
    <topic label="Creating a Tile System" href="creating-a-tile-system">
        <!-- ... -->
    </topic>
</toc>

参考 Eclipse 文档: http ://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fextension-points%2Forg_eclipse_help_toc.html

于 2012-07-25T00:58:19.207 回答
0

经过大量的研究和实验,我决定使用 DITA(达尔文信息类型架构)。对我来说,DITA 最好的一点是它是基于主题的,这使得文档模块化和可重用。

DITA 模式相对简单,良好的 XML 编辑器可以提供对可用元素和属性的有用洞察。

DITA 文档可以使用 DITAMAP 进行组合。例如,人们可能会选择分发包含最少信息量的“快速入门指南”,而完整的“用户指南”将包含更多细节。美妙之处在于两个文档可以重复使用相同的信息;此外,文件可以输出为多种交付格式:

  • XHTML(单个文件或分块)
  • PDF格式
  • 文档手册

使用 DITA Open Toolkit(又名 DITA-OT)可以轻松处理将输出转换为交付格式的过程。该工具包可从以下网址获得:http ://dita-ot.sourceforge.net ,只需提取提供的存档即可安装。startcmd.bat通过运行(在 Windows 上)或startcmd.sh(类 Unix 系统)可以轻松访问该工具包。

自定义和品牌化 PDF 输出并非易事。定制 XHTML 输出要容易得多,但仍然需要 XSL 转换的知识。可以通过创建插件并将其放置在pluginsDITA-OT 的文件夹中来进行自定义。我想强调的一件事是,一旦进行了自定义,您必须ant -f integrator.xml在更改变得明显之前调用。缺乏这方面的知识让我很困惑!

生成的 XHTML 文件非常简单(非常棒!),因为这使得它们易于定制。但是添加 HTML5 DOCTYPE 并不容易;但就我的目的而言,这真的无关紧要,好像我的 PHP 脚本只关心里面的内容<body>

我还没有找到任何好的 WYSIWYG 编辑器XML Mind 似乎是一个非常好的 WYSIWYG 编辑器,而且也非常易于使用。我怀疑使用 Aloha 编辑器 (http://aloha-editor.org) 之类的东西创建一个基本的基于 Web 的解决方案不会太难。

虽然自定义 PDF 输出似乎相当困难,但将所有文档生成到单个 XHTML 页面中似乎很容易,然后可以使用 CSS 对其进行格式化,最后使用wkhtmltopdf. 我还没有决定我的解决方案,但至少对于那些无法(或没有时间)自定义 DITA-OT 的 XSL:FO 样式表的人来说,这是一个可行的选择。

补充:经过一番搜索,我发现还有另一种 DITA-OT 的开源替代品,称为“Ditac”,它似乎更易于使用并产生更好的输出。该工具由“XML Mind”的创建者创建。虽然该工具是基于命令行的,但使用“XML Mind”的用户可以从功能丰富的 GUI 中受益:

http://www.xmlmind.com/ditac/

注意:我留下了我之前的答案,因为它可能对其他人有用。

于 2012-07-27T23:35:08.163 回答