игнорировать или автоматически переопределять форматирование страницы текущего документа с помощью предопределенных настроек 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

Связанный контент