在 LibreOffice Writer 中從表單建立可填寫 PDF
在 Writer 中新增可用的文字欄位、複選框和下拉列表,然後匯出 PDF,供收件者填寫和儲存。
如果您有一個包含 Word 文件的資料夾,LibreOffice 可以透過一個命令將其轉換為 PDF 文件。在包含 DOCX 檔案的資料夾中,建立一個空的輸出資料夾並執行命令libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx。此操作會使用 Writer 的 PDF 匯出過濾器,並保留原始文件。
使用全新的輸出資料夾,確認 LibreOffice 已安裝,並檢查生成的 PDF 文件,而不是僅僅因為命令成功退出就認為每一頁都正確無誤。命令列是實用的批次工具,但它並不能保證與 Microsoft Word 的分頁完全一致,也不能修復損壞的文件。
在 Linux 系統中,開啟包含檔案的目錄下的終端機。首先建立輸出目錄:
mkdir -p pdf
libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx
--headless該程式無需打開常規桌面視窗即可運行。--convert-to它選擇 PDF 作為目標格式;writer_pdf_Export指定 LibreOffice Writer 的 PDF 匯出過濾器;並將--outdir pdf結果傳送到指定pdf資料夾。在 LibreOffice 啟動之前,shell 會展開符合的檔案。 LibreOffice 在其命令列參數參考和檔案轉換過濾器清單*.docx中記錄了此轉換語法和過濾器名稱。

當所有 DOCX 檔案都位於同一個輸入資料夾內時,通配符指令最為有效。它不會搜尋子資料夾。在 Linux 系統中,預設情況下該模式區分大小寫,因此*.docx可能會跳過以 .docx 結尾的檔案.DOCX。如果 shell 報告模式不匹配,請先列出檔案並檢查其副檔名,然後再修改命令。
對於嵌套在子資料夾中的文檔,循環可以保持目錄結構不變,並避免兩個資料夾包含同名文件時發生衝突。分別設定input來源目錄樹和pdf目標目錄樹:
input="$PWD/input"
output="$PWD/pdf"
profile="file:///tmp/lo-batch-profile"
find "$input" -type f -iname '*.docx' -print0 |
while IFS= read -r -d '' file; do
rel="${file#"$input"/}"
dest="$output/$(dirname "$rel")"
mkdir -p "$dest"
libreoffice --headless \
-env:UserInstallation="$profile" \
--convert-to pdf:writer_pdf_Export \
--outdir "$dest" "$file"
done
-print0匹配功能read -d ''可以安全地處理檔案名稱中的空格和大多數特殊字元。單獨的設定檔可防止此批次作業與使用相同使用者設定檔的桌面 LibreOffice 工作階段發生衝突;請參閱 LibreOffice 的啟動參考文件-env:UserInstallation。如果兩個轉換作業可能同時執行,請使用唯一的設定檔路徑。將輸出樹放在輸入樹之外,以避免搜尋跳到先前的結果。

指令可能看似已完成但未產生任何文件,或可能連接到現有的 LibreOffice 進程。正在運行的桌面實例可能持有預設使用者設定檔。關閉 LibreOffice 並重試;對於無人值守作業,-env:UserInstallation遞歸範例中的隔離選項是一種有效的安全措施。為每個並發作業指派單獨的設定檔目錄,並在一個作業完成後重複使用該目錄。
如果命令提示libreoffice: command not found,請透過作業系統支援的軟體包來源安裝 LibreOffice,或使用可執行檔的完整路徑。在 Windows PowerShell 中,一個簡單的非遞歸批次處理可以這樣寫:
$src = (Resolve-Path .).Path
$out = Join-Path $src 'pdf'
New-Item -ItemType Directory -Force -Path $out | Out-Null
$soffice = "$env:ProgramFiles\LibreOffice\program\soffice.exe"
Get-ChildItem -File -Filter *.docx | ForEach-Object {
& $soffice --headless --convert-to pdf:writer_pdf_Export --outdir $out $_.FullName
}
$soffice如果 LibreOffice 安裝在其他位置,請進行相應調整。從來源資料夾運行命令,並使用新的輸出資料夾。Get-ChildItem -File除非請求遞歸,否則 PowerShell 只會搜尋該資料夾;遞迴作業需要一個循環,為每個來源路徑建立對應的目標資料夾。
PDF 轉換會保留 LibreOffice 可以識別的佈局,但 Word 和 LibreOffice 對文件的分頁並不總是完全一致。缺少字體、不支援的嵌入物件、修訂痕跡、網域或複雜的表格都可能導致換行符號和頁碼變更。為了確保排版一致,請在轉換前安裝文件所需的字型。受保護或密碼加密的檔案可能需要使用憑證開啟或手動處理,即使其他檔案可以轉換,損壞的 DOCX 檔案也可能無法單獨轉換。
請勿將批次檔重複輸出到包含同名重要 PDF 檔案的資料夾中。請使用乾淨的目標資料夾或先備份現有輸出。如果某個文件特別重要,請在使用 PDF 之前,先在 LibreOffice Writer 中開啟並檢查該文件。如果合約要求必須使用與 Microsoft Word 完全相同的分頁格式,LibreOffice 可能並非合適的渲染器;請在定義所需佈局的應用程式中比較範例檔案。

首先比較來源文件數量和 PDF 文件數量。在 Linux 系統中,以下命令可以統計扁平資料夾中的檔案數量:
find . -maxdepth 1 -type f -iname '*.docx' | wc -l
find pdf -maxdepth 1 -type f -iname '*.pdf' | wc -l
對於遞歸轉換,請比較整個輸入和輸出樹中的計數。計數匹配僅供參考,並非品質保證:損壞的文件或被覆蓋的重複文件仍可能需要檢查。檢查終端日誌中的錯誤,並確認每個預期的檔案名稱都出現在目標位置。
使用 PDF 檢視器檢查代表性 PDF 檔案。檢查首頁和末頁、頁碼、頁邊距、表格、頁首和頁尾、圖像以及任何重要的分頁符號。如果pdfinfo已安裝,pdfinfo pdf/Report.pdf則會提供頁碼和頁面大小等元資料;但它不會評估視覺保真度。僅在解決特定問題(例如安裝缺少的字體或更改輸出目錄)後才重新轉換,然後再次檢查受影響的 PDF 文件。

當所有預期的 PDF 文件都存在、可以無錯誤地打開,並且重要頁面保持預期佈局時,批次即完成。對於較長的壓縮文件,請保留原始 DOCX 文件和轉換日誌,以便追蹤單一故障並重新運行,而不會覆蓋無關的輸出。
在 Writer 中新增可用的文字欄位、複選框和下拉列表,然後匯出 PDF,供收件者填寫和儲存。
修復 LibreOffice Writer PDF 中缺少或替換的字體,選擇正確的匯出配置文件,並在共享之前驗證嵌入的字體。
使用 LibreOffice 命令將 Word 文件資料夾轉換為 PDF,安全地處理巢狀資料夾,並在共用之前驗證輸出。
將自訂的 LibreOffice Writer 模板設定為預設模板,以便新文件以您喜歡的樣式和頁面佈局開啟。
安裝相容的 Java 執行環境,在 LibreOffice 中啟用它,並在不更改無關設定的情況下排查 JRE 清單為空的問題。
建立一個小型 LibreOffice 容器,在沒有 GUI 的情況下轉換辦公室文檔,並在限制主機文件存取的情況下驗證 PDF 輸出。
透過壓縮嵌入的圖片、選擇合理的圖像設定以及在共享前檢查幻燈片品質來減少 LibreOffice 簡報檔案的大小。
在列印自訂尺寸的文件之前,請將 LibreOffice 的頁面尺寸與您的印表機匹配,檢查可列印邊距,並校正縮放比例。
將重複的儲存格存取權替換為批次範圍讀取和寫入,然後對結果進行基準測試,並保護大型 Calc 工作簿中的公式。
將長篇手稿拆分成章節,在 Writer 中組裝,並保持樣式、內容和導出檢查的一致性。