Libre Office年賀状宛名印刷(差し込み印刷)でぶち当たった問題あれこれ
やりたかったこと
年賀状の宛名印刷を無料で実現したかった。
Libre Calcで作った住所録をWriterでデザインした宛名欄に差し込めばいけるんじゃね?
基本のしくみ
Calcで住所録を作る。
Writerを起動する。
用紙をはがきサイズにする。
はがき宛名面画像を画像で貼る。(「はがき宛名面」とかでググってください。年賀状、特にお年玉付きだとレイアウトが通常とかなり違うので、可能なら実物を計測するのが良いです)
位置とサイズタブ:サイズは10.00 x 14.80 cm、アンカー→ページへ、位置は横も縦も「中央」
オブションタブ:保護→内容・位置・サイズ(すべて)、印刷チェックを外す
折り返しタブ:折り返しなし、背景にチェック、重なりを許可チェック
枠線:線スタイルなし
(余談)用紙の背景として画像も指定できるが、そうしない理由は「印刷しない」設定がないため
用紙の外をクリックして画像のフォーカスを外す(背景画像は意図せず選択してしまいがちなので、以降、なにか躓いたら必ずこうしてフォーカスを外すことを意識する)。
挿入>フレーム>対話的に枠を挿入。位置、大きさ、パディング、書式などを設定。これを繰り返して郵便番号欄や住所や宛名出力位置を調整。
ツール>オプション>LibreOffice Writer>グリッドの設定を確認しておくと位置合わせが楽になるかも。
位置とサイズは確定したらロックしておくと事故が減らせる。
フレームをクリックして中にカーソルが乗った状態で 挿入>フィールド>その他のフィールド(Ctrl+F2)
データベースタブを表示
種類:差し込み印刷フィールド
「データベースファイルの追加」で参照を押し、住所録Calcファイルを指定。
ファイル名が表示されたら>マークを展開してシート名、列名へと送る。
差し込みたい列(例えば郵便番号)をダブルクリック(あるいは右下の挿入ボタン)で挿入。<郵便番号>が文書に表示される。ダイアログは閉じずに、続けて各フレームをクリックしながら住所、宛名などを挿入していく。
郵便番号フィールドを3桁+4桁と分けた場合は元の住所録Calcに「加工するためのセル」が必要になる。
=IF($A2<>"", LEFT($A2,3)," ")
みたいな感じ(スペースを出力している理由は後述)で郵便番号文字列から左3桁を取り出すなど…詳しくは各自頑張って。
ひと通り挿入し終えたらダイアログを閉じる
メニューの表示>データソースで今挿入したデータの項目が出る。
行先頭の▶をクリックしてハイライトしたあと、「データからフィールドへ」ボタンでそれぞれの行の出力を確認できる。
フィルターで絞り込みもできるが、作業中のフィルター結果はあてにならないので(非表示の項目も表示できてしまう)印刷時に改めて指定するのを心がけたほうが良い。
オブジェクトの背景を透明にして重ねるには
宛名としてお一人様用宛名と、姓+名*2の連名の2種類を使い分け、それらを同じ位置に印刷する必要があった。
住所録側は「お一人様」と「連名」で別にセルを用意すれば良い。問題は印刷位置だが、フレームを同じ位置に重ねる必要がありそうだ。
オブジェクトのプロパティで 背景→なし にするだけでは下のオブジェクトが透過しない。
背景タブ→色→白 を選択後 透明タブ→透過100% を指定するのが正解。
このとき 折り返しタブ→折り返し無し に設定しないと、重ねたときに重なりを避けて勝手に文字が移動(回り込み)してしまう。
フレームを重ねる(隠す)とフィールド値が更新されない
重なることで隠れたフレームは(背景透明にして見えていても)フィールドの更新をサボるらしい。おそらくバグだと思うが。
ので位置を少しずらしましょう。すこしくらい出てる程度だとやはりサボる。更新される条件がはっきりしないが、フレームの左上位置が影響している?
フレームのアンカーがページ外にあった場合もフィールドが更新されないという情報もあるので、アンカーがページ内に存在しているか確認しましょう
リスト項目を送っていくと差し込み内容が途中から消える問題
フィールドに一度でも「空欄」セルを表示しようとするとそれ以降の差し込み内容を出力してくれなくなる。おそらくバグだと思うが。(2回目)
回避策として、セル内容が空欄にならないようにする。たとえば住所録Calcの項目の末尾のセルに
=IF($A2<>"", $A2, " ")
などと仕込み(A2は表示したいセル)、こちらをフィードに差し込む。空欄が来たら空白に変換して回避している。
印刷
メニュー>印刷 を選択すると「ドキュメントに…差し込み印刷を実行しますか?」と聞かれるので「はい」
差し込み印刷ダイアログ。ここでフィルターによる絞り込み、印刷件数を確認できる。
ちなみに差し込み印刷ダイアログ上で出力に「ファイル」を選ぶと、PDFではなくODTとして出力される。実際に印刷しないオブジェクトも表示されてしまうのでこちらではテストにならない。
Libreの印刷ダイアログではがきサイズが指定出来ない
用紙のリスト上に「ハガキ」はあるが、選んでもA4サイズになってしまう。このままでは印刷がズレてしまい使えない。おそらくバグだと思うが。(3回目)
散々ググったが、皆同じ悩みを抱えながら解決案が出ておらず、しかたないのでWindows11標準のXPS Document Writerを通してXPS形式で出力し、Windows11付属のXPSビューワーから印刷した。ページ指定印刷もできる。
PDFでもよかったが、Microsoft PDF Writerもはがきサイズが指定できない。