December 4, 2013

Libreoffice 合併列印地址標籤

晚間收到一個需求,老媽的朋友有一大筆通訊錄儲存成 Office 的 excel 檔,想要列印到 A4 大小的空白標籤貼紙上,寄送郵件的時候只要依序撕下、黏貼即可。這是相當常見的需求,不過以前沒作過也算是新鮮,因此在這邊做了點紀錄。

  • 使用 Libreoffice 4.1.3.2
  • A4 大小的標籤貼紙,已經預先裁好 2 欄(columns) 11 列(rows)
  • 每一格是 10.5 cm x 2.7 cm
最後印出來的結果大致長得像這樣


首先將檔案視為資料庫匯入,這是我摸索出來的作法,應該會有比較正確的作法
  1. 打開 xls 檔案
  2. 開新檔案,選 Libreoffice Writer
  3. 工具 / 合併郵件精靈 / 3. 插入地址區塊 / 選擇地址清單 / 加入 xls 檔

如此一來 xls 檔就被當成資料庫了,此時可以先把這個 writer 關掉,回到 xls 檔。接著來編輯 template
  1. 從 xls 檔的「檔案」 / 「新增」 / 「標籤」
  2. 在「格式」那一頁先編輯一下
    1. 水平間隔、寬度為 10.5 cm
    2. 垂直間隔、高度為 2.7 cm
    3. 邊框為 0 cm
    4. 2 欄 11 列
    5. 頁寬 21 cm 頁高 29.71 cm (A4)
    6. 隨便存個名字,好比 "Print Label"
  3. 在「選項」那一頁
    1. 選取整頁
    2. 勾選內容同步化
  4. 回到「標籤」那一頁開始編輯
    1. 勾選「地址」
    2. 資料庫:選擇剛剛增加的 database
    3. 選取 database 裡面的 table
    4. 資料庫欄位,依序加入左邊,左邊亦可編輯 (這一步要注意!左方的 template 連結到的是資料庫欄位,如果改用不同的資料庫,會發生找不到資料的情況。意思就是:換資料庫,這一步驟就要重作)
    5. 格式選「連續」
    6. 商標、類型選剛剛儲存的格式 (ex: Print Label)
    7. 按下新增
此時會跑出一頁有 2 columns 11 rows 的文件,但是文件上面的資訊全部都是重複的內容,此時也可以替每個欄位稍微格式化(加粗體之類的)

接著將資料庫的內容填入
  1. 工具 / 合併郵件精靈
  2. 使用目前的文件
  3. 書信
  4. 一路繼續下去到最後一項
  5. 儲存合併的文件 / 儲存為單一文件,此時就能另存為 odt 或是 pdf 檔了

最後拿到了 pdf 檔就可以用來列印,仔細一查卻發現,第一筆資料不見了!但我覺得之前的動作都挺合邏輯,猜想可能有 bug,insert content 的時候有 array index 的問題(唉,我對 office 軟體很沒信心)

另外中文翻譯有時是「合併郵件精靈」,但是打開的視窗標題又變成「合併列印精靈」 :-(



Update:

刪除資料庫的方法
  1. 打開一個文件,選上方的工具 / 選項
  2. Libreoffice Base / 資料庫
  3. 選擇不要的資料庫 / 刪除

No comments:

Post a Comment