1

При открытии документа, сделанного кем-то другим, я хотел бы, чтобы поля автоматически устанавливались на 0,4 см, ориентация страницы в альбомной ориентации и размер страницы в 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .