PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
  • Overview
  • Handling the Word Processing control through 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Overview
A Word Processing control can be handled through programming.
To handle the Word Processing control, WLanguage proposes:
This help page explains how to handle a Word Processing control through programming.
Handling the Word Processing control through programming

Opening and creating a docx document in a Word Processing control

To open an existing docx document through 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

To save a docx document, all you have to do is use <Word Processing>.Save.
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

To perform a search in a Word Processing document, all you have to do is use DocSeek.
Example:
// Find "BEAUTIFUL" in the text
// Selects the first one found to change its color
arrFragments is array of docFragments = WP_NoName1.Find("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.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)
    frag2.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.Add(Charact(12))
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")

Management of bookmarks

You have the ability to manage bookmarks in a Word Processing document. For example:
  • 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:
DisplayFormattingMarksThe DisplayFormattingMarks property is used to:
  • Determine if formatting marks are shown or hidden in a Word Processing control.
  • Show or hide formatting marks in a Word Processing control.
DisplayBookmarksThe DisplayBookmarks property is used to:
  • identify the display mode of bookmarks in a Word Processing control.
  • show or hide bookmarks in a Word Processing control.
ToolbarVisibleThe ToolbarVisible property is used to:
  • know if the toolbar or the ribbon is displayed in a control.
  • show or hide the toolbar or the ribbon in a control.
FilePathThe FilePath property is used to identify:
  • the name of the xlsx file associated with a Spreadsheet control.
  • the name of the file associated with an Image Editor control.
  • the name of the PDF file associated with a PDF Reader control.
  • the name of the DOCX file associated with a Word Processing control.
  • the name of the wddiag file associated with a Diagram Editor control.
FormattingMarksColorThe FormattingMarksColor property is used to:
  • get the color of the formatting marks in a Word Processing control.
  • change the color of the formatting marks in a Word Processing control.
HTMLEditThe HTMLEdit property is used to:
  • find out whether a Word Processing control is displayed in optimized mode for HTML editing,
  • modify a Word Processing control to display it (or not) in optimized mode for HTML editing.
AutomaticLinkThe AutomaticLink property is used to:
  • determine if the automatic link detection mode is enabled,
  • enable or disable the automatic link detection mode.
SelectionLengthThe SelectionLength property is used to get and change the length of the selection made in a Word Processing control.
DisplayModeThe DisplayMode property is used to get and change the display mode in a Word Processing, PDF Reader or HTML Editor control.
NumberPageThe NumberPage property is used to get:
  • 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.
NumberAccessiblePagesThe NumberAccessiblePages property is used to get the number of pages currently loaded in a PDF Reader or Word Processing control.
NumberDisplayedPageThe NumberDisplayedPage property is used to identify and change the number of the page currently displayed in the PDF Reader or Word Processing control.
RuleVisibleThe RuleVisible property is used 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.
SelectionThe Selection property is used to get the characteristics of the selection (or cursor):
  • in a Word Processing control.
    Remark: This selection is in the section being edited in the control (body, header or footer).
  • in a Spreadsheet control.
  • in an HTML Editor control.
  • in a Diagram Editor control.
For a complete list of WLanguage properties that can be used with a Word Processing control, see Properties associated with the Word Processing control.
Minimum version required
  • Version 24
Comments
Click [Add] to post a comment