簡體   English   中英

有沒有一種方法(在Java中)從人類可讀的模板生成人類可編輯的Microsoft Word文檔?

[英]Is there a way (in java) to generate human editable Microsoft Word documents from human readable template?

我正在尋找一種使Java應用程序使用某種模板生成Word文檔的方法(該文檔的數據將由該應用程序提供)以下是一些要求:-對於非開發人員,該模板應可編輯。 可以使用適當的工具創建Jasper模板,或使用某種模板語言編輯Word文檔。 要求編輯文檔的xml文件不是-使用Microsoft Word,結果對於人類來說應該很容易編輯。 例如,Jasper或Birt生成的文檔不符合要求,因為表格布局阻止了任何簡單的編輯。

目前,我查看了以下解決方案,沒有找到滿足兩個要求的解決方案:

  • 碧玉。 生成的文檔不容易編輯
  • 伯特 同樣的問題
  • 使用模板馬達(速度,Freemarker)生成xml。 我不能要求最終客戶編輯這種XML文件...

您可以簽出Templater。 它有很好的演示頁面

Disclamer:我是作者。

圖書館

LibreOffice是類似於Microsoft Office的應用程序套件的開源實現。 除了支持標准化的OpenDocument格式外,它還讀取和寫入Microsoft Office格式。

LibreOffice提供了Java API 因此,您可以從模板中以編程方式創建文檔。

過去我們做過類似的事情,使用搜索和替換以及文檔變量來修改文檔。

Apache Poi

Apache Poi是一個開放源代碼庫,用於讀寫Microsoft Office兼容的文檔。

我不知道其詳細信息,但您可以看看。

JODReports (開源)和Docmosis (商業)旨在將普通/人工管理的文檔用作模板(Word,OpenOffice等),合並數據並返回可編輯的文檔,PDF等。請注意,我為Docmosis工作。

JODReports和Docmosis都提供Java API。

如果您對直接自動化Open Office或Libre Office感興趣(如Basil的答案所述),那么有關將Doc轉換為Pdf的博客將使您快速入門

  1. 加載文檔文件作為模板
  2. 搜索並替換
  3. 導出到文件(示例中為pdf)

要將輸出格式更改為Doc而不是PDF:

 propertyValues[1].Value = "writer_pdf_Export";

 propertyValues[1].Value = "MS Word 97";

希望對您有所幫助。

也在尋找這種解決方案時,我找到了XDocReport ,其中包括一個表格示例 我會試一試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM