|
- Overview
- Handling the Word Processing control by programming
- Opening and creating a docx document in a Word Processing control
- Saving a docx document
- Performing a search in a document and modifying the search result
- Handling the selection
- Adding text into a document
- Adding a page break into a document
- Management of bookmarks
- Sequencing reports and Word Processing documents
- Properties associated with the Word Processing control
Handling a Word Processing control by programming (prefixed syntax)
A Word Processing control can be handled by programming. To handle the Word Processing control, WLanguage proposes: This help page explains how to handle a Word Processing control by programming.
Caution: This documentation presents the last features of the Word Processing control. Make sure that all the necessary modules are updated. Handling the Word Processing control by programming Opening and creating a docx document in a Word Processing control To open an existing docx document by programming in a Word Processing control, you can: - assign the docx file to the Word Processing control. For example:
// Select a .docx file in the current directory sFileName is string sFileName = fSelect("", "presentation.docx", ... "Selecting DocX files", ... "Docx file (*.docx)" + TAB + "*.docx", "*.docx", fselOpen) IF sFileName ~= "" THEN // No selected file RETURN END // Load the docx file WP_MyDocument = sFileName
- use <Word Processing>.Open.
For example:
WP_MyDocument = Open("C:\Users\test\Documents\file.docx") IF ErrorOccurred() THEN Error(ErrorInfo()) RETURN
- use a Document variable and assign it to the Word Processing control.
For example:
MyDocument is Document MyDocument = "C:\temp\presentation.docx" WP_MyDocument = MyDocument
or:
MyDocument is Document MyDocument = DocOpen("C:\Users\test\Documents\file.docx") IF ErrorOccurred() THEN Error(ErrorInfo()) ELSE WP_MyDocument = MyDocument END
Caution: only the files in docx format can be handled by the Word Processing control. Tip: To display an empty document in a Word Processing control, all you have to do is assign an empty string to the Word Processing control. Example:
// Create a blank document WP_MyDocument = ""
Saving a docx document Example:
// Choose the directory and the backup name sFileName is string = fSelect(CompleteDir(fExeDir()),"presentation.docx", ... "Selecting DocX files","Docx file (*.docx)" + TAB + "*.docx" , "*.docx", fselCreate) // Save the file WP_NoName1.Save(sFileName) IF ErrorOccurred THEN Error(StringBuild("The %1 file was not saved.", sFileName), ErrorInfo()) RETURN END
Notes: Performing a search in a document and modifying the search result Example:
// Seeks "BEAUTIFUL" in the text // Selects the first one found to change its color arrFragments is array of docFragments = WP_NoName1.Seek("BEAUTIFUL") IF arrFragments..Count >= 1 THEN // Position the cursor at the beginning of the first word found WP_NoName1..Cursor = arrFragments[1]..StartPosition // Calculate the selection length WP_NoName1..SelectionLength = ... arrFragments[1]..EndPosition - arrFragments[1]..StartPosition+1 // Modify the text color arrFragments[1]..Formatting..TextColor = PastelRed BREAK END
In this code, the docFragment variable corresponds to the text section containing the searched word, as well as its position in the entire text. Then, you have the ability to handle the fragment found. Handling the selection To handle the selection currently performed in a Word Processing control, you have the ability to retrieve this selection in a docFragment variable. The following code is used to change the color of selected text. Example:
// Change the selection color // Get the current selection MySelection is docFragment(WP_MyDocument, WP_MyDocument..Cursor, ... WP_MyDocument..SelectionLength) // Change the color MySelection..Style..TextColor = PastelRed
// Change the selection color // Get the current selection MySelection is docFragment(WP_MyDocument, WP_MyDocument..Cursor, ... WP_MyDocument..SelectionLength) // Change the color MySelection..Formatting..TextColor = PastelRed
The docFragment variable owns a specific constructor used to easily retrieve the selection. Adding text into a document Several methods can be used to add text into an existing document: - Inserting a fragment at the desired position. Example:
// Insert a text at the end of document frag2 is docFragment(WP_MyDoc, -1 , 0) frag..Text += "End text"
- Inserting a text from a given position with <Word Processing>.Insert.
WP_Document.Insert(WP_Document..Cursor, "My inserted text")
- Adding a text at the end of document with <Word Processing>.Add.
To add text into an empty document, you can: - use the direct assignment of control:
<Word Processing control> = "Text to insert"
Example:
WP_MyDocument = "I am the first sentence of this document."
- add the text with <Word Processing>.Add.
- insert a fragment in first position. Example:
// sInitialText contains the text to insert frag is docFragment(WP_MyDoc, WP_MyDoc..Cursor, 0) frag..Text += sInitialText
- insert a text from position 1 with <Word Processing>.Insert.
WP_Document.Insert(1, "My inserted text")
Adding a page break into a document The following code is used to add a page break into a document:
// Add a page break WP_NoName1.DocAdd(Charact(12))
Versions 24 and laterYou can also use the following constants to add the desired type of break to a document or fragment: - docColumnBreak: Adds a column break in a multicolumn section. If the section is not multicolumn, a page break is added.
- docLineBreak: Adds a line break.
- docPageBreak: Adds a page break.
- docParagraphBreak: Adds a paragraph break.
Example:
// Add a page break WP_NoName1.Add(docPageBreak + "Text on next page")
New in version 24You can also use the following constants to add the desired type of break to a document or fragment: - docColumnBreak: Adds a column break in a multicolumn section. If the section is not multicolumn, a page break is added.
- docLineBreak: Adds a line break.
- docPageBreak: Adds a page break.
- docParagraphBreak: Adds a paragraph break.
Example:
// Add a page break WP_NoName1.Add(docPageBreak + "Text on next page")
You can also use the following constants to add the desired type of break to a document or fragment: - docColumnBreak: Adds a column break in a multicolumn section. If the section is not multicolumn, a page break is added.
- docLineBreak: Adds a line break.
- docPageBreak: Adds a page break.
- docParagraphBreak: Adds a paragraph break.
Example:
// Add a page break WP_NoName1.Add(docPageBreak + "Text on next page")
Versions 23 and laterManagement of bookmarks You have the ability to manage bookmarks in a Word Processing document. Some examples: - Adding a bookmark: Adds a bookmark named MyBookmark with the selected text.
doc is Document doc <- WP_MyDocument fragSelection is docFragment = WP_MyDocument..Selection..Fragment doc..Bookmark["MyBookmark"] = fragSelection
- Deleting a bookmark: Deletes the bookmark named Bookmark1:
doc is Document doc <- WP_MyDocument Delete(doc.Bookmark, "Bookmark1")
- Listing the bookmarks: Lists the document bookmarks:
doc is Document doc <- WP_MyDocument FOR EACH uABookmark,BookmarkName of doc..Bookmark Trace(BookmarkName) // Bookmark name Trace(uABookmark..Text) // Bookmark text END
- Inserting a text at the end of bookmark:
doc is Document <- WP_MyDocument..Value // Find the bookmark position fragmentBookmark is docFragment = doc..Bookmark["Bookmark 1"] IF fragmentBookmark <> Null THEN // Insert text at the end of bookmark let nInsertionPosition = fragmentBookmark..EndPosition // Actual insertion WP_MyDocument.Insert(nInsertionPosition, "Text to insert at bookmark position") ELSE Erreur("'Bookmark 1' bookmark not found in the document") END
New in version 23Management of bookmarks You have the ability to manage bookmarks in a Word Processing document. Some examples: - Adding a bookmark: Adds a bookmark named MyBookmark with the selected text.
doc is Document doc <- WP_MyDocument fragSelection is docFragment = WP_MyDocument..Selection..Fragment doc..Bookmark["MyBookmark"] = fragSelection
- Deleting a bookmark: Deletes the bookmark named Bookmark1:
doc is Document doc <- WP_MyDocument Delete(doc.Bookmark, "Bookmark1")
- Listing the bookmarks: Lists the document bookmarks:
doc is Document doc <- WP_MyDocument FOR EACH uABookmark,BookmarkName of doc..Bookmark Trace(BookmarkName) // Bookmark name Trace(uABookmark..Text) // Bookmark text END
- Inserting a text at the end of bookmark:
doc is Document <- WP_MyDocument..Value // Find the bookmark position fragmentBookmark is docFragment = doc..Bookmark["Bookmark 1"] IF fragmentBookmark <> Null THEN // Insert text at the end of bookmark let nInsertionPosition = fragmentBookmark..EndPosition // Actual insertion WP_MyDocument.Insert(nInsertionPosition, "Text to insert at bookmark position") ELSE Erreur("'Bookmark 1' bookmark not found in the document") END
Management of bookmarks You have the ability to manage bookmarks in a Word Processing document. Some examples: - Adding a bookmark: Adds a bookmark named MyBookmark with the selected text.
doc is Document doc <- WP_MyDocument fragSelection is docFragment = WP_MyDocument..Selection..Fragment doc..Bookmark["MyBookmark"] = fragSelection
- Deleting a bookmark: Deletes the bookmark named Bookmark1:
doc is Document doc <- WP_MyDocument Delete(doc.Bookmark, "Bookmark1")
- Listing the bookmarks: Lists the document bookmarks:
doc is Document doc <- WP_MyDocument FOR EACH uABookmark,BookmarkName of doc..Bookmark Trace(BookmarkName) // Bookmark name Trace(uABookmark..Text) // Bookmark text END
- Inserting a text at the end of bookmark:
doc is Document <- WP_MyDocument..Value // Find the bookmark position fragmentBookmark is docFragment = doc..Bookmark["Bookmark 1"] IF fragmentBookmark <> Null THEN // Insert text at the end of bookmark let nInsertionPosition = fragmentBookmark..EndPosition // Actual insertion WP_MyDocument.Insert(nInsertionPosition, "Text to insert at bookmark position") ELSE Erreur("'Bookmark 1' bookmark not found in the document") END
Sequencing reports and Word Processing documents You now have the ability to sequence reports and Word Processing documents. To do so, iSequencingAddDoc must be used in addition to the standard functions for creating sequences of reports. For example:
MyDocument is Document = "c:\temp\generalconditions.docx" // Print in the report viewer iDestination(iViewer) // Add reports into the sequence iSequencingAdd(RPT_Report1) iSequencingAdd(RPT_Report2, 3) // Add the general conditions in document format iSequencingAddDoc(MyDocument) iSequencingPrint()
For more details, see Sequencing reports. Properties associated with the Word Processing control The following properties are specific to the Word Processing control. They are mainly used to handle the control characteristics:
| | DisplayBookmarks | ..DisplayBookmarks is used to: - identify the display mode of bookmarks in a Word Processing control.
- show or hide bookmarks in a Word Processing control.
| DisplayControlCharacters | The Property DisplayCharactersControl allows to: - Find out whether the display of control characters is enabled in a Word Processing control.
- Enable (or not) the display of control characters in a Word Processing control.
| DisplayMode | ..DisplayMode is used to find out and modify the display mode in a Word Processing control or PDF Reader control. | FilePath | ..FilePath is used to find out: | FormattingMarksColor | ..FormattingMarksColor allows you to: - find out the color of formatting marks in a Word Processing control.
- change the color of formatting marks in a Word Processing control.
| HTMLEdit | ..HTMLEdit is used to: - find out whether a Word Processing control is displayed in optimized mode for the HTML edit,
- modify a Word Processing control to display it (or not) in optimized mode for the HTML edit.
| NumberAccessiblePages | The Property AccessiblePageNumber shows the number of pages currently loaded in the champ PDF Reader or Word Processing control. | NumberDisplayedPage | ..NumberDisplayedPage is used to find out and modify the number of the page currently displayed in the PDF Reader control or in the Word Processing control. | NumberPage | ..NumberPage is used to find out: - the number of pages in a "multi-page" image file. This image is displayed in an Image control or in the background of a Chart control.
- the number of pages in a PDF file displayed in an Image control.
- the number of pages found in a PDF file displayed in a PDF Reader control.
- the number of pages found in a DOCX file displayed in a Word Processing control.
| RuleVisible | The Property RuleVisible allows to: - Find out whether the rulers are visible or invisible in a Word Processing control.
- Make the rulers visible or invisible in a Word Processing control.
| Selection | ..Selection is used to find out the characteristics of the selection (or cursor): - in the Word Processing control.
Remark: This selection is located in the section currently edited in the control (body, header or footer). - in the Spreadsheet control.
| SelectionLength | ..SelectionLength is used to find out and modify the length of the selection performed in a Word Processing control. | ToolbarVisible | ..ToolbarVisible is used to: - Find out whether the control ribbon is displayed.
- Display (or not) a ribbon for the control.
|
|
|
|
| |
| Click [Add] to post a comment |
|
| |
|
| |
| |
| |
| |
| |
| |
| | |
| |