/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ using System; using com.sun.star.awt; using com.sun.star.beans; using com.sun.star.bridge; using com.sun.star.container; using com.sun.star.drawing; using com.sun.star.frame; using com.sun.star.lang; using com.sun.star.text; using com.sun.star.table; using com.sun.star.uno; // Connect to a running office XComponentContext context = NativeBootstrap.bootstrap(); // Create a service manager of the remote office XMultiComponentFactory factory = context.getServiceManager(); // Create the Desktop XDesktop desktop = Desktop.create(context); // Open a new empty writer document XComponentLoader componentLoader = desktop.query(); XComponent component = componentLoader.loadComponentFromURL( "private:factory/swriter", "_blank", 0, Array.Empty()); XTextDocument textDocument = component.query(); // Create a text object XText text = textDocument.getText(); XSimpleText simpleText = text.query(); // Create a cursor object XTextCursor cursor = simpleText.createTextCursor(); // Inserting some Text text.insertString(cursor, "The first line in the newly created text document.\n", false); // Create instance of a text table with 4 columns and 4 rows IQueryInterface textTableI = textDocument.query().createInstance("com.sun.star.text.TextTable"); XTextTable textTable = textTableI.query(); textTable.initialize(4, 4); text.insertTextContent(cursor, textTable, false); // Set the table background color XPropertySet tablePropertySet = textTableI.query(); tablePropertySet.setPropertyValue("BackTransparent", new Any(false)); tablePropertySet.setPropertyValue("BackColor", new Any(0xCCCCFF)); // Get first row XTableRows tableRows = textTable.getRows(); Any rowAny = tableRows.query().getByIndex(0); // Set a different background color for the first row XPropertySet firstRowPropertySet = rowAny.cast(); firstRowPropertySet.setPropertyValue("BackTransparent", new Any(false)); firstRowPropertySet.setPropertyValue("BackColor", new Any(0x6666AA)); // Fill the first table row InsertIntoCell("A1", "FirstColumn", textTable); InsertIntoCell("B1", "SecondColumn", textTable); InsertIntoCell("C1", "ThirdColumn", textTable); InsertIntoCell("D1", "SUM", textTable); // Fill the remaining rows textTable.getCellByName("A2").setValue(22.5); textTable.getCellByName("B2").setValue(5615.3); textTable.getCellByName("C2").setValue(-2315.7); textTable.getCellByName("D2").setFormula("sum "); textTable.getCellByName("A3").setValue(21.5); textTable.getCellByName("B3").setValue(615.3); textTable.getCellByName("C3").setValue(-315.7); textTable.getCellByName("D3").setFormula("sum "); textTable.getCellByName("A4").setValue(121.5); textTable.getCellByName("B4").setValue(-615.3); textTable.getCellByName("C4").setValue(415.7); textTable.getCellByName("D4").setFormula("sum "); // Change the CharColor and add a Shadow XPropertySet cursorPropertySet = cursor.query(); cursorPropertySet.setPropertyValue("CharColor", new Any(255)); cursorPropertySet.setPropertyValue("CharShadowed", new Any(true)); // Create a paragraph break simpleText.insertControlCharacter(cursor, ControlCharacter.PARAGRAPH_BREAK, false); // Inserting colored Text. simpleText.insertString(cursor, " This is a colored Text - blue with shadow\n", false); // Create a paragraph break simpleText.insertControlCharacter(cursor, ControlCharacter.PARAGRAPH_BREAK, false); // Create a TextFrame. IQueryInterface textFrameI = textDocument.query().createInstance("com.sun.star.text.TextFrame"); XTextFrame textFrame = textFrameI.query(); // Set the size of the frame Size size = new Size(15000, 400); textFrame.query().setSize(size); // Set anchortype XPropertySet framePropertySet = textFrame.query(); framePropertySet.setPropertyValue("AnchorType", new Any(TextContentAnchorType.AS_CHARACTER)); // Insert the frame text.insertTextContent(cursor, textFrame, false); // Get the text object of the frame XText frameText = textFrame.getText(); XSimpleText frameSimpleText = frameText.query(); // Create a cursor object XTextCursor frameCursor = frameSimpleText.createTextCursor(); // Inserting some Text frameSimpleText.insertString(frameCursor, "The first line in the newly created text frame.", false); frameSimpleText.insertString(frameCursor, "\nWith this second line the height of the frame raises.", false); // Create a paragraph break simpleText.insertControlCharacter(frameCursor, ControlCharacter.PARAGRAPH_BREAK, false); // Change the CharColor and add a Shadow cursorPropertySet.setPropertyValue("CharColor", new Any(65536)); cursorPropertySet.setPropertyValue("CharShadowed", new Any(false)); // Insert another string text.insertString(cursor, "\n That's all for now !!", false); void InsertIntoCell(string cellName, string text, XTextTable textTable) { XCell cell = textTable.getCellByName(cellName); XSimpleText simpleText = cell.query(); simpleText.setString(text); }