Word Landscape
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Word Landscape
guten Morgen,
ich drucke eine bestehende Datei (kein word oder RTF) - über Word aus. Kann ich beim Drucken Word mitgeben Drucke bitte in Landscape ?-
in der Doku printout für word finde ich da nichts.
ich drucke eine bestehende Datei (kein word oder RTF) - über Word aus. Kann ich beim Drucken Word mitgeben Drucke bitte in Landscape ?-
in der Doku printout für word finde ich da nichts.
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
Code: Alles auswählen
Sub Makro1()
'
' Makro1 Makro
'
'
If Selection.PageSetup.Orientation = wdOrientPortrait Then
Selection.PageSetup.Orientation = wdOrientLandscape
Else
Selection.PageSetup.Orientation = wdOrientPortrait
End If
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
Das Dokument ist doch bereits im richtigen Format bestehend? Das wird doch übernommen. Oder irre ich da?
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
Hallo herbert
nein eben nicht. Ich möchte das am liebsten automatisch auf Landscape umstellen und dann ausdrucken, anstatt dies dem Kunden zu überlassen.
ich habe dies jetzt im quellcode so eingebaut:
aber bei wdorientLandscape kommt Meldung umbekannte variable
nein eben nicht. Ich möchte das am liebsten automatisch auf Landscape umstellen und dann ausdrucken, anstatt dies dem Kunden zu überlassen.
ich habe dies jetzt im quellcode so eingebaut:
Code: Alles auswählen
oWord:Selection:PageSetup:Orientation:=wdOrientLandscape
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
Meinst du mit Printout, den Commandozeilen Aufruf mit direktem Drucken ?
Wenn ja, falsche Rubrik und keine Ahnung ob das geht, da ein DOCX Dokument seine Ausrichtung kennt !
Die ist die Rubrik ActiveX
Keine Kommandozeile, sondern ein wordobjekt, und dieses muss die Textdatei öffnen ... dann drucken.
Wenn ja, falsche Rubrik und keine Ahnung ob das geht, da ein DOCX Dokument seine Ausrichtung kennt !
Die ist die Rubrik ActiveX
Keine Kommandozeile, sondern ein wordobjekt, und dieses muss die Textdatei öffnen ... dann drucken.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
dann fehlt die Word.ch - oder ist zu alt ...Rolf Ramacher hat geschrieben:aber bei wdorientLandscape kommt Meldung umbekannte variableCode: Alles auswählen
oWord:Selection:PageSetup:Orientation:=wdOrientLandscape
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
die word.ch habe ich nicht.
kann ich mir die irgendwo herunterladen, oder kann mir jemand die zur Verfügung stellen?
kann ich mir die irgendwo herunterladen, oder kann mir jemand die zur Verfügung stellen?
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
die findest du bei den ActiveX Beispielen von Xbase++, wobei die älter ist (word 2003) ... dachte ich zumindest, aber in dem Ordner ist keine.
Bei Excel wird man fündig (excel.ch) und da findet man auch die Erklärung zu dem Tool. Für neue (2007 oder 2010) muss man sich die mit dem Tool erzeugen:
Bei Excel wird man fündig (excel.ch) und da findet man auch die Erklärung zu dem Tool. Für neue (2007 oder 2010) muss man sich die mit dem Tool erzeugen:
Code: Alles auswählen
//////////////////////////////////////////////////////////////////////
//
// EXCEL.CH
//
// Copyright:
// Alaska Software, (c) 2002-2009. Alle Rechte vorbehalten.
//
// Inhalt:
// Diese Datei wurde mit tlb2ch.exe erzeugt
// Bemerkungen:
// Entnehmen Sie bitte das Parameterprofil von tlb2ch.exe der
// Online Dokumentation
// Syntax:
// tlb2ch.exe excel.application > excel.ch
//
// Return:
//////////////////////////////////////////////////////////////////////
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
tlb2ch word.application > word.ch
ergibt - für Word 2010 !
ergibt - für Word 2010 !
Code: Alles auswählen
////////////////////////////////////////////////////////////////////////////////
//
// Automatisch generiertes Header File
//
// Programm ID: WORD.APPLICATION
//
// Erstellungs Datum: 05.10.2016
//
// Erstellungs Werkzeug: tlb2ch.exe
//
// Copyright (c) Alaska Software. Alle Rechte vorbehalten.
//
////////////////////////////////////////////////////////////////////////////////
#ifndef _WORD_APPLICATION_HEADER_DAEMON
*** zu lang ***
// Enumeration WdOrientation
#DEFINE wdOrientPortrait 0
#DEFINE wdOrientLandscape 1
***
#define _WORD_APPLICATION_HEADER_DAEMON
#endif //_WORD_APPLICATION_HEADER_DAEMON
- Dateianhänge
-
- word.ch
- (312.91 KiB) 356-mal heruntergeladen
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
so das mit landscape hat funkt. kann ich auch hier bei schriftart + größe für den Dateiinhalt mitgeben??
ich habe da in der word.ch gefunden, bin mir aber nicht sicher ob dies so richtig ist
hier gibt es einen compiler-fehler syntax- Error
weiß jemand hier Bescheid ?
ich habe da in der word.ch gefunden, bin mir aber nicht sicher ob dies so richtig ist
hier gibt es einen compiler-fehler syntax- Error
Code: Alles auswählen
oWord:Selection:PageSetup:=Worddialog:wdDialogFormatFont:="8. Courier New"
weiß jemand hier Bescheid ?
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
kannst du den Code der das Wordobjekt steuert (mit dem Landscape) mal zeigen ?
Wie immer im Macro testen, ich denke das Ändern des Standardfonts (Normal) sollte helfen.
Wie immer im Macro testen, ich denke das Ändern des Standardfonts (Normal) sollte helfen.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
Hi Hubert,
das geht
Code: Alles auswählen
oWord:Selection:PageSetup:Orientation:=wdOrientLandscape
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
Hi,
ich meinte auch die Zeilen darum (also von oWord generierung bis zum Ausdruck / Schließen) ...
ich meinte auch die Zeilen darum (also von oWord generierung bis zum Ausdruck / Schließen) ...
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
Code: Alles auswählen
oWord:visible := .f. // Word unsichtbar!
cActivePrinter := oWord:Activeprinter // aktuellen Drucker feststellen
oWord:Activeprinter:= cDrucker // Neuen Drucker setzen
oWord:documents:Open(cDoc)
If cDoc="lker.lit"
oWord:Selection:PageSetup:Orientation:=wdOrientLandscape
* oWord:Selection:PageSetup:=Worddialog:wdDialogFormatFont:="8. Courier New"
Endif
oDoc := oWord:ActiveDocument
Do Case
Case AT("filbestandliste2.rtf",cDoc) > 0
aSeite:=oDlg:pageRangeSelected
oDoc:PrintOut(.f.,Nil,wdPrintFromTo,Nil,alltrim(str(aSeite[1])),alltrim(str(aSeite[2])),Nil,1 )
Case AT("maengel",cDoc) > 0
nCopie:=oPrinter:SetNumCopies()
oDoc:PrintOut(.f.,Nil,Nil,Nil,Nil,Nil,Nil,nCopie )
Otherwise
oDoc:PrintOut(.f.)
EndCase
oWord:Activeprinter:= cActivePrinter // alten Drucker setzen
oDoc:close()
oWord:Quit()
oWord:destroy()
oWord := NIL
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
Code: Alles auswählen
oWord:Selection:PageSetup:=Worddialog:wdDialogFormatFont:="8. Courier New"
Code: Alles auswählen
oWord:Selection:PageSetup := Worddialog:wdDialogFormatFont := "8. Courier New"
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
Hier der erzeugte Macro Code:
Code: Alles auswählen
Selection.TypeText Text:="Test" // Text eigegeben "Test"
Selection.Style = ActiveDocument.Styles("Standard") // Standardstyle ausgewählt.
With ActiveDocument.Styles("Standard").Font // aktuellen Style "Standard" ändern *** ich denke hier liegt der Schlüssel bei TXT Dokumenten.
.Name = "Arial"
.Size = 12
.Bold = True
.Italic = False
.Underline = wdUnderlineNone
.UnderlineColor = wdColorAutomatic
.StrikeThrough = False
.DoubleStrikeThrough = False
.Outline = False
.Emboss = False
.Shadow = False
.Hidden = False
.SmallCaps = False
.AllCaps = False
.Color = wdColorAutomatic
.Engrave = False
.Superscript = False
.Subscript = False
.Scaling = 100
.Kerning = 0
.Animation = wdAnimationNone
.Ligatures = wdLigaturesNone
.NumberSpacing = wdNumberSpacingDefault
.NumberForm = wdNumberFormDefault
.StylisticSet = wdStylisticSetDefault
.ContextualAlternates = 0
End With
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
ich habe alle m.E. Varianten durchgespielt - kein Ergebnis. kann ich das Marco denn beim drucken aufrufen ? als Function
oder mit runshell ??
oder mit runshell ??
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
nein das geht nur über das oWord Objekt.
Ich hatte irgendwo die Hilfe dazu ...
wenn das so stimmt (ich habs nicht probiert, aber du hast es so geschrieben):
oWord:Selection:PageSetup:Orientation := wdOrientLandscape
dann muss es so ählich aussehen:
oDoc - vermutlich das aktuelle Dokument, könnte also ActiveDocument (bzw. dessen Rückgabewert in Word) sein ?
Ich hatte irgendwo die Hilfe dazu ...
wenn das so stimmt (ich habs nicht probiert, aber du hast es so geschrieben):
oWord:Selection:PageSetup:Orientation := wdOrientLandscape
dann muss es so ählich aussehen:
oDoc - vermutlich das aktuelle Dokument, könnte also ActiveDocument (bzw. dessen Rückgabewert in Word) sein ?
Code: Alles auswählen
oDoc:Styles("Standard"):Font:Name := "Arial"
oDoc:Styles("Standard"):Font:Size := 12
oDoc:Styles("Standard"):Font:Bold := .f.
oWord:Selection:Style := oDoc.Styles("Standard")
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
oder noch einfacher, ich habe die Entwicklertools eingeschaltet und in der Objekthirarchie folgendes Beispiel gefunden:
rngTemp ist also eine einfache Range (ganz am Anfang), du nimmst dort ja immer die Selection
Und ohne viel Aufwand wird direkt für diesen Bereich die Schriftart festgelegt, also erst gar nicht über Normal formatiert.
Code: Alles auswählen
Visual Basic für Applikationen
Dim rngTemp As Range
Set rngTemp = ActiveDocument.Range(Start:=0, End:=0)
With rngTemp
.InsertBefore "Company Report"
.Font.Name = "Arial"
.Font.Size = 24
.InsertParagraphAfter
End With
ActiveDocument.PrintOut
Und ohne viel Aufwand wird direkt für diesen Bereich die Schriftart festgelegt, also erst gar nicht über Normal formatiert.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Word Landscape
so nach meinem Urlaub wollte ich hier weitermachen.
aber beim 1. styles
kommt diese Fehlermeldung word.ch ist eingebunden. weiß hier noch jemand Bescheid? wie ich hier die Schriftart Größe vorgeben kann.
ohne das dem user zu überlassen und Word zu starten und er macht das selber
aber beim 1. styles
Code: Alles auswählen
oWord := CreateObject("Word.Application")
IF Empty( oWord )
MsgBox( "Microsoft Word ist nicht installiert" )
RETURN Nil
ENDIF
oWord:visible := .f. // Word unsichtbar!
cActivePrinter := oWord:Activeprinter // aktuellen Drucker feststellen
oWord:Activeprinter:= cDrucker // Neuen Drucker setzen
oWord:documents:Open(cDoc)
If At("lker.lit",cdoc) >0
oWord:Selection:PageSetup:Orientation:=wdOrientLandscape
* oWord:Selection:PageSetup:Worddialog:=wdDialogFontSubstitution ="8.Courier New"
* oWord:Selection:PageSetup:Compatibility:=wdSubFontBySize="8.Courier New"
oDoc:Styles("Standard"):Font:Name := "Courier New"
oDoc:Styles("Standard"):Font:Size := 8
oDoc:Styles("Standard"):Font:Bold := .f.
oWord:Selection:Style := oDoc:Styles("Standard")
Endif
ohne das dem user zu überlassen und Word zu starten und er macht das selber
Code: Alles auswählen
------------------------------------------------------------------------------
FEHLERPROTOKOLL von "C:\32Bit\Liefker.exe" Datum: 24.10.2016 15:46:31
Xbase++ Version : Xbase++ (R) Version 1.90.331
Betriebssystem : Windows 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: U VALUE: NIL
-> VALTYPE: C VALUE: Standard
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter hat falschen Typ
oError:filename :
oError:genCode : 2
oError:operation : Styles
oError:osCode : 0
oError:severity : 2
oError:subCode : 1025
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von DRUCKEN(37)
Aufgerufen von LISTEDRUCKEN(56)
Aufgerufen von (B)MAIN(41)
Aufgerufen von MAIN(56)
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Word Landscape
versuche doch die Syntax von oben mit direkter Schrift:
sollte etwa so aussehen:
Code: Alles auswählen
Set rngTemp = ActiveDocument.Range(Start:=0, End:=0)
With rngTemp
.InsertBefore "Company Report"
.Font.Name = "Arial"
.Font.Size = 24
.InsertParagraphAfter
End With
Code: Alles auswählen
oRange := oWord:ActiveDocument:Range(Start:=0, End:=0) // Paramter bitte in Dokumentation nachsehen
oRange:Font:Name := "Arial"
oRange:Font:Size := 24
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
-
- Rekursionen-Architekt
- Beiträge: 151
- Registriert: Di, 11. Mai 2010 16:27
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
Re: Word Landscape
Hallo Rolf,
der Lösungsansatz von Hubert mit dem Range-Objekt sollte jedenfalls klappen wenn du einen gültigen Bereich
definieren möchtest bzw. würdest bzw. kannst aber falls "Start" oder "End" sozusagen "out of range" ist dann klingelt der Postman twice
Ich schreibe es mal ganz simpel etwas anders als Hubert
Wenn du nun nicht exakt die Anzahl der Zeichen im Dokument kennst dann wird entweder weniger Text als vorhanden
entsprechend behandelt oder du fliegst bei zu großen "End"-Wert eine Runde weil End ( z.B. willkürlich 100000 gesetzt )
eben "out of range" ist.
Daher wäre es in deinem Fall wohl besser du wählst gleich den ganzen Inhalt aus
Ich hoffe, ich habe dein Problem richtig verstanden uns mein Geschnipsel hilft dir weiter,
Gruß, Marcel
der Lösungsansatz von Hubert mit dem Range-Objekt sollte jedenfalls klappen wenn du einen gültigen Bereich
definieren möchtest bzw. würdest bzw. kannst aber falls "Start" oder "End" sozusagen "out of range" ist dann klingelt der Postman twice
Ich schreibe es mal ganz simpel etwas anders als Hubert
Code: Alles auswählen
oWord := CreateObject("Word.Application")
....
oDoc:= oWord:ActiveDocument
....
** ActiveDocument.Range(Start:=0, End:=0)
x1:=oDoc:Range(0, 100) // 100 für End bedeutet 100 Zeichen
x1:Font:Name = "Courier New"
x1:Font:Size = 8
entsprechend behandelt oder du fliegst bei zu großen "End"-Wert eine Runde weil End ( z.B. willkürlich 100000 gesetzt )
eben "out of range" ist.
Daher wäre es in deinem Fall wohl besser du wählst gleich den ganzen Inhalt aus
Code: Alles auswählen
oWord := CreateObject("Word.Application")
oDoc:= oWord:ActiveDocument
oDoc:Content:Font:Name = "Courier New"
oDoc:Content:Font:Size = 8
oDoc:PrintOut(.T.)
...
Gruß, Marcel
Ahoile aus dem Süden