Sorry for the delay. The code follows:
Sub Main
' Get the main system object
Dim Sessions As Object
Dim System As Object
Set System = CreateObject("EXTRA.System"

' Gets the system object
If (System is Nothing) Then
Msgbox "Could not create the EXTRA System object. Stopping macro playback."
STOP
End If
Set Sessions = System.Sessions
Dim rc%
Dim MaxColumn%
Dim row%
Dim MaxRows%
Dim filenum%
Dim Screenbuf$
Dim linebuf$
Dim FileName$
Dim NL$
Dim CR$
Dim FF$
' Get the necessary Session Object
Dim Sess0 As Object
Set Sess0 = System.ActiveSession
If (Sess0 is Nothing) Then
Msgbox "Could not create the Session object. Stopping macro playback."
STOP
End If
If Not Sess0.Visible Then Sess0.Visible = TRUE
Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
NL$=Chr(10)
FF$=Chr(12)
CR$=Chr(13)
FileIn=FreeFile
'Takes a "snapshot" of current screen and stores it in variable Screenbuf$
MaxRows%=Sess0.Screen.Rows()
MaxColumns%=Sess0.Screen.Cols()
Screenbuf$=""
linebuf$=Space$(MaxColumns%)
For row%=1 to MaxRows%
linebuf$=Sess0.Screen.Area(row%,1,row%,MaxColumns%,xBlock)
Screenbuf$=Screenbuf$+linebuf$+Chr$(13)+Chr$(10)
Next
Screenbuf$=Screenbuf$ & NL$ & NL$ & NL$ & NL$ & _
NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & _
NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & NL$ & _
NL$ & NL$ & NL$ & NL$ & NL$ & String(20, "_"

& NL$ & NL$ & CR$ & Now()
filenum%=Freefile
'PRINT FILENUM%
FileName$="LPT1" 'name of your printer
Open FileName$ For Output as filenum%
Print # filenum%,screenbuf$; FF$ 'this actually sends the screen print to the printer
Close filenum%
End Sub