• Word Automation

    From =?UTF-8?B?zpPOtc+Jz4HOs865zr/PgiDOp@21:1/5 to All on Mon May 15 13:48:47 2023
    Hi all,

    Does anyone have a sample for Word automation. I want to read a document (.doc) make some changes (like font for some lines) and save it.

    Thanks all

    George

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Norbert Kolb@21:1/5 to All on Tue May 16 06:10:15 2023
    Hi George,

    First create a new module (e.g. _MsWord) and import the autoation server for Word.
    Here is a little method that does what you want.

    METHOD DoOpenWord(cFileName) CLASS StandardSDIWindow
    LOCAL oWord AS WDApplication
    LOCAL oDoc AS WDDocument
    LOCAL oDocs AS WDDocuments
    LOCAL oSelection AS WDSelection
    LOCAL oFind AS WDFind
    LOCAL lRet AS LOGIC
    LOCAL uTemp AS USUAL

    oWord := WDApplication{}
    oDocs := oWord:Documents
    oWord:Visible := TRUE // FALSE
    oDoc := oDocs:Open(cFileName)
    oSelection := oWord:Selection
    oSelection:HomeKey( 6, 0 )
    oFind := oSelection:Find
    oFind:ClearFormatting()
    oFind:Text := "Veranstaltung"
    lRet := oFind:Execute()
    IF lRet
    oSelection := oWord:Selection
    oSelection:Style := oSelection:Document:Styles:Item("Überschrift 1")
    oSelection:Font:Italic := TRUE
    oSelection:Font:Size := 25.1
    uTemp := oSelection:Font:Underline := TRUE
    oDoc:Save()
    oWord:Quit()
    ENDIF

    /*
    Selection.Find.ClearFormatting
    With Selection.Find
    .Text = "200677"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindAsk
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False

    End With
    */

    RETURN NIL

    Best regards
    Norbert



    On Monday, May 15, 2023 at 10:48:48 PM UTC+2, Γεωργιος Τριτσος wrote:
    Hi all,

    Does anyone have a sample for Word automation. I want to read a document (.doc) make some changes (like font for some lines) and save it.

    Thanks all

    George

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?zpPOtc+Jz4HOs865zr/PgiDOp@21:1/5 to All on Tue May 16 10:46:51 2023
    Στις Τρίτη 16 Μαΐου 2023 στις 4:10:17 μ.μ. UTC+3, ο χρήστης Norbert Kolb έγραψε:
    Hi George,

    First create a new module (e.g. _MsWord) and import the autoation server for Word.
    Here is a little method that does what you want.

    METHOD DoOpenWord(cFileName) CLASS StandardSDIWindow
    LOCAL oWord AS WDApplication
    LOCAL oDoc AS WDDocument
    LOCAL oDocs AS WDDocuments
    LOCAL oSelection AS WDSelection
    LOCAL oFind AS WDFind
    LOCAL lRet AS LOGIC
    LOCAL uTemp AS USUAL

    oWord := WDApplication{}
    oDocs := oWord:Documents
    oWord:Visible := TRUE // FALSE
    oDoc := oDocs:Open(cFileName)
    oSelection := oWord:Selection
    oSelection:HomeKey( 6, 0 )
    oFind := oSelection:Find
    oFind:ClearFormatting()
    oFind:Text := "Veranstaltung"
    lRet := oFind:Execute()
    IF lRet
    oSelection := oWord:Selection
    oSelection:Style := oSelection:Document:Styles:Item("Überschrift 1") oSelection:Font:Italic := TRUE
    oSelection:Font:Size := 25.1
    uTemp := oSelection:Font:Underline := TRUE
    oDoc:Save()
    oWord:Quit()
    ENDIF

    /*
    Selection.Find.ClearFormatting
    With Selection.Find
    .Text = "200677"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindAsk
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False

    End With
    */

    RETURN NIL

    Best regards
    Norbert
    On Monday, May 15, 2023 at 10:48:48 PM UTC+2, Γεωργιος Τριτσος wrote:
    Hi all,

    Does anyone have a sample for Word automation. I want to read a document (.doc) make some changes (like font for some lines) and save it.

    Thanks all

    George

    Hi Norbert,

    Thanks for reply. I will try your method.

    Regards
    George

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?zpPOtc+Jz4HOs865zr/PgiDOp@21:1/5 to All on Tue May 16 12:15:14 2023
    Στις Τρίτη 16 Μαΐου 2023 στις 8:46:52 μ.μ. UTC+3, ο χρήστης Γεωργιος Τριτσος έγραψε:
    Στις Τρίτη 16 Μαΐου 2023 στις 4:10:17 μ.μ. UTC+3, ο χρήστης Norbert Kolb έγραψε:
    Hi George,

    First create a new module (e.g. _MsWord) and import the autoation server for Word.
    Here is a little method that does what you want.

    METHOD DoOpenWord(cFileName) CLASS StandardSDIWindow
    LOCAL oWord AS WDApplication
    LOCAL oDoc AS WDDocument
    LOCAL oDocs AS WDDocuments
    LOCAL oSelection AS WDSelection
    LOCAL oFind AS WDFind
    LOCAL lRet AS LOGIC
    LOCAL uTemp AS USUAL

    oWord := WDApplication{}
    oDocs := oWord:Documents
    oWord:Visible := TRUE // FALSE
    oDoc := oDocs:Open(cFileName)
    oSelection := oWord:Selection
    oSelection:HomeKey( 6, 0 )
    oFind := oSelection:Find
    oFind:ClearFormatting()
    oFind:Text := "Veranstaltung"
    lRet := oFind:Execute()
    IF lRet
    oSelection := oWord:Selection
    oSelection:Style := oSelection:Document:Styles:Item("Überschrift 1") oSelection:Font:Italic := TRUE
    oSelection:Font:Size := 25.1
    uTemp := oSelection:Font:Underline := TRUE
    oDoc:Save()
    oWord:Quit()
    ENDIF

    /*
    Selection.Find.ClearFormatting
    With Selection.Find
    .Text = "200677"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindAsk
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False

    End With
    */

    RETURN NIL

    Best regards
    Norbert
    On Monday, May 15, 2023 at 10:48:48 PM UTC+2, Γεωργιος Τριτσος wrote:
    Hi all,

    Does anyone have a sample for Word automation. I want to read a document (.doc) make some changes (like font for some lines) and save it.

    Thanks all

    George
    Hi Norbert,

    Thanks for reply. I will try your method.

    Regards
    George
    Hi Norbert,

    I tested your method but i take error.

    Regards
    George

    16/05/2023 10:06:02 μμ
    Error Message:
    --------------
    SubSystem: BASE
    Operation:
    Function: CHECKINSTANCEOF
    Argument: WDDOCUMENTS <-> OLEAUTOOBJECT
    CallStack:
    CUSTOMERALLMOVES:LoadDoc (Line:9)
    CUSTOMERALLMOVES:PB_EXPDoc (Line:3)
    CUSTOMERS:PB_MOVES (Line:19)
    MNGINV:DOCUSTOMER (Line:5)
    APP:START (Line:34)

    Error Object created:
    --------------------
    SubSystem :BASE
    SubCode : 0
    GenCode :Wrong class
    OsCode : 0
    Severity : 0
    CanDefault :.F.
    CanRetry :.F.
    CanSubstitute :.T.
    Operation :
    Description :
    FileName :
    Tries : 0
    FuncSym :CHECKINSTANCEOF
    FileHandle : 0
    ArgNum : 0
    FuncPtr :0x00000000
    SubCodeText :
    Arg :WDDOCUMENTS <-> OLEAUTOOBJECT
    ArgType :NIL
    ArgTypeReq :NIL
    MaxSize : 0
    SubstituteType :LOGIC
    CallFuncSym :
    --------------------

    My Code:
    METHOD CreatPDF(sFileName) CLASS CustomerAllMoves
    LOCAL oWord AS WDApplication
    LOCAL oDoc AS WDDocument
    LOCAL oDocs AS WDDocuments
    LOCAL oSelect AS WDSelection

    oWord:=WDApplication{}
    oWord:Visible:=TRUE
    oDocs:=oWord:Documents
    oDoc:=oDocs:Open(sFileName)

    oWord:Quit()

    RETURN NIL

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Norbert Kolb@21:1/5 to All on Tue May 16 12:57:01 2023
    Hi George,
    did you create the automation server for word first. All the classes and methods you need for Word are generated there.
    Vo menu: Tools -> Automation Server (Word)

    The error message indicates that the programme cannot find these classes.

    Kind regards
    Norbert

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?zpPOtc+Jz4HOs865zr/PgiDOp@21:1/5 to All on Tue May 16 14:17:41 2023
    Στις Τρίτη 16 Μαΐου 2023 στις 10:57:02 μ.μ. UTC+3, ο χρήστης Norbert Kolb έγραψε:
    Hi George,
    did you create the automation server for word first. All the classes and methods you need for Word are generated there.
    Vo menu: Tools -> Automation Server (Word)

    The error message indicates that the programme cannot find these classes.

    Kind regards
    Norbert
    Hi Norbert,
    Yes first of all i was create the automation,
    WDApplication
    WDFont
    WDSelection
    WDDocument
    WDDocuments
    WDRange

    The follow lines is ok
    oWord:=WDApplication{}
    oWord:Visible:=TRUE
    but the line of error is
    oDocs:=oWord:Documents

    I was create again automation but the same.
    I am searching whats going on.

    Regards
    George

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Norbert Kolb@21:1/5 to All on Tue May 16 15:12:27 2023
    Another thought: Is your Word 32 or 64 bit? VO can only work with the 32 bit version.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?zpPOtc+Jz4HOs865zr/PgiDOp@21:1/5 to All on Wed May 17 09:18:20 2023
    zqPPhM65z4IgzqTOtc+EzqzPgc+EzrcgMTcgzpzOsc6Qzr/PhSAyMDIzIM+Dz4TOuc+CIDE6MTI6 MjjigK/PgC7OvC4gVVRDKzMsIM6/IM+Hz4HOrs+Dz4TOt8+CIE5vcmJlcnQgS29sYiDOrc6zz4HO sc+IzrU6DQo+IEFub3RoZXIgdGhvdWdodDogSXMgeW91ciBXb3JkIDMyIG9yIDY0IGJpdD8gVk8g Y2FuIG9ubHkgd29yayB3aXRoIHRoZSAzMiBiaXQgdmVyc2lvbi4NCkhpIE5vcmJlcnQsDQoNCkkg d2FzIGNoZWNrIHdvcmQgYW5kIGlzIDMyYml0LiANCg0KUmVnYXJkcw0KR2Vvcmdl

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)