Markierten Bereich drucken

Fehlerberichte, Hilfe und Anregungen zu TextMaker 2016 für Windows

Moderator: SoftMaker Team

PeterQ
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1615
Registriert: 09.03.2009 17:32:30
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von PeterQ » 09.10.2017 20:14:00

Ich habe einen Anfang gemacht viewtopic.php?f=233&t=22956. Bedenken zu haben ist auch Arbeit. Kann man ja auch mal in die Suchfunktion investieren und ein weiteres Script heraussuchen :wink: .
(1) SMO 2018 Beta - OpenSuse 42.2 64 bit KDE Plasma 5.8.6
(2) SMO 2018 - WINE 32 bit in OpenSuse 42.2 64 bit
(3) SMO 2016 - Windows 7 32 bit

Panosis
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 2594
Registriert: 24.04.2008 00:02:12

Re: Markierten Bereich drucken

Beitrag von Panosis » 09.10.2017 21:36:07

In dieser Form läuft das Skript bei mir ohne Absturz.

Code: Alles auswählen

Dim tm, newDoc as Object
Set tm = CreateObject("TextMaker.Application")
tm.Visible = TRUE
tm.ActiveDocument.Selection.Copy
Set newDoc = tm.Documents.Add
newDoc.Selection.Paste
newDoc.PrintOut
newDoc.Close 0
Set tm = Nothing
Ob der Absturz mit der Subroutine zusammenhängt? Anfangs verlangte BM eine SUB MAIN (C-Erbe), das ist aber schon lange nicht mehr so.

PeterQ
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1615
Registriert: 09.03.2009 17:32:30
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von PeterQ » 09.10.2017 21:49:09

Wurde auch so von Get beschrieben. Nur die Zeile

Code: Alles auswählen

tm.ActiveDocument.Close
bringt TM zum Absturz bei Aufruf des Scriptes, wenn das Script nicht direkt aus dem geöffneten BasicMaker gestartet wird.
Daher habe ich auch diese Zeile weggelassen.
(1) SMO 2018 Beta - OpenSuse 42.2 64 bit KDE Plasma 5.8.6
(2) SMO 2018 - WINE 32 bit in OpenSuse 42.2 64 bit
(3) SMO 2016 - Windows 7 32 bit

Hain
Beiträge: 93
Registriert: 29.05.2015 12:21:39

Re: Markierten Bereich drucken

Beitrag von Hain » 10.10.2017 07:34:01

Ein recht herzliches Dankeschön!

Benutzeravatar
Get
Beiträge: 169
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von Get » 10.10.2017 09:35:04

Panosis hat geschrieben:In dieser Form läuft das Skript bei mir ohne Absturz.

Code: Alles auswählen

Dim tm, newDoc as Object
Set tm = CreateObject("TextMaker.Application")
tm.Visible = TRUE
tm.ActiveDocument.Selection.Copy
Set newDoc = tm.Documents.Add
newDoc.Selection.Paste
newDoc.PrintOut
newDoc.Close 0
Set tm = Nothing
Ob der Absturz mit der Subroutine zusammenhängt? Anfangs verlangte BM eine SUB MAIN (C-Erbe), das ist aber schon lange nicht mehr so.
Bei mir stürzt das Skript auch mit newDoc.Close 0 ab.
Ich behelfe mir eben mit dem Vorschlag von
PeterQ hat geschrieben:Das Script von GET funktioniert viewtopic.php?f=229&t=22907#p106879. Nur das Hilfsdokument muss per Hand geschlossen werden. Es stürzt nur ab, wenn das Schließen des Dokumentes vom Script selbst erledigt werden soll.

Falls die Nachfrage beim manuellen Schließen des Hilfsdokumentes stört, kann man noch diese Zeile einfügen

Code: Alles auswählen

tm.ActiveDocument.saved = True
Das ist dann ein Mausklick weniger beim Schließen der Kopie. Und es funktioniert.
Aber meine Bitte an Softmaker: Kann sich jemnd um den Fehler "Absturz bei document.Close" kümmern? Das ist eine Option, die gern auch in anderen Skripten nutzen möchte.
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

FFF
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1209
Registriert: 11.06.2013 22:30:18

Re: Markierten Bereich drucken

Beitrag von FFF » 10.10.2017 10:04:39

Get hat geschrieben:
Panosis hat geschrieben:In dieser Form läuft das Skript bei mir ohne Absturz.

Code: Alles auswählen

Dim tm, newDoc as Object
Set tm = CreateObject("TextMaker.Application")
tm.Visible = TRUE
tm.ActiveDocument.Selection.Copy
Set newDoc = tm.Documents.Add
newDoc.Selection.Paste
newDoc.PrintOut
newDoc.Close 0
Set tm = Nothing
Ob der Absturz mit der Subroutine zusammenhängt? Anfangs verlangte BM eine SUB MAIN (C-Erbe), das ist aber schon lange nicht mehr so.
Bei mir stürzt das Skript auch mit newDoc.Close 0 ab.
Ich behelfe mir eben mit dem Vorschlag von
PeterQ hat geschrieben:Das Script von GET funktioniert viewtopic.php?f=229&t=22907#p106879. Nur das Hilfsdokument muss per Hand geschlossen werden. Es stürzt nur ab, wenn das Schließen des Dokumentes vom Script selbst erledigt werden soll.

Falls die Nachfrage beim manuellen Schließen des Hilfsdokumentes stört, kann man noch diese Zeile einfügen

Code: Alles auswählen

tm.ActiveDocument.saved = True
Das ist dann ein Mausklick weniger beim Schließen der Kopie. Und es funktioniert.
Aber meine Bitte an Softmaker: Kann sich jemnd um den Fehler "Absturz bei document.Close" kümmern? Das ist eine Option, die gern auch in anderen Skripten nutzen möchte.
Nur als Versuch, bei mir läuft BM (64) ja noch nicht: vor dem newDoc.Close explizit das "alte" Dokument wieder aktivieren, newDoc schließen, altDoc schließen und erst dann tm abschießen? Ggf. die Schließungen mit "nosave" garnieren?
Mit freundlichem Gruß
Karl
emC 7 & SM 2016 rev766.0331 @ W8.1/64 /// SM 2018 rev. 972/1023/64, klassisches Menu
16GB Ram; Core i5-3450 mit integriertem Intel HDGraphics 4000, Treiber 10.18.10.4276;
2560x1440 Monitor 100% Darstellungsgröße /// LaserJet 1200 per USB via Fritzbox 6490.

Manfred
Beiträge: 368
Registriert: 09.07.2005 04:32:33

Re: Markierten Bereich drucken

Beitrag von Manfred » 10.10.2017 10:10:02

Nochmals ein Vorschlag als Workaround:

Vor und nach dem Text, oder was auch immer, einen Seitenumbruch einfügen und dann die neu enstandene Seite ausdrucken.

Manfred

Benutzeravatar
Get
Beiträge: 169
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von Get » 10.10.2017 13:57:55

FFF hat geschrieben:Nur als Versuch, bei mir läuft BM (64) ja noch nicht: vor dem newDoc.Close explizit das "alte" Dokument wieder aktivieren, newDoc schließen, altDoc schließen und erst dann tm abschießen? Ggf. die Schließungen mit "nosave" garnieren?
Danke für den Tip: Ausprobiert, gleiches Problem: TM hängt sich auf.
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

Benutzeravatar
Get
Beiträge: 169
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von Get » 10.10.2017 17:13:31

Funktionierende Lösung:

Code: Alles auswählen

Sub printsel()

	Dim tm as Object
	Dim docName, pfad as String
	Set tm = CreateObject("TextMaker.Application")
	tm.Visible = TRUE
	pfad = tm.Application.Options.DefaultFilePath
	docName = pfad & "\printsel-kopie.tmd"
	tm.ActiveDocument.Selection.Copy
	tm.Documents.Open docName
	tm.ActiveDocument.Save
	tm.ActiveDocument.Selection.Paste
	tm.ActiveDocument.PrintOut
	tm.ActiveDocument.Close smoDoNotSaveChanges
	Set tm = Nothing

End Sub
Man legt im aktuellen Arbeitsverzeichnis (oder anderswo, dann Pfad anpassen) eine leere Datei mit dem Namen "printsel-kopie.tmd" an (oder man gibt ihr einen anderen Namen).
Das Skript öffnet die Datei, speichert sie gleich wieder mit Save, benutz sie dann als Zwischenspeicher zum Drucken. Durch das Öffen und Speichern funktioniert dann "ActiveDocument.Save"
Wenn man dann noch den Aufruf des Skripts auf einen Button oben in der Kopfleiste legt, hat man eine schnelle Möglichkeit für "Markierung drucken".
Dateianhänge
printsel.bas
(429 Bytes) 69-mal heruntergeladen
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

PeterQ
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1615
Registriert: 09.03.2009 17:32:30
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von PeterQ » 10.10.2017 18:22:44

Bei mir hat die Zeile

Code: Alles auswählen

 tm.ActiveDocument.Save
gemeckert. Erst als ich sie herausgenommen habe, hat es funktioniert.
(1) SMO 2018 Beta - OpenSuse 42.2 64 bit KDE Plasma 5.8.6
(2) SMO 2018 - WINE 32 bit in OpenSuse 42.2 64 bit
(3) SMO 2016 - Windows 7 32 bit

Benutzeravatar
Get
Beiträge: 169
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von Get » 10.10.2017 19:48:57

Noch ein kleiner Änderungsvorschlag:
Den Pfad für die "printsel-kopie" auf DefaultTemplatePath ändern und die Datei in das Vorlagenverzeichnis von SM kopieren.
Der Pfad ändert sich nicht und man muss nicht immer daran denken, in alle möglichen Arbeitsverzeichnisse die Datei hinein zu kopieren.
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

Hain
Beiträge: 93
Registriert: 29.05.2015 12:21:39

Re: Markierten Bereich drucken

Beitrag von Hain » 12.10.2017 15:04:20

Get hat geschrieben: Wenn man dann noch den Aufruf des Skripts auf einen Button oben in der Kopfleiste legt, hat man eine schnelle Möglichkeit für "Markierung drucken".
Ich benötige noch etwas Nachhilfe. Das Script funktioniert hervorragend. Nach mehreren Ergänzungen habe ich nun das Script hier gespreichert:
c:\Users\Hans\Documents\SoftMaker\Templates 2016\printsel(3).bas
Gebe ich diesen Pfad in den benutzerdefinierten Button ein, dann klappt das nicht und ich erhalte eine Fehlermeldung. Was mache ich da falsch?

PeterQ
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1615
Registriert: 09.03.2009 17:32:30
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von PeterQ » 12.10.2017 15:09:13

Probiere bitte diese Befehlszeile:

Code: Alles auswählen

"C:\Programme\SoftMaker Office 2016\BasicMaker.exe" /s "c:\Users\Hans\Documents\SoftMaker\Templates 2016\printsel(3).bas" 
(1) SMO 2018 Beta - OpenSuse 42.2 64 bit KDE Plasma 5.8.6
(2) SMO 2018 - WINE 32 bit in OpenSuse 42.2 64 bit
(3) SMO 2016 - Windows 7 32 bit

Panosis
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 2594
Registriert: 24.04.2008 00:02:12

Re: Markierten Bereich drucken

Beitrag von Panosis » 12.10.2017 15:38:08

@Hain Zur Erklärung: Ein Skript kann man nicht einfach so auf einen Button legen. Man muss auf dem Button zunächst das Programm ablegen, das etwas tun soll. Zum Aufruf von Programmen sind Buttons eigentlich da. Also erst den vollständigen Pfad einschliesslich Name des Programms (BasicMaker.exe) in die Aufruf-Zeile des Buttons setzen. Dann muss das Programm auch wissen, was es tun soll. Dafür ist das Kürzel "/s" da (starte ...!). Nun fehlt noch die Angabe der Datei, hier also des Skripts, das geöffnet und gestartet werden soll.
Irgendwo haben wir auch eine Übersicht der Start-Parameter für die verschiedenen SMO-Programme, ich habe sie leider nur gerade nicht griffbereit. Man könnte also z. B. einen Button anlegen, der ein Programm aufruft und dieses anweist, eine Datei zu drucken, mit einem leeren Dokument zu starten o. dgl. Das hängt von dem mit / eingeleiteten Parameter ab.

PeterQ
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1615
Registriert: 09.03.2009 17:32:30
Kontaktdaten:

Re: Markierten Bereich drucken

Beitrag von PeterQ » 12.10.2017 15:45:31

Panosis hat geschrieben: Man könnte also z. B. einen Button anlegen, der ein Programm aufruft und dieses anweist, eine Datei zu drucken, mit einem leeren Dokument zu starten o. dgl. Das hängt von dem mit / eingeleiteten Parameter ab.
Jetzt Offtopic: Die Parameter würden mich mal interessieren! Ich würde gerne ein aktives Dokument einem Druckertreiber zuweisen.
(1) SMO 2018 Beta - OpenSuse 42.2 64 bit KDE Plasma 5.8.6
(2) SMO 2018 - WINE 32 bit in OpenSuse 42.2 64 bit
(3) SMO 2016 - Windows 7 32 bit

Antworten

Zurück zu „TextMaker 2016 für Windows“