自动忽略或使用预定义设置覆盖当前文档页面格式 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

相关内容