*ページヘッダとフッタ [#ec1f5a21] 右ページの中央のヘッダに書き込みます。 "Default" のページスタイルを XStyleFamiliesSupplier を通じて取得します。そのあとで,RightPageHeader プロパティー (右ページのヘッダ) を利用して中央のヘッダ getCenterText() を設定します。ヘッダテキストは XText インターフェースです。そのため,setString() 以外の複雑な方法で設定が可能です (文字のサイズなど)。 import com.sun.star.bridge.XUnoUrlResolver; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.XComponentContext; import com.sun.star.lang.XMultiComponentFactory; import com.sun.star.beans.XPropertySet; import com.sun.star.beans.PropertyValue; import com.sun.star.lang.XComponent; import com.sun.star.sheet.XSpreadsheetDocument; import com.sun.star.sheet.XSpreadsheets; import com.sun.star.sheet.XSpreadsheet; import com.sun.star.table.XCell; import com.sun.star.text.XText; import com.sun.star.frame.XComponentLoader; import com.sun.star.style.XStyleFamiliesSupplier; import com.sun.star.container.XNameContainer; import com.sun.star.container.XNameAccess; import com.sun.star.sheet.XHeaderFooterContent; public class CalcPageHeader extends java.lang.Object { private XComponentContext xRemoteContext = null; private XMultiComponentFactory xRemoteServiceManager = null; public static void main(String[] args) { CalcPageHeader Connection = new CalcPageHeader(); try { Connection.Connect(); } catch (java.lang.Exception e) { e.printStackTrace(); } finally { System.exit(0); } } protected void Connect() throws java.lang.Exception { try { xRemoteServiceManager = this.getRemoteServiceManager( "uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"); Object desktop = xRemoteServiceManager.createInstanceWithContext( "com.sun.star.frame.Desktop", xRemoteContext); XComponentLoader xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface( XComponentLoader.class, desktop); PropertyValue[] loadProps = new PropertyValue[0]; XComponent xSpreadsheetComponent = xComponentLoader.loadComponentFromURL( "private:factory/scalc", "_blank", 0, loadProps); XSpreadsheetDocument xSpreadsheetDocument = (XSpreadsheetDocument)UnoRuntime.queryInterface( XSpreadsheetDocument.class, xSpreadsheetComponent); XSpreadsheets xSpreadsheets = xSpreadsheetDocument.getSheets(); Object sheet = xSpreadsheets.getByName("Sheet1"); XSpreadsheet xSpreadsheet = (XSpreadsheet)UnoRuntime.queryInterface( XSpreadsheet.class, sheet); XCell xCell = xSpreadsheet.getCellByPosition(0, 0); xCell.setValue(1); XStyleFamiliesSupplier xStyleFamiliesSupplier = (XStyleFamiliesSupplier) UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xSpreadsheetDocument); XNameAccess xStyleFamilies = (XNameAccess) xStyleFamiliesSupplier.getStyleFamilies(); XNameContainer xPageStyleContainer = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, xStyleFamilies.getByName("PageStyles")); XNameAccess xPageStyles = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xPageStyleContainer); Object xStyle = xPageStyles.getByName("Default"); XPropertySet xStylePropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xStyle); Object RightPageHeader = xStylePropertySet.getPropertyValue("RightPageHeaderContent"); XHeaderFooterContent xRightPageHeader = (XHeaderFooterContent)UnoRuntime.queryInterface(XHeaderFooterContent.class, RightPageHeader); Object CenterText = xRightPageHeader.getCenterText(); XText xCenterText = (XText)UnoRuntime.queryInterface(XText.class, CenterText); xCenterText.setString("Header Text!\nOpenOffice.org\nVersion 1.1.2"); xStylePropertySet.setPropertyValue("RightPageHeaderContent", RightPageHeader); } catch (com.sun.star.lang.DisposedException e) { xRemoteContext = null; throw e; } } protected XMultiComponentFactory getRemoteServiceManager(String unoUrl) throws java.lang.Exception { if (xRemoteContext == null) { XComponentContext xLocalContext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null); XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager(); Object urlResolver = xLocalServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", xLocalContext ); XUnoUrlResolver xUnoUrlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface( XUnoUrlResolver.class, urlResolver); Object initialObject = xUnoUrlResolver.resolve(unoUrl); XPropertySet xPropertySet = (XPropertySet)UnoRuntime.queryInterface( XPropertySet.class, initialObject); Object context = xPropertySet.getPropertyValue("DefaultContext"); xRemoteContext = (XComponentContext)UnoRuntime.queryInterface( XComponentContext.class, context); } return xRemoteContext.getServiceManager(); } } |