2013-03-27 15 views
14

Patronum bir HTML dosyası için "print" düğmesi eklememi istedi. Peki, window.print(). Ancak bu işe yaramaz çünkü yazılımda gömülü olan web tarayıcısı şirketimin kendisi tarafından geliştirildi. Yazdırmayı desteklemiyor olabilir. Her neyse, bunu desteklemeliyim.Katıştırılmış bir web tarayıcısında window.print() nasıl desteklenir?

Bu web tarayıcısı WebKit kullanıyordu ve ben sadece Qt ve WebKit hakkında bir şeyler biliyordum.

Bu özelliği nasıl uygularım? Örneğin, web tarayıcısı "window.print" ile nasıl ilgilenir?

+6

QT bağlantı noktası için 'window.print' sırası: window.print-> DOMWindow :: print -> Chrome :: print -> ChromeClient :: print (ChromClientQt.cpp) -> emit m_webPage-> printRequested Varsayılan olarak, QWebPage :: printRequested, herhangi bir yuvaya bağlı değil. 'LauncherWindow :: print' do gibi bir yuva eklemelisiniz (Bir önizleme iletişim kutusu göster ve QWebFrame :: print kullanarak yazdır). Özelleştirilmiş web tarayıcınız QT bağlantı noktasını kullanmıyorsa, bağlantı noktanız için 'yazdırma' özelliğini uygulamanız gerekir. Umarım size yardımcı olabilir. –

+2

Shen: Sanırım yorumunuz tam bir cevaba yükseltilmeyi hak ediyor. Doğru cevap olduğu gibi. – peppe

cevap

0

HTML/CSS (veya bir bağlantı) içeriğini bir sunucu tarafı yazdırma sunucusuna göndererek, HTML'yi oluşturup ağ yazıcısına gönderir. Başka bir seçenek NSAPI (C++) ile bir tarayıcı eklentisi oluşturmaktır. Başka bir seçenek de HTML'yi alan, işleyen ve yazıcıya gönderen bir Java uygulamasını gömmektir.

+0

@ twodave'ye söylediğim gibi, window.print'in QT'de çalışması için bir ayar var. Bu ödülün cevabı olacak. –

0

HTML dosyasını, baskı = 1 gibi bir sorgu dizesi argümanı varsa otomatik olarak window.print() işlevini çağıracak şekilde değiştirin. Ardından, kendi-file.html? Print = 1'inizi ayrı bir tarayıcı işleminde açın.

+0

Nesne-c webkit'te window.print() işlevi için bir temsilci ayarlamanız gerekir. Qt, sözde, window.print() de yapmak için böyle bir şey gerekir. İhtiyaç duyulan şey, bu sorunun anwser'idir. –

+0

Ah, haklısın. Yanlış okumalıyım. O zaman cevabı olan kişiyi kabul et. – Dave

İlgili konular