미리 정의된 설정으로 현재 문서 페이지 서식을 자동으로 무시하거나 재정의합니다. libreoffice

미리 정의된 설정으로 현재 문서 페이지 서식을 자동으로 무시하거나 재정의합니다. libreoffice

다른 사람이 만든 문서를 열 때 자동으로 여백이 0.4cm로, 페이지 방향이 가로로, 페이지 크기가 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

관련 정보