XPS anzeigen ohne vorher speichern
-
Hallo,
ich erstelle eine Datei, die ich im XPS-Format anzeigen möchte. Der voreigestellte Drucker ist daher der XPS-Drucker:
Printer->PrinterIndex = Printer->Printers->IndexOf("Microsoft XPS Document Writer") Printer->GetPrinter(device, driver, port, hdmode) pdmode = GlobalLock(hdmode) Printer->BeginDoc; SetBkMode(Printer->Canvas->Handle, TRANSPARENT) dc = GetDC(Printer->Handle()) SetMapMode(dc, MM_LOMETRIC) //hier wird jetzt der Drucker "gefüllt" Printer->EndDoc()
Läuft alles prima, nur muss immer gespeichert werden. Ich würde die Datei aber gerne "on the fly" direkt betrachten, ohne den sich immer öffnenden speichern-unter-Dialog zu bestätigen. Hat da jemand einen Rat?
MfG Ingo
-
Bis zum Speichern in eine Datei existieren die Druckdaten nur im Speicher des XPS-Druckers, also einer Fremdanwendung, und auf Speicherbereiche einer Fremdanwendung kannst du nicht zugreifen(*).
Das Problem dürfte sich für alle Datei-Drucker stellen, also auch für die diversen PDF-Erstellprogramme.(*) zumindest wohl nicht ohne extreme WinAPI-Verrenkungen
-
Danke für die Antwort, Jansen.
Dann weiß ich jetzt zumindest, dass es keine praktikable Durckvorschau-Lösung gibt, um der mangelhaften xps-usability Abhilfe zu verschaffen.
MfG Ingo
-
Die Alternative wäre, einen eigenen XPS-Exporter zu schreiben, falls das Format und/oder eine entsprechende API denn dokumentiert sind.
Ist aber vermutlich ein erheblicher Aufwand; wird das XPS-Format denn tatsächlich irgendwo ernsthaft eingesetzt?
-
Jansen schrieb:
Die Alternative wäre, einen eigenen XPS-Exporter zu schreiben, falls das Format und/oder eine entsprechende API denn dokumentiert sind.
Ist aber vermutlich ein erheblicher Aufwand; wird das XPS-Format denn tatsächlich irgendwo ernsthaft eingesetzt?Bei uns
Als Druckvorschau lt. obigem Codeschnipsel leistet das xps-Format sehr gute Arbeit. Die Vorschau stimmt 100%ig mit dem Ausdruck überein. Sollte es einen anderen Treiber geben, der das gleiche leistet, aber nicht zwischenspeichert werden will, wäre das natürlich schön, gefunden habe ich nur noch keinen.