libreoffice 會自動使用預定義設定忽略或覆寫目前文件頁面格式

libreoffice 會自動使用預定義設定忽略或覆寫目前文件頁面格式

當打開別人製作的文件時,我希望頁邊距自動設定為0.4厘米,頁面方向為橫向,頁面尺寸為A3。

我爸爸每週都會收到一份電子表格的電子郵件,他會把它們印出來。為了將它們放在一頁上,他應用了這些設置,這是相當費力的。我想一定有一種更快的方法來做到這一點!

我嘗試使用這些設定來建立一個新的預設模板,但這僅適用於新的空白文件。我嘗試創建一種樣式來快速應用這些設置,但我意識到這些樣式是特定於文檔/模板的(?),因此在打開其他人的文檔時不會出現。

任何人有任何想法我可以如何做到這一點?謝謝=]

答案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

相關內容