iT邦幫忙

0

Online DOCX Editor|瀏覽器直接編輯 Word

  • 分享至 

  • xImage
  •  

最近工作上剛好碰到一個需求:

希望使用者可以直接在 Web 系統裡編輯 Word。

想要的流程其實很簡單:

開啟網頁 → 開啟 DOCX → 編輯 → 下載 DOCX

但有一個前提,我不希望使用者還要另外安裝 Microsoft Office,也不想走 Socket、ActiveX 或其他方式去控制使用者電腦上的 Word。

找了一些現成方案後,發現要完全符合這個使用方式沒有想像中容易,所以後來乾脆自己做了一版。

目前已經做到可以實際操作的程度,就放上來給大家玩玩看,也想順便收集一些不同 DOCX 的測試案例。


專案資訊

專案名稱:Online DOCX Editor

主要用途就是讓使用者直接在瀏覽器裡開啟及編輯 DOCX。

目前已經可以:

  • 開啟 DOCX 文件
  • 直接在瀏覽器中編輯
  • 處理基本文字與文件內容
  • 編輯完成後重新下載 DOCX
  • 整合到既有 Web 系統
  • Client 端不需要安裝 Microsoft Office

目前算是 Demo / 持續開發中。

基本功能已經可以使用,不過 DOCX 格式本身滿複雜的,不同 Word 文件也常常會出現一些奇怪的 Edge Case,所以相容性目前還在慢慢補。


為什麼會做這個?

做企業系統其實滿常碰到 Word。

像是:

  • 公文
  • 契約
  • 報告
  • 採購文件
  • 表單
  • 各種 DOCX 範本

最常見的處理方式大概就是:

下載 Word
    ↓
用 Office 修改
    ↓
重新上傳

可以用,但操作上就是多了幾個步驟。

另一種做法是裝 Client 端程式,再透過 Socket 或 Bridge 去呼叫使用者電腦上的 Microsoft Word。

這種方式可以直接使用 Word 本身的功能,但相對也會多一些環境上的限制,例如使用者要安裝 Office、Client 要設定、瀏覽器要跟本機程式溝通等等。

所以我想試看看能不能把流程單純變成:

DOCX → Browser → Edit → DOCX

盡量讓整個編輯流程都留在 Web 裡。


技術架構

整體流程大概是:

DOCX
  ↓
文件解析
  ↓
轉成瀏覽器可以編輯的文件結構
  ↓
Web Editor
  ↓
使用者編輯
  ↓
重新處理文件結構
  ↓
產生 DOCX

一開始以為比較麻煩的地方會是 Editor,實際做下去後反而發現:

真正麻煩的是 DOCX 本身。

DOCX 並不是單純把文字存進一個檔案而已,裡面其實是一整組 Open XML。

除了文字,還有:

  • Paragraph
  • Run
  • Style
  • Table
  • Image
  • Header / Footer
  • Relationship
  • Page Settings
  • 其他文件設定

所以單純把 DOCX 內容顯示到網頁上還好。

比較麻煩的是:

使用者改完之後,怎麼把它變回 DOCX,同時又不要把原本的格式弄壞。


目前碰到比較麻煩的問題

目前花最多時間的其實是文件的 Round Trip:

原始 DOCX
    ↓
瀏覽器
    ↓
修改內容
    ↓
重新產生 DOCX

如果只是把文字抽出來,再建立一份新的 Word,其實相對簡單。

但實際企業文件通常沒辦法這樣處理。

因為原始文件裡可能有:

  • 特定字型
  • 不同字級
  • 粗體 / 斜體
  • 行距
  • 段落設定
  • 表格
  • 合併儲存格
  • 圖片
  • 頁首頁尾
  • 分頁
  • 自訂樣式

只要轉換過程漏掉一些東西,就很容易發生「文字是對的,但整份 Word 排版壞掉」的情況。

所以目前處理方式並不是單純:

DOCX → HTML → 建立新的 DOCX

而是盡可能保留原本文件裡的資訊,再處理使用者實際修改的內容。

這部分也是目前最花時間的地方。


目前開發狀態

現在已經有一版可以直接操作。

這次沒有牽涉 AI Model 或公司內部資料,所以想說乾脆把 Demo 開放出來給大家測。

我自己測試的文件畢竟有限,而 Word 這種東西最不缺的就是各種奇怪格式 XD

如果手上剛好有:

  • 表格很多的 Word
  • 合併儲存格很多的 Word
  • 排版很複雜的 Word
  • 各種不知道為什麼會長這樣的 Word

都滿歡迎拿來玩看看。


線上 Demo

👉 https://profile.shenyuans.com/onlinedocx

測試帳號:

帳號:test123
密碼:test123

目前是公開測試環境,請不要上傳包含個資、機密資訊或正式業務資料的文件。

如果測到跑版、下載後格式不對、某些 DOCX 打不開,或直接把它玩壞了,都歡迎留言跟我說。

如果有一些企業系統實際上很常用,但目前沒有支援的功能,也可以提出來。


後續

目前沒有打算把它做成完整的 Microsoft Word 替代品,那個坑應該太大了 XD

現在比較想處理的是一個很明確的使用情境:

既有 Web 系統需要基本的 Word 編輯能力。

例如公文、採購、文件管理、表單或其他企業內部系統,本來就有 DOCX 範本,只是希望使用者可以直接在系統裡修改內容,不需要一直下載、修改、重新上傳。

接下來應該會繼續補不同 DOCX 的相容性,再看看大家實際測試後最常遇到哪些問題。

如果大家以前也做過 Web 線上編輯 Word,滿好奇你們最後是怎麼處理的。

歡迎交流,也歡迎幫我找 Bug :)

開源

前陣子做了一個「線上 Word 編輯器」,原本是希望能解決企業系統中,需要頻繁下載 Word、編輯後再重新上傳的操作問題。

不過考量到現實上的時間與維護成本,目前沒有辦法由我一個人持續單獨維護,所以決定直接把專案開源,提供給有需要的人免費使用、研究或自行延伸。

GitHub:
https://github.com/WUGINTING/FreeOnlineWordEditor?tab=readme-ov-file

線上 Demo:
https://wuginting.github.io/FreeOnlineWordEditor/

如果剛好有類似需求,也歡迎拿去玩玩看。
有興趣一起改善或新增功能的話,也歡迎 PR。


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言