目前我正在使用Microsoft Word 2003管理我的用户指南,并将其转换为可从网站上下载的PDF文件,并包含在产品安装程序中。
我想转向实现以下目标的机制:
我想用分发产品打包PDF文件。
我想创建一些简单的PHP脚本,这些脚本生成带有上下文敏感TOC的HTML页面(显示当前章节的部分),并显示相关文档。
开发PHP脚本以实现此目的没有问题,但我想知道如何生成上述输出。我最好使用现成的GUI键入文档。我很乐意编写XSLT2样式表来执行任何必要的转换。
让人们了解我的目标:
使用自定义XSLT2样式表生成的API文档到一堆“不完整”的HTML文件中,然后通过PHP汇集JSON TOC:http://rotorz.com/tilesystem/api
当您浏览我的API文档时,您会注意到左侧的TOC是上下文相关的。我希望我的用户指南以类似的方式工作。
是否有Prince的免费替代方案:http://www.princexml.com/用于分页媒体CSS?
答案 0 :(得分:0)
在花了很长时间阅读许多变化之后,我遇到了一个潜在的解决方案......
使用PHP创建一个非常简单的“静态”CMS,并为我的WYSIWYG编辑器创建http://aloha-editor.org。可能使用https://github.com/chillitom/CefSharp将编辑器直接嵌入到更相关的GUI中。
使用带有自定义封面,页眉和页脚.html文件的“wkhtmltoxdoc”将HTML5页面转换为PDF。 Plus会自动生成TOC页面。
“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>
答案 1 :(得分:0)
经过大量的研究和实验,我决定使用DITA(达尔文信息打字架构)。对我而言,DITA的最大优点是它基于主题,使文档模块化和可重用。
DITA架构相对简单,优秀的XML编辑器提供了对可用元素和属性的有用见解。
DITA文档可以使用DITAMAP进行组合。例如,可以选择分发“快速入门指南”,其中包含最少量的信息,而完整的“用户指南”将包含更多细节。美丽的是,两份文件可以重复使用相同的信息;加上文件可以输出多种交付格式:
使用DITA Open Toolkit(又名DITA-OT)可以轻松处理将输出转换为传送格式的过程。此工具包可从以下版本获得:http://dita-ot.sourceforge.net,只需通过提取提供的存档即可安装。通过运行startcmd.bat
(在Windows上)或startcmd.sh
(类Unix系统),可以轻松访问该工具包。
自定义和标记PDF输出并非易事。自定义XHTML输出非常简单,但仍需要了解XSL转换。可以通过创建插件并将其放在DITA-OT的plugins
文件夹中来进行自定义。我要强调的一件事是,一旦进行了自定义,您必须在更改变得明显之前调用ant -f integrator.xml
。缺乏这方面的知识让我感到很困惑!
生成的XHTML文件非常简单(非常棒!),因为这样可以轻松自定义。添加HTML5 DOCTYPE并不是那么容易;但就我的目的来说,这看起来并不重要,好像我的PHP脚本只关心<body>
里面的内容。
我找不到任何好的WYSIWYG编辑器 XML Mind似乎是一个非常好的WYSIWYG编辑器,它也非常容易使用。我怀疑用Aloha编辑器(http://aloha-editor.org)创建一个基于网络的基本解决方案并不太难。
虽然自定义PDF输出似乎相当困难,但是将所有文档生成到单个XHTML页面中似乎很容易,然后可以使用CSS格式化,然后最终使用wkhtmltopdf
进行转换。我还没有决定我的解决方案,但至少对于那些无法(或没有时间)自定义DITA-OT的XSL:FO样式表的人来说,这是一个可行的选择。
ADDED:经过一番搜索,我发现DITA-OT的另一个开源替代品名为“Ditac”,它似乎更容易使用并产生更好的输出。该工具由“XML Mind”的创建者创建。虽然该工具是基于命令行的,但使用“XML Mind”的人可以从功能丰富的GUI中受益:
注意:我之前的回答是因为它可能对其他人有用。