2025-05-23

 

java代碼如下:

//Listing 33 A Java Code Example

// Java

// create new writer document and get text, then manipulate text

XComponent xWriterComponent = newDocComponent(“swriter”);

XTextDocument xTextDocument = (XTextDocument)UnoRuntime.queryInterface(XTextDocument.class,xWriterComponent);

// Access the text document’s multi service factory, which we will need for most of the

// following examples

mxDocFactory = (XMultiServiceFactory) UnoRuntime.queryInterface

(XMultiServiceFactory.class,xTextDocument);

XText xText = xTextDocument.getText();

// create a text cursor from the cells XText interface

XTextCursor xTextCursor = xText.createTextCursor();

// Get the property set of the cell’s TextCursor

XPropertySet xTextCursorProps = (XPropertySet)UnoRuntime.queryInterface

(XPropertySet.class,xTextCursor);

// Page Style name

String pageStyleName= xTextCursorProps.getPropertyValue(“PageStyleName”).toString();

// Get the StyleFamiliesSupplier interface of the document

XStyleFamiliesSupplier xSupplier = (XStyleFamiliesSupplier) UnoRuntime.queryInterface

(XStyleFamiliesSupplier.class,xTextDocument);

// Use the StyleFamiliesSupplier interface to get the XNameAccess interface of the

// actual style families

XNameAccess xFamilies = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class,

xSupplier.getStyleFamilies());

// Access the ‘PageStyles’ Family

XNameContainer xFamily = (XNameContainer) UnoRuntime.queryInterface

(XNameContainer.class,xFamilies.getByName(“PageStyles”));

// Insert the newly created style into the PageStyles family

XStyle xStyle= (XStyle) UnoRuntime.queryInterface(XStyle.class,xFamily.getByName

(pageStyleName));

// Get the property set of the TextCursor

XPropertySet xStyleProps = (XPropertySet)UnoRuntime.queryInterface

(XPropertySet.class,xStyle);

xStyleProps.setPropertyValue(“LeftMargin”,new Short((short)1200));

xStyleProps.setPropertyValue(“RightMargin”,new Short((short)1200));

xStyleProps.setPropertyValue(“BottomMargin”,new Short((short)1200));

 

c++代碼如下:

//Listing 34 The corresponding C++ Translation

// C++

// create new writer document and get text, then manipulate text

 

// Don’t forget to add : using namespace com::sun::star::text;

// Don’t forget to add : #include

// Don’t forget to add “com.sun.star.text.XTextDocument \” in the makefile

 

// Don’t forget to add : using namespace com::sun::star::beans;

// Don’t forget to add : #include

// Don’t forget to add “com.sun.star.beans.XPropertySet \” in the makefile

// Don’t forget to add : using namespace com::sun::star::style;

// Don’t forget to add : #include

// Don’t forget to add “com.sun.star.style.XStyleFamiliesSupplier \” in the makefile

// Don’t forget to add : using namespace com::sun::star::container;

 

// Don’t forget to add : #include

// Don’t forget to add “com.sun.star.container.XNameContainer \” in the makefile

 

// Don’t forget to add : #include

// Don’t forget to add “com.sun.star.style.XStyle \” in the makefile

 

// the first line cannot be translated : already done in our main()

// XComponent xWriterComponent = newDocComponent(“swriter”);

 

Reference < XTextDocument > xTextDocument (xWriterComponent,UNO_QUERY);

// Access the text document’s multi service factory, which we will need for most of the

// following examples

Reference< XMultiServiceFactory > mxDocFactory(xTextDocument,UNO_QUERY);

Reference< XText > xText = xTextDocument->getText();

// create a text cursor from the cells XText interface

Reference< XTextCursor > xTextCursor = xText->createTextCursor();

 

// Get the property set of the cell’s TextCursor

Reference< XPropertySet > xTextCursorProps(xTextCursor,UNO_QUERY);

 

// Page Style name

//*** I add a intermediate variable because of Any type returned by getPropertyValue

Any pageStyleName2 = xTextCursorProps->getPropertyValue

(OUString::createFromAscii(“PageStyleName”));

OUString pageStyleName;

pageStyleName2 >>= pageStyleName ;

 

// Get the StyleFamiliesSupplier interface of the document

Reference< XStyleFamiliesSupplier > xSupplier(xTextDocument,UNO_QUERY);

 

// Use the StyleFamiliesSupplier interface to get the XNameAccess interface of the

// actual style families

Reference< XNameAccess > xFamilies(xSupplier->getStyleFamilies(),UNO_QUERY);

 

// Access the ‘PageStyles’ Family

Reference< XNameContainer > xFamily(xFamilies->getByName

(OUString::createFromAscii(“PageStyles”)),UNO_QUERY);

// Insert the newly created style into the PageStyles family

Reference< XStyle > xStyle(xFamily->getByName(pageStyleName),UNO_QUERY);

 

// Get the property set of the TextCursor

Reference< XPropertySet > xStyleProps(xStyle,UNO_QUERY);

Any lm, rm, bm;

lm<<=(short)1200; rm<<=(short)1200; bm<<=(short)1200;

xStyleProps->setPropertyValue(OUString::createFromAscii(“LeftMargin”),lm);

xStyleProps->setPropertyValue(OUString::createFromAscii(“RightMargin”),rm);

xStyleProps->setPropertyValue(OUString::createFromAscii(“BottomMargin”),bm);

因為對any類型的理解不深入,我不知道如何直接使用any變量,所以我用瞭三個臨時any變量,見最後三行

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *