<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.harlamenkov.ru/index.php?action=history&amp;feed=atom&amp;title=EN%2Fdocumentation%2Fbasic_guide%2Fmore_than_text</id>
	<title>EN/documentation/basic guide/more than text - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.harlamenkov.ru/index.php?action=history&amp;feed=atom&amp;title=EN%2Fdocumentation%2Fbasic_guide%2Fmore_than_text"/>
	<link rel="alternate" type="text/html" href="https://wiki.harlamenkov.ru/index.php?title=EN/documentation/basic_guide/more_than_text&amp;action=history"/>
	<updated>2026-11-11T14:00:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://wiki.harlamenkov.ru/index.php?title=EN/documentation/basic_guide/more_than_text&amp;diff=15954&amp;oldid=prev</id>
		<title>Sancho: Основной текст</title>
		<link rel="alternate" type="text/html" href="https://wiki.harlamenkov.ru/index.php?title=EN/documentation/basic_guide/more_than_text&amp;diff=15954&amp;oldid=prev"/>
		<updated>2011-09-02T17:22:15Z</updated>

		<summary type="html">&lt;p&gt;Основной текст&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;section begin=title /&amp;gt;&amp;lt;noinclude&amp;gt;{{DISPLAYTITLE:&amp;lt;/noinclude&amp;gt;Text Documents: More Than Just Text&amp;lt;noinclude&amp;gt;}}&amp;lt;/noinclude&amp;gt;&amp;lt;section end=title /&amp;gt;{{BreadCrumbL10n}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation/BASICGuideTOC&lt;br /&gt;
|ShowPrevNext=block&lt;br /&gt;
|ShowPrevPage=block&lt;br /&gt;
|PrevPage=EN/documentation/basic_guide/editing_text_documents&lt;br /&gt;
|NextPage=EN/documentation/basic_guide/spreadsheets&lt;br /&gt;
|textdocs=block&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &lt;br /&gt;
&lt;br /&gt;
So far, this chapter has only dealt with text paragraphs and their portions. But text documents may also contain other objects. These include tables, drawings, text fields and directories. All of these objects can be anchored to any point within a text. &lt;br /&gt;
&lt;br /&gt;
Thanks to these common features, all of these objects in {{OOo}} support a common basic service called &amp;lt;idl&amp;gt;com.sun.star.text.TextContent&amp;lt;/idl&amp;gt;. This provides the following properties:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;AnchorType (Enum)&amp;lt;/tt&amp;gt;:determines the anchor type of a &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; object (default values in accordance with &amp;lt;idl&amp;gt;com.sun.star.text.TextContentAnchorType&amp;lt;/idl&amp;gt; enumeration).&lt;br /&gt;
;&amp;lt;tt&amp;gt;AnchorTypes (sequence of Enum)&amp;lt;/tt&amp;gt;:enumeration of all &amp;lt;tt&amp;gt;AnchorTypes&amp;lt;/tt&amp;gt; which support a special &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; object.&lt;br /&gt;
;&amp;lt;tt&amp;gt;TextWrap (Enum)&amp;lt;/tt&amp;gt;:determines the text wrap type around a &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; object (default values in accordance with &amp;lt;idl&amp;gt;com.sun.star.text.WrapTextMode&amp;lt;/idl&amp;gt; enumeration).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects also share some methods – in particular, those for creating, inserting and deleting objects.&lt;br /&gt;
&lt;br /&gt;
* A new &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; object is '''created''' using the &amp;lt;tt&amp;gt;createInstance&amp;lt;/tt&amp;gt; method of the document object.&lt;br /&gt;
* An object is '''inserted''' using the &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt; method of the text object.&lt;br /&gt;
* &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects are '''deleted''' using the &amp;lt;tt&amp;gt;removeTextContent&amp;lt;/tt&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
You will find a range of examples which use these methods in the following sections.&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
&lt;br /&gt;
The following example creates a table with the help of the createInstance method described previously.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim Table As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
&lt;br /&gt;
Table = Doc.createInstance(&amp;quot;com.sun.star.text.TextTable&amp;quot;)&lt;br /&gt;
Table.initialize(5, 4)&lt;br /&gt;
&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Table, False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once created, the table is set to the number of rows and columns requested using an &amp;lt;tt&amp;gt;initialize&amp;lt;/tt&amp;gt; call and then inserted in the text document using &amp;lt;tt&amp;gt;insertTextContent.&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen in the example, the &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt; method expects not only the &amp;lt;tt&amp;gt;Content&amp;lt;/tt&amp;gt; object to be inserted, but two other parameters:&lt;br /&gt;
&lt;br /&gt;
* a &amp;lt;tt&amp;gt;Cursor&amp;lt;/tt&amp;gt; object which determines the insert position&lt;br /&gt;
* a Boolean variable which specifies whether the &amp;lt;tt&amp;gt;Content&amp;lt;/tt&amp;gt; object is to replace the current selection of the cursor (&amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; value) or is to be inserted before the current selection in the text (&amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
{{VBAnote|When creating and inserting tables in a text document, objects similar to those available in VBA are used in {{OOo}} Basic: The document object and a &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt; object in {{OOo}} Basic, or the &amp;lt;tt&amp;gt;Range&amp;lt;/tt&amp;gt; object as the VBA counterpart. Whereas the &amp;lt;tt&amp;gt;Document.Tables.Add&amp;lt;/tt&amp;gt; method takes on the task of creating and setting the table in VBA, this is created in {{OOo}} Basic in accordance with the previous example using &amp;lt;tt&amp;gt;createInstance&amp;lt;/tt&amp;gt;, initialized, and inserted in the document through &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
The tables inserted in a text document can be determined using a simple loop. The method &amp;lt;tt&amp;gt;getTextTables()&amp;lt;/tt&amp;gt; of the text document object is used for this purpose:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim TextTables As Object&lt;br /&gt;
Dim Table As Object&lt;br /&gt;
Dim I As Integer&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
TextTables = Doc.getTextTables()&lt;br /&gt;
For I = 0 to TextTables.count - 1&lt;br /&gt;
&lt;br /&gt;
   Table = TextTables(I)&lt;br /&gt;
   ' Editing table&lt;br /&gt;
&lt;br /&gt;
Next I&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|Text tables are available in {{OOo}} through the &amp;lt;tt&amp;gt;TextTables&amp;lt;/tt&amp;gt; list of the document object. The previous example shows how a text table can be created. The options for accessing text tables are described in the following section.}}&lt;br /&gt;
&lt;br /&gt;
=== Editing Tables ===&lt;br /&gt;
&lt;br /&gt;
A table consists of individual rows. These in turn contain the various cells. Strictly speaking, there are no table columns in {{OOo}}. These are produced implicitly by arranging the rows (one under another) next to one another. To simplify access to the tables, {{OOo}}, however, provides some methods which operate using columns. These are useful if no cells have been merged in the table.&lt;br /&gt;
&lt;br /&gt;
Let us first take the properties of the table itself. These are defined in the &amp;lt;idl&amp;gt;com.sun.star.text.TextTable&amp;lt;/idl&amp;gt; service. Here is an list of the most important properties of the table object:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;BackColor (Long)&amp;lt;/tt&amp;gt;:background color of table.&lt;br /&gt;
;&amp;lt;tt&amp;gt;BottomMargin (Long)&amp;lt;/tt&amp;gt;:bottom margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;LeftMargin (Long)&amp;lt;/tt&amp;gt;:left margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;RightMargin (Long)&amp;lt;/tt&amp;gt;:right margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;TopMargin (Long)&amp;lt;/tt&amp;gt;:top margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;RepeatHeadline (Boolean)&amp;lt;/tt&amp;gt;:table header is repeated on every page. &lt;br /&gt;
;&amp;lt;tt&amp;gt;Width (Long)&amp;lt;/tt&amp;gt;:absolute width of the table in 100ths of a millimeter.&lt;br /&gt;
&lt;br /&gt;
=== Rows ===&lt;br /&gt;
&lt;br /&gt;
A table consists of a list containing rows. The following example shows how the rows of a table can be retrieved and formatted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim Table As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
Dim Rows As Object&lt;br /&gt;
Dim Row As Object&lt;br /&gt;
Dim I As Integer&lt;br /&gt;
 &lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
&lt;br /&gt;
Table = Doc.createInstance(&amp;quot;com.sun.star.text.TextTable&amp;quot;)&lt;br /&gt;
Table.initialize(5, 4)&lt;br /&gt;
&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Table, False)&lt;br /&gt;
Rows = Table.getRows&lt;br /&gt;
For I = 0 To Rows.getCount() - 1&lt;br /&gt;
   Row = Rows.getByIndex(I)&lt;br /&gt;
   Row.BackColor = &amp;amp;HFF00FF&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example first creates a list containing all rows using a &amp;lt;tt&amp;gt;Table.getRows&amp;lt;/tt&amp;gt; call. The &amp;lt;tt&amp;gt;getCount&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;getByIndex&amp;lt;/tt&amp;gt; methods allow the list to be further processed and belongs to the &amp;lt;tt&amp;gt;com.sun.star.table.XtableRows&amp;lt;/tt&amp;gt; interface. The &amp;lt;tt&amp;gt;getByIndex&amp;lt;/tt&amp;gt; method returns a row object, which supports the &amp;lt;idl&amp;gt;com.sun.star.text.TextTableRow&amp;lt;/idl&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
Here are the central methods of the &amp;lt;idl&amp;gt;com.sun.star.table.XtableRows&amp;lt;/idl&amp;gt; interface:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;getByIndex(Integer)&amp;lt;/tt&amp;gt;:returns a row object for the specified index.&lt;br /&gt;
;&amp;lt;tt&amp;gt;getCount()&amp;lt;/tt&amp;gt;:returns the number of row objects.&lt;br /&gt;
;&amp;lt;tt&amp;gt;insertByIndex(Index, Count)&amp;lt;/tt&amp;gt;:inserts Count rows in the table as of the &amp;lt;tt&amp;gt;Index&amp;lt;/tt&amp;gt; position.&lt;br /&gt;
;&amp;lt;tt&amp;gt;removeByIndex(Index, Count)&amp;lt;/tt&amp;gt;:deletes Count rows from the table as of the &amp;lt;tt&amp;gt;Index&amp;lt;/tt&amp;gt; position.&lt;br /&gt;
&lt;br /&gt;
Whereas the &amp;lt;tt&amp;gt;getByIndex&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;getCount&amp;lt;/tt&amp;gt; methods are available in all tables, the &amp;lt;tt&amp;gt;insertByIndex&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;removeByIndex&amp;lt;/tt&amp;gt; methods can only be used in tables that do not contain merged cells.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;idl&amp;gt;com.sun.star.text.TextTableRow&amp;lt;/idl&amp;gt; service provides the following properties:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;BackColor (Long)&amp;lt;/tt&amp;gt;:background color of row.&lt;br /&gt;
;&amp;lt;tt&amp;gt;Height (Long)&amp;lt;/tt&amp;gt;:height of line in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;IsAutoHeight (Boolean)&amp;lt;/tt&amp;gt;:table height is dynamically adapted to the content.&lt;br /&gt;
;&amp;lt;tt&amp;gt;VertOrient (const)&amp;lt;/tt&amp;gt;:vertical orientation of the text frame — details on vertical orientation of the text within the table (values in accordance with &amp;lt;idl&amp;gt;com.sun.star.text.VertOrientation&amp;lt;/idl&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Columns ===&lt;br /&gt;
&lt;br /&gt;
Columns are accessed in the same way as rows, using the &amp;lt;tt&amp;gt;getByIndex&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;getCount&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;insertByIndex&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;removeByIndex&amp;lt;/tt&amp;gt; methods on the &amp;lt;tt&amp;gt;Column&amp;lt;/tt&amp;gt; object, which is reached through &amp;lt;tt&amp;gt;getColumns&amp;lt;/tt&amp;gt;. They can, however, only be used in tables that do not contain merged table cells. Cells cannot be formatted by column in {{OOo}} Basic. To do so, the method of formatting individual table cells must be used.&lt;br /&gt;
&lt;br /&gt;
=== Cells ===&lt;br /&gt;
&lt;br /&gt;
Each cell of a {{OOo}} document has a unique name. If the cursor of {{OOo}} is in a cell, then the name of that cell can be seen in the status bar. The top left cell is usually called A1 and the bottom right row is usually called &amp;lt;tt&amp;gt;Xn&amp;lt;/tt&amp;gt;, where &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; stands for the letters of the top column and &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt; for the numbers of the last row. The cell objects are available through the &amp;lt;tt&amp;gt;getCellByName()&amp;lt;/tt&amp;gt; method of the table object. The following example shows a loop that passes through all the cells of a table and enters the corresponding row and column numbers into the cells.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim Table As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
Dim Rows As Object&lt;br /&gt;
Dim RowIndex As Integer&lt;br /&gt;
Dim Cols As Object&lt;br /&gt;
Dim ColIndex As Integer&lt;br /&gt;
Dim CellName As String&lt;br /&gt;
Dim Cell As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
&lt;br /&gt;
Table = Doc.createInstance(&amp;quot;com.sun.star.text.TextTable&amp;quot;)&lt;br /&gt;
Table.initialize(5, 4)&lt;br /&gt;
&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Table, False)&lt;br /&gt;
&lt;br /&gt;
Rows = Table.getRows&lt;br /&gt;
Cols = Table.getColumns&lt;br /&gt;
&lt;br /&gt;
For RowIndex = 1 To Rows.getCount()&lt;br /&gt;
   For ColIndex = 1 To Cols.getCount()&lt;br /&gt;
      CellName = Chr(Asc(&amp;quot;A&amp;quot;) - 1 + ColIndex) &amp;amp; RowIndex&lt;br /&gt;
      Cell = Table.getCellByName(CellName)&lt;br /&gt;
      Cell.String = &amp;quot;row: &amp;quot; &amp;amp; CStr(RowIndex) + &amp;quot;, column: &amp;quot; &amp;amp; CStr(ColIndex)&lt;br /&gt;
   Next&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A table cell is comparable with a standard text. It supports the &amp;lt;tt&amp;gt;createTextCursor&amp;lt;/tt&amp;gt; interface for creating an associated &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt; object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
CellCursor = Cell.createTextCursor()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All formatting options for individual characters and paragraphs are therefore automatically available.&lt;br /&gt;
&lt;br /&gt;
The following example searches through all tables of a text document and applies the right-align format to all cells with numerical values by means of the corresponding paragraph property.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim TextTables As Object&lt;br /&gt;
Dim Table As Object&lt;br /&gt;
Dim CellNames&lt;br /&gt;
Dim Cell As Object&lt;br /&gt;
Dim CellCursor As Object&lt;br /&gt;
Dim I As Integer&lt;br /&gt;
Dim J As Integer&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
TextTables = Doc.getTextTables()&lt;br /&gt;
&lt;br /&gt;
For I = 0 to TextTables.count - 1&lt;br /&gt;
   Table = TextTables(I)&lt;br /&gt;
   CellNames = Table.getCellNames()&lt;br /&gt;
&lt;br /&gt;
   For J = 0 to UBound(CellNames)&lt;br /&gt;
      Cell = Table.getCellByName(CellNames(J))&lt;br /&gt;
      If IsNumeric(Cell.String) Then&lt;br /&gt;
         CellCursor = Cell.createTextCursor()&lt;br /&gt;
         CellCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.RIGHT&lt;br /&gt;
      End If&lt;br /&gt;
   Next&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example creates a &amp;lt;tt&amp;gt;TextTables&amp;lt;/tt&amp;gt; list containing all tables of a text that are traversed in a loop. {{OOo}} then creates a list of the associated cell names for each of these tables. There are passed through in turn in a loop. If a cell contains a numerical value, then the example changes the formatting correspondingly. To do this, it first creates a &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt; object which makes reference to the content of the table cell and then adapts the paragraph properties of the table cell.&lt;br /&gt;
&lt;br /&gt;
== Text Frames ==&lt;br /&gt;
&lt;br /&gt;
Text frames are considered to be &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects, just like tables and graphs. They may essentially consist of standard text, but can be placed at any position on a page and are not included in the text flow.&lt;br /&gt;
&lt;br /&gt;
As with all &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects, a distinction is also made with text frames between the actual creation and insertion in the document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim TextTables As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
Dim Frame As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
Frame = Doc.createInstance(&amp;quot;com.sun.star.text.TextFrame&amp;quot;)&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Frame, False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The text frame is created using the &amp;lt;tt&amp;gt;createInstance&amp;lt;/tt&amp;gt; method of the document object. The text frame created in this way can then be inserted in the document using the &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt; method of the &amp;lt;tt&amp;gt;Text&amp;lt;/tt&amp;gt; object. In so doing, the name of the proper &amp;lt;idl&amp;gt;com.sun.star.text.TextFrame&amp;lt;/idl&amp;gt; service should be specified. &lt;br /&gt;
&lt;br /&gt;
The text frame's insert position is determined by a &amp;lt;tt&amp;gt;Cursor&amp;lt;/tt&amp;gt; object, which is also executed when inserted.&lt;br /&gt;
&lt;br /&gt;
{{VBAnote|Text frames are {{OOo}}'s counterpart to the position frame used in Word. Whereas VBA uses the &amp;lt;tt&amp;gt;Document.Frames.Add&amp;lt;/tt&amp;gt; method for this purpose, creation in {{OOo}} Basic is performed using the previous procedure with the aid of a &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt; as well as the &amp;lt;tt&amp;gt;createInstance&amp;lt;/tt&amp;gt; method of the document object.}}&lt;br /&gt;
&lt;br /&gt;
Text frame objects provide a range of properties with which the position and behavior of the frame can be influenced. The majority of these properties are defined in the &amp;lt;idl&amp;gt;com.sun.star.text.BaseFrameProperties&amp;lt;/idl&amp;gt; service, which is also supported by each &amp;lt;tt&amp;gt;TextFrame&amp;lt;/tt&amp;gt; service. The central properties are: &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;BackColor (Long)&amp;lt;/tt&amp;gt;:background color of the text frame.&lt;br /&gt;
;&amp;lt;tt&amp;gt;BottomMargin (Long)&amp;lt;/tt&amp;gt;:bottom margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;LeftMargin (Long)&amp;lt;/tt&amp;gt;:left margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;RightMargin (Long)&amp;lt;/tt&amp;gt;:right margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;TopMargin (Long)&amp;lt;/tt&amp;gt;:top margin in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;Height (Long)&amp;lt;/tt&amp;gt;:height of text frame in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;Width (Long)&amp;lt;/tt&amp;gt;:width of text frame in 100ths of a millimeter.&lt;br /&gt;
;&amp;lt;tt&amp;gt;HoriOrient (const)&amp;lt;/tt&amp;gt;:horizontal orientation of text frame (in accordance with &amp;lt;idl&amp;gt;com.sun.star.text.HoriOrientation&amp;lt;/idl&amp;gt;).&lt;br /&gt;
;&amp;lt;tt&amp;gt;VertOrient (const)&amp;lt;/tt&amp;gt;:vertical orientation of text frame (in accordance with &amp;lt;idl&amp;gt;com.sun.star.text.VertOrientation&amp;lt;/idl&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The following example creates a text frame using the properties described previously:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim TextTables As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
Dim Frame As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
Cursor.gotoNextWord(False)&lt;br /&gt;
Frame = Doc.createInstance(&amp;quot;com.sun.star.text.TextFrame&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Frame.Width = 3000&lt;br /&gt;
Frame.Height = 1000&lt;br /&gt;
Frame.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER&lt;br /&gt;
Frame.TopMargin = 0&lt;br /&gt;
Frame.BottomMargin = 0&lt;br /&gt;
Frame.LeftMargin = 0&lt;br /&gt;
Frame.RightMargin = 0&lt;br /&gt;
Frame.BorderDistance = 0&lt;br /&gt;
Frame.HoriOrient = com.sun.star.text.HoriOrientation.NONE&lt;br /&gt;
Frame.VertOrient = com.sun.star.text.VertOrientation.LINE_TOP&lt;br /&gt;
&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Frame, False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example creates a &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt; as the insertion mark for the text frame. This is positioned between the first and second word of the text. The text frame is created using &amp;lt;tt&amp;gt;Doc.createInstance&amp;lt;/tt&amp;gt;. The properties of the text frame objects are set to the starting values required.&lt;br /&gt;
&lt;br /&gt;
The interaction between the &amp;lt;tt&amp;gt;AnchorType&amp;lt;/tt&amp;gt; (from the &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; Service) and &amp;lt;tt&amp;gt;VertOrient&amp;lt;/tt&amp;gt; (from the &amp;lt;tt&amp;gt;BaseFrameProperties&amp;lt;/tt&amp;gt; Service) properties should be noted here. &amp;lt;tt&amp;gt;AnchorType&amp;lt;/tt&amp;gt; receives the &amp;lt;tt&amp;gt;AS_CHARACTER&amp;lt;/tt&amp;gt; value. The text frame is therefore inserted directly in the text flow and behaves like a character. It can, for example, be moved into the next line if a line break occurs. The &amp;lt;tt&amp;gt;LINE_TOP&amp;lt;/tt&amp;gt; value of the &amp;lt;tt&amp;gt;VertOrient&amp;lt;/tt&amp;gt; property ensures that the upper edge of the text frame is at the same height as the upper edge of the character.&lt;br /&gt;
&lt;br /&gt;
Once initialization is complete, the text frame is finally inserted in the text document using a call from &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To edit the content of a text frame, the user uses the &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt;, which has already been mentioned numerous times and is also available for text frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim TextTables As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
Dim Frame As Object&lt;br /&gt;
Dim FrameCursor As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
Frame = Doc.createInstance(&amp;quot;com.sun.star.text.TextFrame&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Frame.Width = 3000&lt;br /&gt;
Frame.Height = 1000&lt;br /&gt;
&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Frame, False)&lt;br /&gt;
&lt;br /&gt;
FrameCursor = Frame.createTextCursor()&lt;br /&gt;
FrameCursor.charWeight = com.sun.star.awt.FontWeight.BOLD&lt;br /&gt;
FrameCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.CENTER&lt;br /&gt;
FrameCursor.String = &amp;quot;This is a small Test!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example creates a text frame, inserts this in the current document and opens a &amp;lt;tt&amp;gt;TextCursor&amp;lt;/tt&amp;gt; for the text frame. This cursor is used to set the frame font to bold type and to set the paragraph orientation to centered. The text frame is finally assigned the “This is a small test!” string.&lt;br /&gt;
&lt;br /&gt;
== Text Fields ==&lt;br /&gt;
&lt;br /&gt;
Text fields are &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects because they provide additional logic extending beyond pure text. Text fields can be inserted in a text document using the same methods as those used for other &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim DateTimeField As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
&lt;br /&gt;
DateTimeField = Doc.createInstance(&amp;quot;com.sun.star.text.textfield.DateTime&amp;quot;)&lt;br /&gt;
DateTimeField.IsFixed = False&lt;br /&gt;
DateTimeField.IsDate = True&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, DateTimeField, False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example inserts a text field with the current date at the start of the current text document. The &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; value of the &amp;lt;tt&amp;gt;IsDate&amp;lt;/tt&amp;gt; property results in only the date and not time being displayed. The &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt; value for &amp;lt;tt&amp;gt;IsFixed&amp;lt;/tt&amp;gt; ensures that the date is automatically updated when the document is opened.&lt;br /&gt;
&lt;br /&gt;
{{VBAnote|While the type of a field in VBA is specified by a parameter of the &amp;lt;tt&amp;gt;Document.Fields.Add&amp;lt;/tt&amp;gt; method, the name of the service that is responsible for the field type in question defines it in {{OOo}} Basic.}}&lt;br /&gt;
&lt;br /&gt;
{{SO5note|In the past, text fields were accessed using a whole range of methods that {{OOo}} made available in the old &amp;lt;tt&amp;gt;Selection&amp;lt;/tt&amp;gt; object (for example &amp;lt;tt&amp;gt;InsertField&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;DeleteUserField&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SetCurField)&amp;lt;/tt&amp;gt;.}} &lt;br /&gt;
&lt;br /&gt;
In {{OOo}}, the fields are administered using an object-oriented concept. To create a text field, a text field of the type required should first be created and initialized using the properties required. The text field is then inserted in the document using the &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt; method. A corresponding source text can be seen in the previous example. The most important field types and their properties are described in the following sections.&lt;br /&gt;
&lt;br /&gt;
In addition to inserting text fields, searching a document for the fields can also be an important task. The following example shows how all text fields of a text document can be traversed in a loop and checked for their relevant type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim TextFieldEnum As Object&lt;br /&gt;
Dim TextField As Object&lt;br /&gt;
Dim I As Integer&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
&lt;br /&gt;
TextFieldEnum = Doc.getTextFields.createEnumeration&lt;br /&gt;
&lt;br /&gt;
While TextFieldEnum.hasMoreElements()&lt;br /&gt;
&lt;br /&gt;
   TextField = TextFieldEnum.nextElement()&lt;br /&gt;
&lt;br /&gt;
   If TextField.supportsService(&amp;quot;com.sun.star.text.textfield.DateTime&amp;quot;) Then&lt;br /&gt;
      MsgBox &amp;quot;Date/time&amp;quot;&lt;br /&gt;
   ElseIf TextField.supportsService(&amp;quot;com.sun.star.text.textfield.Annotation&amp;quot;) Then&lt;br /&gt;
      MsgBox &amp;quot;Annotation&amp;quot;&lt;br /&gt;
   Else&lt;br /&gt;
      MsgBox &amp;quot;unknown&amp;quot;&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
Wend&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The starting point for establishing the text fields present is the &amp;lt;tt&amp;gt;TextFields&amp;lt;/tt&amp;gt; list of the document object. The example creates an &amp;lt;tt&amp;gt;Enumeration&amp;lt;/tt&amp;gt; object on the basis of this list, with which all text fields can be queried in turn in a loop. The text fields found are checked for the service supported using the &amp;lt;tt&amp;gt;supportsService&amp;lt;/tt&amp;gt; method. If the field proves to be a date/time field or an annotation, then the corresponding field type is displayed in an information box. If on the other hand, the example encounters another field, then it displays the information “unknown”.&lt;br /&gt;
&lt;br /&gt;
Below, you will find a list of the most important text fields and their associated properties. A complete list of all text fields is provided in the API reference in the &amp;lt;tt&amp;gt;com.sun.star.text.textfield&amp;lt;/tt&amp;gt; module. (When listing the service name of a text field, uppercase and lowercase characters should be used in {{OOo}} Basic, as in the previous example.)&lt;br /&gt;
&lt;br /&gt;
=== Number of Pages, Words and Characters ===&lt;br /&gt;
&lt;br /&gt;
The text fields&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;idl&amp;gt;com.sun.star.text.textfield.PageCount&amp;lt;/idl&amp;gt;&lt;br /&gt;
* &amp;lt;idl&amp;gt;com.sun.star.text.textfield.WordCount&amp;lt;/idl&amp;gt;&lt;br /&gt;
* &amp;lt;idl&amp;gt;com.sun.star.text.textfield.CharacterCount&amp;lt;/idl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
return the number of pages, words, or characters of a text. They support the following property: &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;NumberingType (const)&amp;lt;/tt&amp;gt;:numbering format (guidelines in accordance with constants from &amp;lt;idl&amp;gt;com.sun.star.style.NumberingType&amp;lt;/idl&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
=== Current Page ===&lt;br /&gt;
&lt;br /&gt;
The number of the current page can be inserted in a document using the &amp;lt;idl&amp;gt;com.sun.star.text.textfield.PageNumber&amp;lt;/idl&amp;gt; text field. The following properties can be specified: &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;NumberingType (const)&amp;lt;/tt&amp;gt;:number format (guidelines in accordance with constants from &amp;lt;idl&amp;gt;com.sun.star.style.NumberingType&amp;lt;/idl&amp;gt;).&lt;br /&gt;
;&amp;lt;tt&amp;gt;Offset (short) &amp;lt;/tt&amp;gt;:offset added to the number of pages (negative specification also possible).&lt;br /&gt;
&lt;br /&gt;
The following example shows how the number of pages can be inserted into the footer of a document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim DateTimeField As Object&lt;br /&gt;
Dim PageStyles As Object&lt;br /&gt;
Dim StdPage As Object&lt;br /&gt;
Dim FooterCursor As Object&lt;br /&gt;
Dim PageNumber As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
&lt;br /&gt;
PageNumber = Doc.createInstance(&amp;quot;com.sun.star.text.textfield.PageNumber&amp;quot;)&lt;br /&gt;
PageNumber.NumberingType = com.sun.star.style.NumberingType.ARABIC&lt;br /&gt;
&lt;br /&gt;
PageStyles = Doc.StyleFamilies.getByName(&amp;quot;PageStyles&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
StdPage = PageStyles(&amp;quot;Default&amp;quot;)&lt;br /&gt;
StdPage.FooterIsOn = True&lt;br /&gt;
&lt;br /&gt;
FooterCursor = StdPage.FooterTextLeft.Text.createTextCursor()&lt;br /&gt;
StdPage.FooterTextLeft.Text.insertTextContent(FooterCursor, PageNumber, False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example first creates a text field which supports the &amp;lt;idl&amp;gt;com.sun.star.text.textfield.PageNumber&amp;lt;/idl&amp;gt; service. Since the header and footer lines are defined as part of the page templates of {{OOo}}, this is initially established using the list of all &amp;lt;tt&amp;gt;PageStyles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To ensure that the footer line is visible, the &amp;lt;tt&amp;gt;FooterIsOn&amp;lt;/tt&amp;gt; property is set to &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt;. The text field is then inserted in the document using the associated text object of the left-hand footer line.&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
Annotation fields (&amp;lt;idl&amp;gt;com.sun.star.text.textfield.Annotation&amp;lt;/idl&amp;gt;) can be seen by means of a small yellow symbol in the text. Clicking on this symbol opens a text field, in which a comment on the current point in the text can be recorded. An annotation field has the following properties.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;Author (String)&amp;lt;/tt&amp;gt;:name of author.&lt;br /&gt;
;&amp;lt;tt&amp;gt;Content (String)&amp;lt;/tt&amp;gt;:comment text.&lt;br /&gt;
;&amp;lt;tt&amp;gt;Date (Date)&amp;lt;/tt&amp;gt;:date on which annotation is written.&lt;br /&gt;
&lt;br /&gt;
=== Date / Time ===&lt;br /&gt;
&lt;br /&gt;
A date / time field (&amp;lt;idl&amp;gt;com.sun.star.text.textfield.DateTime&amp;lt;/idl&amp;gt;) represents the current date or the current time. It supports the following properties:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;IsFixed (Boolean)&amp;lt;/tt&amp;gt;:if &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt;, the time details of the insertion remain unchanged, if &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;, these are updated each time the document is opened.&lt;br /&gt;
;&amp;lt;tt&amp;gt;IsDate (Boolean)&amp;lt;/tt&amp;gt;:if &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt;, the field displays the current date, otherwise the current time.&lt;br /&gt;
;&amp;lt;tt&amp;gt;DateTimeValue (struct)&amp;lt;/tt&amp;gt;:current content of field (&amp;lt;idl&amp;gt;com.sun.star.util.DateTime&amp;lt;/idl&amp;gt; structure)&lt;br /&gt;
;&amp;lt;tt&amp;gt;NumberFormat (const)&amp;lt;/tt&amp;gt;:format in which the time or date is depicted.&lt;br /&gt;
&lt;br /&gt;
=== Chapter Name / Number ===&lt;br /&gt;
&lt;br /&gt;
The name of the current chapter is available through a text field of the &amp;lt;idl&amp;gt;com.sun.star.text.textfield.Chapter&amp;lt;/idl&amp;gt; type. The form can be defined using two properties.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;ChapterFormat (const)&amp;lt;/tt&amp;gt;:determines whether the chapter name or the chapter number is depicted (in accordance with &amp;lt;idl&amp;gt;com.sun.star.text.ChapterFormat&amp;lt;/idl&amp;gt;)&lt;br /&gt;
;&amp;lt;tt&amp;gt;Level (Integer)&amp;lt;/tt&amp;gt;:determines the chapter level whose name and/or chapter number is to be displayed. The value 0 stands for highest level available.&lt;br /&gt;
&lt;br /&gt;
== Bookmarks ==&lt;br /&gt;
&lt;br /&gt;
Bookmarks (Service &amp;lt;idl&amp;gt;com.sun.star.text.Bookmark&amp;lt;/idl&amp;gt;) are &amp;lt;tt&amp;gt;TextContent&amp;lt;/tt&amp;gt; objects. Bookmarks are created and inserted using the concept already described previously:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim Bookmark As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
&lt;br /&gt;
Cursor = Doc.Text.createTextCursor()&lt;br /&gt;
&lt;br /&gt;
Bookmark = Doc.createInstance(&amp;quot;com.sun.star.text.Bookmark&amp;quot;)&lt;br /&gt;
Bookmark.Name = &amp;quot;My bookmarks&amp;quot;&lt;br /&gt;
Doc.Text.insertTextContent(Cursor, Bookmark, True)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example creates a &amp;lt;tt&amp;gt;Cursor&amp;lt;/tt&amp;gt;, which marks the insert position of the bookmark and then the actual bookmark object (&amp;lt;tt&amp;gt;Bookmark&amp;lt;/tt&amp;gt;). The bookmark is then assigned a name and is inserted in the document through &amp;lt;tt&amp;gt;insertTextContent&amp;lt;/tt&amp;gt; at the cursor position.&lt;br /&gt;
&lt;br /&gt;
The bookmarks of a text are accessed through a list called &amp;lt;tt&amp;gt;Bookmarks&amp;lt;/tt&amp;gt;. The bookmarks can either be accessed by their number or their name.&lt;br /&gt;
&lt;br /&gt;
The following example shows how a bookmark can be found within a text, and a text inserted at its position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Dim Doc As Object&lt;br /&gt;
Dim Bookmark As Object&lt;br /&gt;
Dim Cursor As Object&lt;br /&gt;
&lt;br /&gt;
Doc = ThisComponent&lt;br /&gt;
&lt;br /&gt;
Bookmark = Doc.Bookmarks.getByName(&amp;quot;My bookmarks&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Cursor = Doc.Text.createTextCursorByRange(Bookmark.Anchor)&lt;br /&gt;
Cursor.String = &amp;quot;Here is the bookmark&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, the &amp;lt;tt&amp;gt;getByName&amp;lt;/tt&amp;gt; method is used to find the bookmark required by means of its name. The &amp;lt;tt&amp;gt;createTextCursorByRange&amp;lt;/tt&amp;gt; call then creates a &amp;lt;tt&amp;gt;Cursor&amp;lt;/tt&amp;gt;, which is positioned at the anchor position of the bookmark. The cursor then inserts the text required at this point.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{{PDL1}}&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>
		
	</entry>
</feed>