Silent Printing mit TideSDK

8

UPDATE: Ich habe beschlossen, appjs anstelle von TideSDK für mein Projekt zu verwenden. Mit AppJS können Sie problemlos Knotenmodule erstellen, in denen Sie C ++ - Module für die einfache Verwendung von Silent Printing hinzufügen können. Ich würde jedem empfehlen, der an dem Thema interessiert ist, es zu überprüfen. Viel Glück euch allen!

Ich entwickle eine Anwendung mit TideSDK - Es ist ein wirklich toller Rahmen, wenn Sie es nicht ausprobiert haben, nehmen Sie sich etwas Zeit!

Wie auch immer, ich versuche, mit Javascript zu drucken, aber es erscheint jedes Mal ein Dialogfeld für die Druckeinstellungen, wie es bei anderen Browsern der Fall wäre. Ich versuche, diese Box zu beseitigen und den Drucker weiterzugeben, mit dem ich drucken möchte.

Ich bin mir bewusst, dass es in FireFox Einstellungen für den stillen Druck gibt, das ist, was ich vorher benutzt habe, aber es gibt keine ähnlichen Optionen für TideSDK (die ich gefunden habe).

Nach einer Menge Forschung, denke ich, bestehen die einzigen realisierbaren Optionen aus einem Python-Skript, einem C ++ - Modul oder der Bearbeitung der TideSDK-Quelle und der Neukompilierung. Alle drei klingen für mich wie Verlierer. Das Ändern der TideSDK-Quelle und das Entfernen des Dialogfelds von webkit_ui_delegate.cpp wird höchstwahrscheinlich zu einigen Problemen beim Aktualisieren dieses Programms führen - zusätzlich dazu, dass der Druckername nicht einfach übergeben werden kann. Das Python-Skript würde Module von Drittanbietern erfordern und müsste den Inhalt der Seite verarbeiten. Ich bezweifle, dass ich in der Lage wäre, etwas zu schreiben, das in dieser Hinsicht eine gute Arbeit leisten könnte. Schließlich denke ich, dass die C ++ - Lösung das Machbarste ist, da sie Zugriff auf win32api hat, aber wiederum müsste sie HTML in eine Drucksprache verarbeiten, etwas, mit dem ich nicht vertraut bin. Ich denke, ich suche mehr nach einer Webkit-Lösung, die das Rendering für mich übernimmt.

Was muss ich tun, um stilles Drucken auf TideSDK zu implementieren? Bitte fügen Sie Codebeispiele hinzu.

  

Ich suche hauptsächlich nach einer Windows Lösung, die ich bereits herausgefunden habe   die anderen Plattformen.

Vielen Dank für Ihre Zeit und ich schätze das Feedback!

    
Jonathan 10.01.2013, 23:34
quelle

2 Antworten

0

Es ist traurig, dass diese Frage keine qualitativen Antworten bekommen hat, das möchte ich selbst umsetzen.

Ich denke, es wäre ein ziemliches Unterfangen, die Zeit zu investieren, die erforderlich ist, um diese Funktion mit TideSDK zu kombinieren. Aus diesem Grund werde ich mich von den Kernkompetenzen der Frage entfernen und empfehlen, dass Sie einen anderen Rahmen als TideSDK versuchen, um dies zu erreichen. Ich denke, das ist die realistische Lösung für dieses Problem, und es wird die sein, die ich nehme.

Ich werde diese Antwort aktualisieren, sobald ich den Rahmen gefunden habe, an dem ich festhalte.

    
Jon Sheppard 19.01.2013, 23:18
quelle
1

HINWEIS : Dies ist eine Neuschreibung einer früheren Frage.

Die Funktionsweise von Windows / GDI + funktioniert so, dass ein PrintDialog verwendet wird, um eine Drucker-ID abzurufen (und um den Benutzer darüber zu informieren, auf welchen Drucker gedruckt wird). Um also stumm zu drucken, müssen Sie eine Druckerkennung erhalten, ohne einen Dialog anzuzeigen.

Also REMOVE diesen Code:

%Vor%

Und dann ersetzen Sie die letzte Zeile ( HDC hdc = ... ) mit einer anderen Möglichkeit, einen Drucker HDC zu bekommen. Sie können GetDefaultPrinter() verwenden den Namen des Standarddruckers und dann eine HDC mit CreateDC() .

Optional können Sie einen Drucker auswählen oder einen benutzerdefinierten Druckdialog erstellen, indem Sie EnumPrinters() Funktion.

    
waddlesplash 20.01.2013 17:36
quelle

Tags und Links