2013-03-27 16 views
14

Mój szef poprosił mnie o dodanie przycisku "print" dla pliku HTML. Cóż, window.print(). Ale to nie działa, ponieważ wbudowana w oprogramowanie przeglądarka internetowa została opracowana przez moją firmę. Może nie obsługiwać drukowania.Jak obsługiwać window.print() we wbudowanej przeglądarce internetowej?

W każdym razie muszę to wspierać.

Ta przeglądarka używała WebKit, a wiedziałem tylko trochę o Qt i WebKit.

Jak mogę wdrożyć tę funkcję? Na przykład, jak przeglądarka internetowa radzi sobie z "window.print"?

+6

Sekwencja "window.print" dla portu QT to: window.print-> DOMWindow :: print -> Chrome :: print -> ChromeClient :: print (ChromClientQt.cpp) -> emituj m_webPage-> printRequested Domyślnie QWebPage :: printRequested nie jest podłączony do żadnego gniazda. Powinieneś dodać gniazdo takie jak "LauncherWindow :: print" do (Pokaż okno podglądu i wydrukuj używając QWebFrame :: print). Jeśli twoja dostosowana przeglądarka nie używa portu QT, musisz zaimplementować funkcję "drukowania" dla twojego portu. Mam nadzieję, że to ci pomoże. –

+2

Shen: Myślę, że twój komentarz zasługuje na awans na pełną odpowiedź. Ponieważ jest to właściwa odpowiedź. – peppe

Odpowiedz

0

Rozważ przesłanie zawartości HTML/CSS (lub łącza) przez AJAX do serwera druku po stronie serwera, który następnie renderuje kod HTML i wysyła go do drukarki sieciowej. Inną opcją jest utworzenie wtyczki przeglądarki z interfejsem NSAPI (C++). Inną opcją jest osadzenie apletu Java, który pobiera kod HTML, renderuje go i wysyła do drukarki.

+0

Jak już powiedziałem @twodave, istnieje konfiguracja, aby window.print działał w QT. To będzie odpowiedź na nagrodę. –

0

Zmień plik HTML tak, aby w przypadku wystąpienia argumentu zapytania, takiego jak? Print = 1, automatycznie wywołał on window.print(). Następnie otwórz plik your-file.html? Print = 1 w oddzielnym procesie przeglądarki.

+0

W zestawie webcit-c, musisz ustawić delegata, aby działał window.print(). Qt, podobno, potrzebuje czegoś takiego, aby uczynić także Window.print(). Potrzebne jest anwser do tego pytania. –

+0

Ach, masz rację. Musiałem źle odczytać. Zamierzam upomnieć faceta, który znał odpowiedź. – Dave

Powiązane problemy