我在asp.net網站上使用OpenXML從模板創建Word文檔,並通過altChunk
從其他模板向其他模板添加其他節,並添加HTML片段(也作爲altChunk
)和圖片。一切工作正常,除了我的模板有一個目錄表(TOC),並用正確的頁碼和正確的標題(對於添加的部分)更新它,最終用戶必須選擇TOC並更新它(通過擊中F9,或從上下文菜單中單擊更新字段)。即使如此,他們仍然必須在更新頁碼或更新整個表格(最終用戶感到困惑)之間進行選擇。自動更新TOC
我真的想避免這一步,因爲我想在文檔就像是在後臺自動生成要準備好去不看。
我嘗試添加一個UpdateOnFieldsOpen
到文檔的設置,但是當他們打開該文檔僅會導致混亂(對最終用戶)嘮叨屏幕。
我想過也許試圖手動更新OpenXML中的TOC,方法是估計每個添加部分的長度(以頁爲單位)(它們應該是相當恆定的+/-頁),以便至少提供一個相當準確的TOC當用戶第一次打開文檔時,但看起來不太健壯。
Word自動化可能會解決這個問題,但不推薦在服務器端使用。
有沒有更好的解決方案呢?似乎很傻,我可以任意插入其他文檔和HTML塊,而無需任何投訴,但更新TOC是一個主要的安全問題!
謝謝你的迴應傑森。我想知道ODF會不會更容易,但是我沒有想到只用LibreOffice和docx文件。我會研究一下。不知道是否有Open/LibreOffice的版本將無法運行服務器... –
嗯......看起來LibreOffice Writer破壞了我的佈局,並且不處理docx altChunk。 –