TIF Drucker Universal Document Converter [ERLEDIGT]
Moderator: Moderatoren
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
TIF Drucker Universal Document Converter [ERLEDIGT]
Ich muss eine Unterstützung für diesen Drucker einbauen damit die Anwender TIF Dateien erzeugen können.
Der Drucker hat wohl eine API aber das ist mir zu aufwendig. Ich muss nur wissen, wo die Ausgabedatei(en) gespeichert werden.
Dieser Ordner wird bei den Druckeinstellungen vorgeben. Diesen möchte ich on the fly ändern (jeder Kunde hat seinen eigenen Ordner für diese Dokumente.
In der Registry finde in den Ordner nicht.
Wie kann ich feststellen wo und in welcher Datei diese Angabe gespeichert wird ?
Der Drucker hat wohl eine API aber das ist mir zu aufwendig. Ich muss nur wissen, wo die Ausgabedatei(en) gespeichert werden.
Dieser Ordner wird bei den Druckeinstellungen vorgeben. Diesen möchte ich on the fly ändern (jeder Kunde hat seinen eigenen Ordner für diese Dokumente.
In der Registry finde in den Ordner nicht.
Wie kann ich feststellen wo und in welcher Datei diese Angabe gespeichert wird ?
Zuletzt geändert von Koverhage am Do, 12. Dez 2019 15:40, insgesamt 1-mal geändert.
Gruß
Klaus
Klaus
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: TIF Drucker Universal Document Converter
Hallo Klaus !
Es ist empfehlenswert das Logging erst unmittelbar vor dem Druck zu aktivieren und nach dem Druck sofort wieder zu stoppen. Dann ist das Log noch einigermaßen übersichtlich.
https://docs.microsoft.com/de-de/sysint ... ds/procmon
Setze den ProcessMonitor auf das Tool an indem du den Filter auf diese EXE/den Process setzt, den Activity-Filter nur auf File System Activity setzt und dann in der Log-Datei nachschaust.Wie kann ich feststellen wo und in welcher Datei diese Angabe gespeichert wird ?
Es ist empfehlenswert das Logging erst unmittelbar vor dem Druck zu aktivieren und nach dem Druck sofort wieder zu stoppen. Dann ist das Log noch einigermaßen übersichtlich.
https://docs.microsoft.com/de-de/sysint ... ds/procmon
--
Hans-Peter
Hans-Peter
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Hat jemand Erfahrung mit API Einbindung in Xbase++ ?
Für diverse Sprachen ist eine Beschreibung dabei, nachstehend die Auflistung
The Universal Document Converter API is implemented as a COM server. This design provides access to the API methods out of any advanced programming language.
All API interfaces are inherited from the IDispatch interface. Therefore, API calls can be made both using programming languages such as Visual Basic, Visual C++, and Delphi and out of scripts written in languages, such as PHP.
wobei ich nur den Aufruf benötige, der den Ausgabeort setzt.
Für diverse Sprachen ist eine Beschreibung dabei, nachstehend die Auflistung
The Universal Document Converter API is implemented as a COM server. This design provides access to the API methods out of any advanced programming language.
All API interfaces are inherited from the IDispatch interface. Therefore, API calls can be made both using programming languages such as Visual Basic, Visual C++, and Delphi and out of scripts written in languages, such as PHP.
wobei ich nur den Aufruf benötige, der den Ausgabeort setzt.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
> All API interfaces are inherited from the IDispatch interface.
ich kann mir nicht merken ob Xbase iDispatch unterstützt oder nicht, aber das ist im Prinzip ActiveX, wie bei Word oder Excel.
Da gibt es das Dienstprogramm, das eine Xbase++ Klasse aus dem Objekt heraus holt ... ich meine das wird beim Word bzw. Excel Beispiel gezeigt.
ich kann mir nicht merken ob Xbase iDispatch unterstützt oder nicht, aber das ist im Prinzip ActiveX, wie bei Word oder Excel.
Da gibt es das Dienstprogramm, das eine Xbase++ Klasse aus dem Objekt heraus holt ... ich meine das wird beim Word bzw. Excel Beispiel gezeigt.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
In der Hilfe zu AutomationObject() wird iDispatch aufgeführt, also sollte das gehen.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Und wenn ich diese Seite richtig verstehe, wird der OutputFolder beim Drucken gesetzt.
https://www.print-driver.es/sdk/interfa ... ation.html
https://www.print-driver.es/sdk/interfa ... ation.html
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Hier mal ein Beispiel in Visual Basic
Code: Alles auswählen
Converting Visio Diagrams to TIFF
'----------------------------------------------------------------------
' 1) Microsoft Visio 2000 or above should be installed and activated on your PC.
'
' 2) Universal Document Converter 5.2 or above should also be installed.
'
' 3) Open your project in Microsoft Visual Basic 6.0.
'
' 4) In Visual Basic main menu press "Project->References".
'
' 5) In the list of references check "Universal Document Converter Type Library".
'----------------------------------------------------------------------
Private Sub PrintVisioToTIFF(strFilePath As String)
' Define constants
Const visOpenRW = &H20
Const visOpenDontList = &H8
Const visPrintAll = 0
Dim objUDC As IUDC
Dim itfPrinter As IUDCPrinter
Dim itfProfile As IProfile
Dim objVisioApp As Object
Dim itfDrawing As Object
' Use Universal Document Converter API to change settings of converterd document
Set objUDC = New UDC.APIWrapper
Set itfPrinter = objUDC.Printers("Universal Document Converter")
Set itfProfile = itfPrinter.Profile
itfProfile.Load ("C:\Program Files\Universal Document Converter\UDC Profiles\Drawing to TIFF.xml")
itfProfile.OutputLocation.Mode = LM_PREDEFINED
itfProfile.OutputLocation.FolderPath = "C:\Out"
itfProfile.PostProcessing.Mode = PP_OPEN_FOLDER
' Run Microsoft Visio as COM-server
On Error Resume Next
Set objVisioApp = CreateObject("Visio.Application")
objVisioApp.Visible = False
' Open drawing from file
Err = 0 ' Clear GetLastError() value
Set itfDrawing = objVisioApp.Documents.OpenEx(strFilePath, visOpenRW And visOpenDontList)
If Err = 0 Then
' Change Drawing preferences for scaling it to page
itfDrawing.PrintCenteredH = True
itfDrawing.PrintCenteredV = True
itfDrawing.PrintFitOnPages = True
' Print drawing
itfDrawing.Printer = "Universal Document Converter"
itfDrawing.PrintOut (visPrintAll)
' Close drawing
itfDrawing.Saved = True
itfDrawing.Close
Set itfDrawing = Nothing
End If
' Close Microsoft Visio
Call objVisioApp.Quit
Set objVisioApp = Nothing
End Sub
Gruß
Klaus
Klaus
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: TIF Drucker Universal Document Converter
Xbase++ benötigt IDispatch und kann nicht mit IUnknown umgehen.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: TIF Drucker Universal Document Converter
in dem Demo "sehe" ich nicht wie das "init" vom Drucker aussieht ...
steht da irgendwas von "regsrv32" damit eine CLSID in der Registry eingetragen wird
---
hab das im C++ Demo gefunden
Code: Alles auswählen
UDC::IUDCPtr pUDC(__uuidof(UDC::APIWrapper));
UDC::IUDCPrinterPtr itfPrinter = pUDC->Printers["Universal Document Converter"];
UDC::IProfilePtr itfProfile = itfPrinter->Profile;
Code: Alles auswählen
// Run Microsoft Outlook as COM-server
OUTLOOK::_ApplicationPtr objOutlook( L"Outlook.Application" );
um sich eine IDispatch Schnittstelle zu bauen erstell man sich eine *.CH mit #xtranslate
die ersten 4 Functionen sehen so aus
Code: Alles auswählen
#xtranslate ITaskbarList_uuidof() => UuidFromString("56FDF342-FD6D-11d0-958A-006097C9A090")
#xtranslate ITaskbarList_QueryInterface( <pi>, [<params,...>]) => IFpQCall( 0,"__sl__sl__pt_@sl",<pi> [,<params>] )
#xtranslate ITaskbarList_AddRef( <pi>) => IFpQCall( 1,"__sl__sl",<pi>)
#xtranslate ITaskbarList_Release(<pi>) => IFpQCall( 2,"__sl__sl",<pi>)
wie man auf deer rechten Seite mit IFpQCall() sieht geht es bei 0 los und zählt dann hoch.
grob gesagt ist unser "Problem" OOP und "Name" vs. "Pointer" und "Nummer"
man muss die Function eigendlich mit der "Nummer" der Function ansprechen aber dank #xtranslate können wir einen "Namen" verwenden.
---
zunächst muss man raus bekommen was in UDC::APIWrapper steht denn das ist wie die CLSID zum Ansprechen.
die nächsten 3 gibt auch unter Xbase++ ... ich habe es mit Ot4Xb gemacht.
die #xtranslate werden später dann als Function genutzt.
wenn man sich die *.CH erstellt hat ist der Rest "ein Klacks".
gruss by OHR
Jimmy
Jimmy
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Habe eine Anfrage an Pablo geschickt, ob er das gegen Bezahlung macht.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Willst du auf diesen Drucker drucken oder willst du wissen wohin eine andere Anwendung speichert ?
Hast du so ein Teil zum Testen bei dir ?
Mit Xbase XbpPrinter .... kann man den Druckordner vorgeben, wenn es ein Windowsdrucker ist ...
Hast du so ein Teil zum Testen bei dir ?
Mit Xbase XbpPrinter .... kann man den Druckordner vorgeben, wenn es ein Windowsdrucker ist ...
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Hallo Hubert,
ich will nur den Speicherort in meiner Anwendung vorgegeben.
Ich habe so ein Teil, ist frei verfügbar, siehe https://www.print-driver.de/
Die Änderung kann laut Support von denen nur über die API erfolgen, in meinem Fall über
itfProfile.OutputLocation.FolderPath = "C:\Out"
Leider hat Pablo bis Februar keine Zeit hat mir folgendes dazu geschrieben
ich will nur den Speicherort in meiner Anwendung vorgegeben.
Ich habe so ein Teil, ist frei verfügbar, siehe https://www.print-driver.de/
Die Änderung kann laut Support von denen nur über die API erfolgen, in meinem Fall über
itfProfile.OutputLocation.FolderPath = "C:\Out"
Leider hat Pablo bis Februar keine Zeit hat mir folgendes dazu geschrieben
But probably you not need that, as looks like almost everything is exposed with activex, and don't use complex types so you can do even with the Xbase++ ActiveX classes ( or the disphelper functions that are linked with ot4xb if Xbase++ activex slow down so much the process, or having problems but probably not needed here)
- Dateianhänge
-
- 2019-12-11_074227.jpg (112.08 KiB) 13700 mal betrachtet
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
nochmal zum Verständnis, dein Kunde hat einen PC und auf diesem sollen ...
1. alle Ausdrucke in das von deinem Programm vorgegebene Verzeichnis (das wäre einfacher direkt einzutragen), oder ...
2. je nach bearbeitetem Dokument / Kunden willst du den nächsten Ausdruck in ein anderes Verzeichnis vorgeben ?
Kommen die Ausdrucke aus Xbase++ heraus ?
ist das dieser:
https://www.chip.de/downloads/Universal ... 81085.html
Dokument Konverter ... ?
https://www.print-driver.de/produktubersicht
1. alle Ausdrucke in das von deinem Programm vorgegebene Verzeichnis (das wäre einfacher direkt einzutragen), oder ...
2. je nach bearbeitetem Dokument / Kunden willst du den nächsten Ausdruck in ein anderes Verzeichnis vorgeben ?
Kommen die Ausdrucke aus Xbase++ heraus ?
ist das dieser:
https://www.chip.de/downloads/Universal ... 81085.html
Dokument Konverter ... ?
https://www.print-driver.de/produktubersicht
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Hallo Hubert,
ich würde den Link nehmen, den ich gepostet habe. Bei Chip ist eine alte Version.
Es ist ja eingetragen, dass der vorgegeben Speicherort verwendet werden soll.
Ja, Fall 2 trifft zu.
Die Ausdrucke kommen aus Xbase++ heraus
ich würde den Link nehmen, den ich gepostet habe. Bei Chip ist eine alte Version.
Es ist ja eingetragen, dass der vorgegeben Speicherort verwendet werden soll.
Ja, Fall 2 trifft zu.
Die Ausdrucke kommen aus Xbase++ heraus
Gruß
Klaus
Klaus
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: TIF Drucker Universal Document Converter
das hört sich doch gut anKoverhage hat geschrieben: ↑Mi, 11. Dez 2019 7:45But probably you not need that, as looks like almost everything is exposed with activex, and don't use complex types so you can do even with the Xbase++ ActiveX classes ( or the disphelper functions that are linked with ot4xb if Xbase++ activex slow down so much the process, or having problems but probably not needed here)
solang du keine Events verarbeiten musst würde ich ot4xb und Disphelper nehmen.
... aber man braucht eine CLSID / ProgID. hast du da schon was gefunden
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: TIF Drucker Universal Document Converter
Ich benötige auch ab und zu TIFF Files.
Da jeder Ausdruck der entsprechenden Dokumentengruppe sowieso auch immer als PDF File Archiviert wird habe ich die Aufgabe so gelöst dass ich das PDF-File wenn ein TIFF File benötigt wird einfach mithilfe der QuickPDF DLL in ein TIFF konvertiere.
So konnte ich die Sorgen die dich jetzt plagen elegant umgehen ..... Vielleicht ist ja dieser Weg auch was für dich.
Da jeder Ausdruck der entsprechenden Dokumentengruppe sowieso auch immer als PDF File Archiviert wird habe ich die Aufgabe so gelöst dass ich das PDF-File wenn ein TIFF File benötigt wird einfach mithilfe der QuickPDF DLL in ein TIFF konvertiere.
So konnte ich die Sorgen die dich jetzt plagen elegant umgehen ..... Vielleicht ist ja dieser Weg auch was für dich.
Valar Morghulis
Gruss Carlo
Gruss Carlo
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: TIF Drucker Universal Document Converter
"wo" hast du den gesucht
das Demo hast du doch installiert, oder
gruss by OHR
Jimmy
Jimmy
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Also nach der Installation finde ich für den Universal Document Converter die clsid {729D6DDE-DEB2-4C4D-AD35-DE53F9D61884} in meiner Registry.
Viele Grüße
Wolfgang
Wolfgang
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Evtl. muss man auch wie in den Beispielen den "UDC.APIWrapper" {E81766E2-8035-4BC4-97DA-A4A4E584DBC9} über ActiveX ansprechen.
Viele Grüße
Wolfgang
Wolfgang
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Wenn man sich dann noch die API-Hilfe ansieht, sollte so etwas wie
Leider fehlt mir die Zeit, das jetzt auch auszuprobieren, aber vielleicht hilft es als Ansatz.oUDC:= CreateObject("UDC.APIWrapper")
oUDC:ActivationMode := 0 /*silent*/
oUDC:Activate()
oUDC:DefaultPrinter := "Universal Document Converter"
Viele Grüße
Wolfgang
Wolfgang
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: TIF Drucker Universal Document Converter
das sieht doch schon gut aus ... jetzt noch das IPrinter Interface dazu.Wolfgang Ciriack hat geschrieben: ↑Mi, 11. Dez 2019 13:43 Wenn man sich dann noch die API-Hilfe ansieht, sollte so etwas wieoUDC:= CreateObject("UDC.APIWrapper")
oUDC:ActivationMode := 0 /*silent*/
oUDC:Activate()
oUDC:DefaultPrinter := "Universal Document Converter"
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Dank euren Hinweisen und etwas nachlesen im Excel Beispiel habe ich das so zum Laufen bekommen:
die UDC.CH habe ich mit diesem Aufruf generiert:
tlb2ch.exe UDC.APIWRAPPER > UDC.CH
Code: Alles auswählen
*#### ANSI .t. äöü ÄÖÜ ß !!!!
#include "Gra.ch"
#include "Xbp.ch"
#include "activex.ch"
#include "udc.ch"
// Beispiel aus der Hilfe zu XbpPrinter() abgewandelt.
PROCEDURE Main
LOCAL oPS := NIL, oUDC := NIL, oPRN := NIL, oPRO := NIL
LOCAL cDir // wir müssen das komplette Verzeichnis vorgeben
SET CHARSET TO ANSI
cDir := CurDrive()+":\"+CurDir()
// Dim objUDC As IUDC
// Set objUDC = New UDC.APIWrapper
// das ist der Einstieg
oUDC := CreateObject("UDC.APIWrapper")
do case
case oUDC == NIL
msgbox("oUDC ist NIL")
quit
case ValType(oUDC) <> "O"
msgbox("oUDC ist kein Objekt: "+ValType(oUDC))
quit
otherwise
msgbox("oUDC ist OK")
end
oUDC:ActivationMode := 0 /*silent*/
oUDC:Activate()
// will ich nicht ändern, machen wir über Parameter von PrinterPS()
// ==> oDC:Create( cPrinterObjectName )
// oUDC:DefaultPrinter := "Universal Document Converter"
// bei Excel wird einer Xbase++ Variablen ein oBook, oSheet zugewiesen ...
// hier holen wir den Pointer zu dem gewünschten Drucker
// Dim itfPrinter As IUDCPrinter
// Set itfPrinter = objUDC.Printers("Universal Document Converter")
oPRN := oUDC:Printers("Universal Document Converter")
// nun brauchen wir das Profil
// Dim itfProfile As IProfile
// Set itfProfile = itfPrinter.Profile
oPRO := oPRN:Profile
// Profil Laden ... bei mir war das nicht vorhanden.
// itfProfile.Load ("C:\Program Files\Universal Document Converter\UDC Profiles\Drawing to TIFF.xml")
// TIFF drucken
oPRO:Load (cDir+"\UDC-TIFF.xml")
oPRO:OutputLocation:Mode := LM_PREDEFINED
oPRO:OutputLocation:FolderPath := "D:\TEMP"
oPRO:PostProcessing:Mode := PP_OPEN_FOLDER
// Presentation-Space für Standard-Drucker erzeugen
oPS := PrinterPS("Universal Document Converter")
// Spooler aktivieren
oPS:device():startDoc()
// Grafische Ausgabe zum Spooler schicken
GraBox( oPS, { 50,1200}, {600,200} )
GraStringAt( oPS, {150,1100}, "Grafik wird gedruckt auf:")
GraStringAt( oPS, {150,1050}, oPS:device():devName )
// Spoolen beenden
oPS:device():endDoc()
DestroyDevice( oPS )
// zurücksetzen
// PDF drucken, oder ein Standard.xml ...
oPRO:Load (cDir+"\UDC-PDF.xml")
// aufräumen
oUDC := NIL
oPRN := NIL
oPRO := NIL
RETURN
// Presentation-Space erzeugen und mit Device-Context
// für einen Drucker assoziieren. Die Einheit für das
// Koordinatensystem ist 1/10 Millimeter
FUNCTION PrinterPS( cPrinterObjectName )
LOCAL oPS, oDC := XbpPrinter():New()
LOCAL aSize
oDC:Create( cPrinterObjectName )
oPS := XbpPresSpace():New()
aSize := oDC:paperSize()
// Größe des bedruckbaren Bereichs
aSize := { aSize[5] - aSize[3], ;
aSize[6] - aSize[4] }
oPS:Create( oDC, aSize, GRA_PU_LOMETRIC )
RETURN oPS
PROCEDURE DestroyDevice( oPS )
LOCAL oDC := oPS:device()
IF oDC <> NIL
oPS:configure()
oDC:destroy()
ENDIF
RETURN
tlb2ch.exe UDC.APIWRAPPER > UDC.CH
- Dateianhänge
-
- udc.zip
- 2. Version mit Aufräumen
- (4.93 KiB) 382-mal heruntergeladen
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Unter Windows 7 liegt der Pfad der Profile übrigens hier:
C:\Users\...\AppData\Roaming\UDC Profiles\...
das Zielverzeichnis bleibt übrigens wie hier eingestellt, evtl. zurücksetzen ?
Die Variablen auf NIL zu setzen hab ich mir gespart, sollte man aber sicher auch noch tun.
Eventuell speichert man die gewünschten Standardvorgaben gleich in deinem Anwendungsprogramm, dann musst du nicht nach BS unterscheiden.
C:\Users\...\AppData\Roaming\UDC Profiles\...
das Zielverzeichnis bleibt übrigens wie hier eingestellt, evtl. zurücksetzen ?
Die Variablen auf NIL zu setzen hab ich mir gespart, sollte man aber sicher auch noch tun.
Eventuell speichert man die gewünschten Standardvorgaben gleich in deinem Anwendungsprogramm, dann musst du nicht nach BS unterscheiden.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: TIF Drucker Universal Document Converter
Ich habe mein Beispiel geändert, dass es eine lokale Profildatei einliest und nach dem Ausdruck den Inhalt wieder auf PDF zurücksetzt.
Allerdings frage ich mich, was passiert wenn zwei Programme gleichzeitig drucken wollen
Allerdings frage ich mich, was passiert wenn zwei Programme gleichzeitig drucken wollen
Gruß
Hubert
Hubert