當前位置:編程學習大全網 - 編程語言 - 如何使用Word Automation Services開發應用

如何使用Word Automation Services開發應用

使用Word Automation Services更改文檔格式

當我們使用Open XML SDK 2.0 for Microsoft Office時,有些任務是比較困難的。比如:重新編排頁碼,將文檔轉換為諸如PDF等的其它格式,或者更新文檔目錄表、字段,以及文檔中的其它動態內容。而SharePoint 2010提供的Word Automation Services新功能就是用來解決這些問題的。

Word Automation Services是壹個***享服務,它無需人員參與,可以在服務器端執行文檔格式轉換以及其它重要功能。其最初設計理念是在服務器端以可靠和可預測的方式處理多個文檔。

我們可以使用Word Automation Services將Open XML WordprocessingML格式轉換成其它格式。比如:可以將多個文檔轉換成PDF格式然後發送到打印機的打印池,或者通過郵件將PDF文檔發送給客戶,也可以將其它格式的文檔(如:HTML,Word 97-2003二進制格式)轉換成Open XML work-processing文檔。

除了進行文檔格式轉換,Word Automation Services還提供了其它壹些重要功能。比如:更新文檔中的字段,將altChunk內容轉換成使用正常格式的段落。如果我們使用Open XML SDK執行這些工作是非常困難的,但是Word Automation Services做這些工作就非常容易。以前,我們使用Word Automation Services為客戶端執行這些工作,但這是有問題的。Word客戶端更適合進行交互式文檔編寫,而不是用來在服務器端進行多文檔處理的。如果在Word中執行這些任務,Word往往會顯示錯誤提示框,而且如果服務器自動操作Word客戶端,又沒有用戶響應對話框,這樣線程就無法停止。這是壹個與Word自動化相關的問題,有壹篇KB專門介紹,Considerations for Server-side Automation of Office。

壹個使用Word Automation Services的場景

下面這個場景展示了如何使用Word Automation Services在服務器端自動處理文檔。

某位專家遵循壹定的規範創建了壹些Word模板,她或許會使用內容控制為這些模板提供壹些使用指導,這為在文檔生成過程中確定數據應該出現在文檔模板的哪些位置提供了良好的用戶體驗和可靠的編程方法。通常,這些文檔模板保存在SharePoint文檔庫裏。

運行在服務器端的程序把文檔模板和數據結合在壹起,形成Open XML WordprocessingML (DOCX)文檔。最好的方法是使用Open XML SDK 2.0 for Microsoft Office編寫這個程序,因為這個SDK專門用來在服務器端生成文檔。這些文檔存放在SharePoint文檔庫裏。

文檔自動生成後,可能需要被打印,然後轉換為WordprocessingML、PDF、XPS或MHTML格式再通過郵件發送給壹系列用戶。

作為轉換工作的壹部分,我們可以使用Word Automation Services更新文檔中的字段,比如:文檔目錄表。

壹起使用Open XML SDK 2.0 for Microsoft Office以及Word Automation Services可以創建豐富的、端到端解決方案,而無須自動化Word客戶端應用。

Word Automation Services的壹個突出優點是可以進行擴展升級,而Word客戶端應用無法做到這點,我們可以配置Word Automation Services使用多個處理器,如果需要,還可以配置為負載均衡。

另外壹個突出優點是,Word Automation Services在文檔布局(包括分頁排版)方面保持了與Word客戶端近乎完全壹致的體驗。無論文檔是在服務器端處理的,還是在客戶端處理的,其布局都是完全壹致的。

支持的源文檔格式

Open XML File Format documents (.docx, .docm, .dotx, .dotm)

Word 97-2003 documents (.doc, .dot)

Rich Text Format files (.rtf)

Single File Web Pages (.mht, .mhtml)

Word 2003 XML Documents (.xml)

Word XML Document (.xml)

支持的目標文檔格式

Portable Document Format (.pdf)

Open XML Paper Specification (.xps)

Word Automation Services的其它功能

除了加載文檔並將文檔保存為其它格式外, Word Automation Services還具有其它壹些功能。

我們可以使用Word Automation Services更新文檔目錄、table of authorities以及索引字段,這在生成文檔時非常重要。如果文檔在生成後,其目錄表未能正確更新,那麽確定文檔的分頁將是非常困難的工作,而Word Automation Services可以非常容易地處理這個工作。

Open XML word-processing文檔包含各式各樣的字段類型,使用這些字段類型我們可以為文檔動態添加內容。我們可以使用Word Automation Services重新計算所有的字段。比如:為文檔添加壹個插入當前日期的字段類型。這樣當所有字段被更新時,其關聯的內容也隨之被更新,這樣文檔就可以在字段所在位置顯示當前日期。

使用內容控制的壹個最有效途徑是將內容綁定到壹個自定義XML元素。關於如何進行綁定,請參考Building Document Generation Systems from Templates with Word 2010 and Word 2007,以及其它壹些資源。通過替換自定義XML元素可以將綁定內容控件的內容進行更新,而無須更改文檔主體。文檔主體包含了所有綁定內容控件的緩存值,如果只是替換自定義XML元素,文檔主體中的緩存值是不會被更新的。如果用戶只是用Word客戶端應用查看就不會有這個問題,但是,如果要更深地處理WordprocessingML markup,我們就必須更新文檔主體中的緩存值。而Word Automation Services正好可以做這項工作。

更換以altChunk元素表示的格式內容,是將HTML內容導入到WordprocessingML文檔的好辦法。Building Document Generation Systems from Templates with Word 2010 and Word 2007探討了如何更換格式內容,使用方法,並且提供了其它開始資源。但是,這需要壹直到妳打開和保存包含altChunk元素的文檔時才可以。這個文檔包含HTML,而沒有常規的的WordprocessingML markup,比如:段落,runs 以及文本。現在我們可以使用Word Automation Services導入HTML(或其它格式的可更換內容),然後將它們轉換為WordprocessingML markup,這樣WordprocessingML段落就有了styles。

也可以把以往的Word版本格式進行轉換。比如,要構建的企業級應用有幾千個用戶,而他們當中就有壹些人在Word 2007或Word 2003編輯Open XML文檔,這時候,我們就可以將Open XML文檔轉換成與Word 2007或Word 2003兼容的格式。

Word Automation Services的不足

Word Automation Service缺少打印功能,但是,我們可以直接將WordprocessingML文檔轉換為PDF或XPS格式然後再打印。

有人可能會問,是否可以不采購和安裝SharePoint Server 2010就可以使用Word Automation Services呢?答案是:Word Automation Services依賴於SharePoint 2010的其它功能,它只是SharePoint 2010的壹個功能,我們購買並且安裝SharePoint Server 2010才可以使用它。SharePoint 2010的標準版和企業版都包含Word Automation Services。

Word Automation Services工作原理

默認情況下,Word Automation Services隨SharePoint Server 2010壹起安裝並且運行。如果在服務器場中使用SharePoint 2010,必須專門啟用Word Automation Services。

要使用Word Automation Services,可以使用其編程接口啟動轉換工作(conversion job),對於每項轉換工作需要指定要轉換的文件、文件夾或者文檔庫。轉換工作啟動時,根據用戶的配置信息,Word Automation Services在每臺服務器上啟動指定數量的轉換線程。可以指定轉換工作的執行頻率,還可以指定每個轉換線程執行的轉換的數量。另外,還可以Word Automation Services可以使用的最大內存的百分比。

可以配置Word Automation Services,以保證其不過分使用SharePoint服務器的資源,妳可以根據對SharePoint服務器的使用期望來決定該如何配置Word Automation Services。如果只是用Word Automation Services執行文檔轉換,妳可以考慮讓Word Automation Services占用大部分的processor time。當然,如果要執行的是低優先級的後臺轉換,妳需要相應進行配置。

重要提示

建議worker process占用的處理器的數量絕對不要超過服務器減壹。比如:對於4核服務器i,轉換線程最多不能超過3個。

如果是在服務器場中,worker process占用的處理器數量不超過服務器場中有最少處理器那臺服務器的處理器減壹。

建議每分鐘每個worker process最多處理90個文檔轉換。

編寫代碼除了可以啟動轉換實例外,還可以監控轉換過程,這樣當較大的轉換工作完成時就可以同誌用戶或者發出提示。

Word Automation Services還可以進行4個方面的轉換配置。

限制支持的文檔格式的數量。

設置轉換線程重啟時可以轉換的文檔的數量。這非常有價值,因為無效文檔會導致Word Automation Services消耗過多的內存資源。

設置Word Automation Services嘗試轉換文檔的次數。默認情況下,這個值為2,也就是說,如果Word Automation Services轉換某個文檔失敗,它只會再嘗試壹次(在當時那個conversion job中)。

設置轉換線程開始後多久才開始監控。這非常有價值,因為Word Automation Services可以監控轉換以確保每個轉換進程沒有停滯。

  • 上一篇:有什麽事是妳來到上海之後才知道的?
  • 下一篇:通用編程
  • copyright 2024編程學習大全網