2012-07-23 20 views
2

目前我正在使用Microsoft Word 2003管理我的用戶指南,並將其轉換爲可從網站下載的PDF文件,另外還包含在產品安裝程序中。在線用戶指南加上PDF下載

我想移動到實現機制如下:

  • 生成PDF文件,點擊TOC和頭版
  • 生成每章/節,但沒有HTML骨架HTML5兼容的輸出
  • 生成JSON TOC的用戶指南(章/斷面線)

我想一起打包分發產品的PDF文件。

我想創建一些簡單的PHP腳本來生成帶有上下文敏感TOC(顯示當前章節的部分)並顯示相關文檔的HTML頁面。

我對開發PHP腳本來實現這一目標沒有任何問題,但我想知道如何生成上述輸出。我最好喜歡使用現成的GUI來輸入文檔。我很高興編寫XSLT2樣式表來執行任何必要的轉換。

給人們什麼我的想法後:

當你通過我的API導航您將會注意到左側的TOC是上下文相關的。我希望我的用戶指南以類似的方式工作。

是否有一個免費的替代王子:http://www.princexml.com/爲分頁媒體CSS?

+0

雖然你的問題的一部分是關於生成網頁,我標記這將發送到stackoverflow,因爲它主要是關於編程生成的網頁,而不是關於網站(儘管你當然可以把網站上的HTML頁面)。 – paulmorriss 2012-07-24 07:41:05

+0

@paulmorriss我在這兩個網站之間被撕裂 – 2012-07-24 12:15:25

+0

雖然這並不完全符合您的要求,但您可以使用自動文檔系統,如[doxygen](http://www.stack.nl/~dimitri/doxygen/) ,它允許你輸出多種格式(乳膠,HTML,手冊頁等)的文檔。使用這樣的東西可能比創建自己的系統更容易。 – Chris 2012-07-26 06:59:40

回答

0

了大量的研究和實驗,我決定使用DITA(達爾文信息分類體系結構)後。對我來說,關於DITA最好的事情是它是基於主題的,這使得文檔模塊化和可重用。

DITA模式相對簡單,很好的XML編輯器提供了有用的洞察可用的元素和屬性。

DITA文檔可以使用DITAMAP進行組合。例如,可以選擇發佈一個包含最少量信息的「快速入門指南」,而完整的「用戶指南」將包含更多細節。美的是,這兩個文檔可以重複使用相同的信息;加的文件可以被輸出到一個號碼的交付格式:

  • XHTML(單個文件或分塊)
  • PDF
  • 的Docbook

變換輸出到傳送格式的過程可以使用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>中的內容。

我一直沒有找到任何好的所見即所得的編輯器 XML Mind似乎是一個非常好的所見即所得編輯器,它也非常易於使用。我懷疑用Aloha編輯器(http://aloha-editor.org)創建一個基本的基於Web的解決方案並不難。

儘管定製PDF輸出似乎相當困難,但似乎很容易將所有文檔生成爲單個XHTML頁面,然後使用CSS對其進行格式化,最後使用wkhtmltopdf進行轉換。我還沒有決定我的解決辦法,但至少這是爲那些誰是無法(或沒有時間)定製XSL一個可行的選擇:DITA-OT的FO樣式。

ADDED:經過一番搜索後,我發現DITA-OT有另一個名爲「Ditac」的開源替代品,它看起來更容易使用併產生更好的輸出。該工具由「XML Mind」的創建者創建。雖然該工具是基於命令行,那些誰使用「XML心」可以從一個功能豐富的GUI中受益:

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

注:我離開了我以前的答案,因爲它可能是使用他人的。

0

花費相當長的一段時間閱讀到很多的變化我所遇到的一個潛在的解決方案後...

  1. 創建一個非常簡單的「靜態」 CMS使用PHP和http://aloha-editor.org爲我的WYSIWYG編輯器。可能使用https://github.com/chillitom/CefSharp將編輯器直接嵌入到更相關的GUI中。

  2. 使用「wkhtmltoxdoc」自定義封面,頁眉和頁腳.html文件轉換HTML5的頁面轉換成PDF。加上自動生成TOC頁面。

  3. 「wkhtmltoxdoc」 還產生一個XML TOC,其可容易地轉化爲JSON。

我仍在試驗「wkhtmltoxdoc」,但它看起來不錯!當然,除非有一種更簡單的解決方案...

新增:

看來,我的TOC文件將需要混合的手寫和自動生成的。通過抓取H1-6標籤併爲散列鏈接添加唯一標識符,Eclipse TOC模式中的某些內容就足以滿足一個簡單的XSLT樣式表的自動填充空白的需求。

因此,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