An example of converting java code into c ++ code in openoffice

Source: Internet
Author: User

 

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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.