How do I set vertical text in word

Just starting out? Need help? Post your questions and find answers here.
leodh
Enthusiast
Enthusiast
Posts: 164
Joined: Sun Nov 06, 2005 6:07 am
Location: Perth Western Australia

How do I set vertical text in word

Post by leodh »

Hi,

How do I set vertical text in word using Comate Plus

I have found this

tbl.Rows(1).Range.Orientation = word.WdTextOrientation.wdTextOrientationVertical
I found out that wdTextOrientationVertical = 5
I have tried all different combinatines but I just can not convert it into Comate "speak"

can someone helpme with this.

Thanks
Leo
Regards
Leo
leodh
Enthusiast
Enthusiast
Posts: 164
Joined: Sun Nov 06, 2005 6:07 am
Location: Perth Western Australia

Re: How do I set vertical text in word

Post by leodh »

Hi all,


I am still no further with vertical text. I have tried lots of combinations but no luck.
in this code are a few of the things that I have tried.

Test.doc is just a blank document.

Code: Select all

Global Program$ = "Word - Vertical Table Text "

If CreateMutex_(0,1,Program$) = 0 Or GetLastError_() <> 0 
  MessageRequester(" WARNING ! " + Program$," The " +Program$ + " program is already running !",0|#MB_ICONWARNING)
  End 
EndIf

;{ Window Enumeration ******************************************************************************
Enumeration 
  #Window0
EndEnumeration
;}
;{ Gadget Enumeration ******************************************************************************
Enumeration 
  #WordDoc
EndEnumeration
;}
Declare WordDoc()


;{ Font Setup **************************************************************************************
LoadFont(0,"Arial",10)
LoadFont(1,"Arial",10,#PB_Font_Bold)
;}
;{ Setup Main screen *******************************************************************************
DTW = 600
DTH = 400
;}
;{ ComatePlus Includes *****************************************************************************
IncludePath "C:\Program Files\PureBasic\" 
XIncludeFile "COMatePlus.pbi"
;}

; Window Setup ************************************************************************************* 
hWnd = OpenWindow(#Window0, 0, 0,DTW,DTH,Program$,#PB_Window_BorderLess|#WS_BORDER|#PB_Window_ScreenCentered|#PB_Window_Invisible)
SetClassLongPtr_(WindowID(#Window0), #GCL_STYLE, $00020000) 
HideWindow(#Window0,#False)

ButtonGadget(#WordDoc, 20,20,150,25,"Create Word Document")

; Main Program Loop ********************************************************************************
Repeat
  Event = WaitWindowEvent()
  
  
  
  If Event = #PB_Event_Gadget  ;{ Gadgets =========================================================

    Select EventGadget()
      Case #WordDoc  
        WordDoc()
        
    EndSelect

  EndIf
  ;}
       
Until Event = #PB_Event_CloseWindow

End
; Procedures ***************************************************************************************
Procedure WordDoc()
  Protected.COMateObject oWord, oFile, oRange, oWTable0, oPara0, range
  Protected.F TopMargin, LefttMargin, RightMargin, BottomMargin
  
  WordDoc$ = "C:\Temp\Test.doc" 
  
  Number$ = " Sample No." 
  ID$ = " Sample ID " 
  Test1$ = " Blood " 
  Test2$ =  " Tissue " 
    
oWord = COMate_CreateObject("Word.Application") 
If oWord
  If oWord\SetProperty("Visible = #True") = #S_OK
    oFile = oWord\GetObjectProperty("Documents\Open('"+WordDoc$+"')") 
    oFile\SetProperty("PageSetup\Orientation=1")
    TopMargin = oWord\GetIntegerProperty("CentimetersToPoints(2)") ; set top margin height
    oFile\SetProperty("PageSetup\TopMargin=" + StrF(TopMargin))
    LeftMargin = oWord\GetIntegerProperty("CentimetersToPoints(2)") ; set left margin height
    oFile\SetProperty("PageSetup\LeftMargin=" + StrF(LeftMargin))
    RightMargin = oWord\GetIntegerProperty("CentimetersToPoints(1)") ; set right margin height
    oFile\SetProperty("PageSetup\RightMargin=" + StrF(RightMargin))
    BottomMargin = oWord\GetIntegerProperty("CentimetersToPoints(2)") ; set top margin height
    oFile\SetProperty("PageSetup\BottomMargin=" + StrF(BottomMargin))
    If oFile
      oRange = oFile\GetObjectProperty("Bookmarks('\endofdoc')\Range")
      If oRange
        oWTable0 = oFile\GetObjectProperty("Tables\Add(" + Str(oRange) + " as COMateObject, 4,4)") ; rows and columns
        If oWTable0
          oWTable0\SetProperty("Range\ParagraphFormat\SpaceBefore = 12") ; Adjusts space in cells 
          oWTable0\SetProperty("Range\ParagraphFormat\SpaceAfter = 3")  
          oWTable0\SetProperty("Columns(1)\Width = '2.5'")               ; Adjusts width of cells in CM  
          oWTable0\SetProperty("Columns(2)\Width = '2.5'")              
          oWTable0\SetProperty("Columns(3)\Width = '1.5'")
          oWTable0\SetProperty("Columns(4)\Width = '1.5'")
          oWTable0\SetProperty("Rows(4)\Height = '4.5'")
          oWTable0\SetProperty("Cell(1,1)\Range\Font\Name = 'Arial'")  
          oWTable0\SetProperty("Cell(1,1)\Range\Font\Size = 12")       
          oWTable0\SetProperty("Cell(1,1)\Range\Text = '"+Number$+"'")
          oWTable0\SetProperty("Cell(1,2)\Range\Font\Bold = #True")
          oWTable0\SetProperty("Cell(1,2)\Range\Font\Name = 'Arial'")  
          oWTable0\SetProperty("Cell(1,2)\Range\Font\Size = 12")       
          oWTable0\SetProperty("Cell(1,2)\Range\Text = '"+ID$+"'")
          oWTable0\SetProperty("Cell(1,3)\Range\Font\Bold = #True")
          oWTable0\SetProperty("Cell(1,3)\Range\Font\Name = 'Arial'")  
          oWTable0\SetProperty("Cell(1,3)\Range\Font\Size = 12")       
          oWTable0\SetProperty("Cell(1,3)\Range\Text = '"+Test1$+"'")
          oWTable0\SetProperty("Cell(1,4)\Range\Font\Bold = #True")
          oWTable0\SetProperty("Cell(1,4)\Range\Font\Name = 'Arial'")  
          oWTable0\SetProperty("Cell(1,4)\Range\Font\Size = 12")       
          oWTable0\SetProperty("Cell(1,4)\Range\Text = '"+Test2$+"'")
          oWTable0\SetProperty("Range\Rows(1)\Cells\VerticalAlignment = '3'")
          oWTable0\SetProperty("Rows(1)\Shading\Texture = '100'")      
                    
          oWTable0\SetProperty("Cell(1,3)\Range\Orientation = '"+Str(5)+"'")
          
          ;oWTable0\SetProperty("Cell(1,3)\Select")
          ;oWTable0\SetProperty("Cell(1,3)\Selection\Orientation = '"+Str(5)+"'")
          
          ;range = oWTable0\GetObjectProperty("Rows(1)\Cells(3)")
          ;  range\invoke("Select")
          ;  range\invoke("Range\Orientation = '"+Str(5)+"'")
                    
          ;oWtable0\Invoke("Cell(1,3)\Select")
          ;oWTable0\Invoke("Range\Orientation = '"+Str(5)+"'")
          
        EndIf 
      EndIf
      oRange\Release() 
    EndIf  
    oFile\Release()
  EndIf
  oWord\Release()
EndIf
 
EndProcedure
Has anyone got any ideas on what to try next.

Leo
Regards
Leo
leodh
Enthusiast
Enthusiast
Posts: 164
Joined: Sun Nov 06, 2005 6:07 am
Location: Perth Western Australia

Re: How do I set vertical text in word

Post by leodh »

@ Kiffi

Are you out there Kiffi,

Help!

This ones got me stumped, and I need it to finish a project.

Thanks in advance
Leo
Regards
Leo
IdeasVacuum
Always Here
Always Here
Posts: 6426
Joined: Fri Oct 23, 2009 2:33 am
Location: Wales, UK
Contact:

Re: How do I set vertical text in word

Post by IdeasVacuum »

1) State the version of Word required (most versions support vertical text, but only more recent versions support vertical text in tables).
2) Reduce your sample code to the absolute bare minimum, ensuring it works if vertical text is not invoked.

By the way - 'GetIntegerProperty' isn't that getting an integer? In which case, Str() should be used rather than StrF()?
IdeasVacuum
If it sounds simple, you have not grasped the complexity.
Post Reply