The java code is as follows:
// 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
// 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
// Actual style families
XNameAccess xFamilies = (XNameAccess) UnoRuntime. queryInterface (XNameAccess. class,
XSupplier. getStyleFamilies ());
// Access the 'pagestle' 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 ));
The c ++ code is as follows:
// 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
// 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
// Actual style families
Reference <XNameAccess> xFamilies (xSupplier-> getStyleFamilies (), UNO_QUERY );
// Access the 'pagestle' 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 );
Because I do not have a deep understanding of the any type and I do not know how to use the any variable directly, I used three temporary any variables. For details, see the last three rows.