現在のドキュメントページの書式を、定義済みの設定で自動的に無視または上書きする libreoffice

現在のドキュメントページの書式を、定義済みの設定で自動的に無視または上書きする libreoffice

他の人が作成した文書を開くときに、余白が 0.4 cm、ページの向きが横、ページ サイズが A3 に自動的に設定されるようにします。

父は毎週スプレッドシートをメールで受け取り、それを印刷しています。1 ページに収めるためにこれらの設定を適用するのですが、かなり手間がかかります。もっと早くできる方法があるはずだと思いました。

これらの設定で新しいデフォルト テンプレートを作成しようとしましたが、これは新しい空白のドキュメントでのみ機能します。これらの設定をすばやく適用するスタイルを作成しようとしましたが、これらのスタイルはドキュメント/テンプレート固有 (?) であるため、他の人のドキュメントを開いたときには表示されないことに気付きました。

どうすればこれが実現できるか、誰かアイデアをお持ちですか? ありがとうございます =]

答え1

1 つの方法は、マクロを使用してページ パラメータを設定し、すべてのシートからアクセスできるライブラリにマクロを保存することです。マクロは、LibreOffice メニューに割り当てることができます。自動ではありませんが、変更するスプレッドシートのメニュー エントリをクリックすることで実行できます。

このマクロOpenOffice フォーラムにあるものが、私が見つけた限りでは最も近いものです。LibreOffice でも動作するようです。

sub formatpage()
rem from http://user.services.openoffice.org/en/forum/viewtopic.php?f=20&t=42863
rem original by GWS with addition by Villory
rem modified for A3 and 0.4 cm margin
Dim sS      as String     '$     'Style name
Dim oStyle    as Object   'The current page style

pageStyles = thisComponent.StyleFamilies.getByName("PageStyles")
page = pageStyles.getByName("Default")

REM A3
page.width=29700
page.height=42000

REM SET MARGINS LEFT, RIGHT, TOP, BOTTOM = .4 cm"
page.LeftMargin = 400
page.RightMargin = 400
page.TopMargin = 400
page.BottomMargin = 400

REM Set Page Orientation TO LANDSCAPE
Dim printerOption(0) As New com.sun.star.beans.PropertyValue
printerOption(0).Name = "PaperOrientation"
printerOption(0).Value = com.sun.star.view.PaperOrientation.LANDSCAPE
thisComponent.Printer = printerOption()

sh=ThisComponent.Sheets.getByIndex(0)
sh.PageStyle=("Default")

end sub

関連情報