2011-01-31 17 views
17

Geçerli sayfayı yazıcıya yazdırmayı başlatmak için bir yol gerektiren dahili bir Google Chrome Uzantısı geliştiriyorum. Varsayılan Yazdırma iletişim penceresinin gelmesini istemiyorum (bu nedenle javascript: window.print() söz konusu değil).Google Chrome Uzantısı: Sayfayı sessizce yazdırın

Anlayabildiğim kadarıyla, bu sadece JS + HTML eklentisiyle mümkün değil, bu yüzden NPAPI eklentisini de kullanıyorum (aynı zamanda bir kukla mim tipiyle). Ve sadece Windows platformu için endişeleniyorum.

Mümkünse, çeşitli çözümlere/geçici çözümlere de açığım. Standart bir çözüm güzel olsa da.

Bunun mümkün olmadığını düşünüyorsanız, herhangi bir özellik isteğini biliyorsanız, lütfen bildirin.

Herhangi bir öneri/işlemlerini bekliyoruz ..

+1

Uzantıyı hiç bitirdiniz mi? Tam olarak aradığım şey ... –

+0

Hayır, sessiz yazdırma için hiçbir şey yapamadım. :( –

cevap

0

Geçerli web sayfasının anlık görüntülerini almak çeşitli uzantıları (örneğin, this one) vardır; Görüntüyü bir yazıcıya bir NPAPI eklentisi aracılığıyla göndermek için uyarlayabilirsiniz.

+0

Ekran görüntüsünü kullanmadan farkında/düşünmenin başka bir yolu var mı? Ayrıca, bana "görüntüyü bir yazıcıya nasıl göndereceğiniz" konusunda bana bilgi verebilir misiniz? –

+0

ekran görüntüsü, bağlandığım eklentiye bakın. Aslında, görüntüyü (görüntüde kaydırılan kısımlar da dahil olmak üzere) bir görüntüye dönüştürür, ekran görüntüsü almaz .. – smorgan

+0

Yerel yazdırma kodunu nasıl yazacağınızı öğrenmeniz gerekiyorsa Windows, yeni bir soru göndermeyi öneririm: Chrome uzantıları ve NPAPI için tamamen teğettir. – smorgan

1

NPAPI, bir nesne etiketiyle (bir uzantıdan kullanabilirsiniz) etkileşimde bulunabileceğiniz yerel C++ eklentileri oluşturmanıza olanak sağladığından, muhtemelen bunu yapmanın yolu olacaktır.

Zor olan bit, sayfayı yazdırmak için bitleri almanın iyi bir yolunu bilmem. Buna benzer bir şeyi kimin yaptığını bildiğim tek kişi, tarayıcı için pencere tanıtıcısını (NPAPI aracılığıyla kullanılabilir) aldı ve bu şekilde yazdırmak için parçalarını kazıdı, ancak bu, baskı stil sayfalarını veya herhangi bir şeyi hesaba katmaz. . Yazdırma iletişimini denetlemeye çalışmak için otomasyon olaylarını kullanmayı da deneyebilirsiniz, ancak bunun işe yarayıp yaramadığına dair hiçbir fikrim yok.

Tasarım gereği, tarayıcılar, neyse ... herhangi bir web sitesi sadece onay olmadan yazıcıya baskı şeyler başlayabileceğini eğer bazı ciddi açıkları açabileceğini gibi, böyle bir şey yapmak izin vermemeye

deneyin eğer C++ ile yapmanın bir yolunu bulmak için NPAPI eklentisinin oluşturulmasını kolaylaştırmak amacıyla FireBreath'u kullanabilirsiniz.

+1

"Zor olan bit, sayfayı yazdırmak için bitleri öğrenmenin iyi bir yolunu bilmem." <- Bu bölüm – smorgan

16

Krom (v18 +) 'da, --kiosk --kiosk-printing anahtarlarımız var. Baskı onay olmadan otomatik olarak varsayılan yazıcıya yazdırabilirsiniz.

Sen Geçenlerde benzer bir yetenek arıyordum bu video http://www.youtube.com/watch?v=D6UHjuvI7IE

+0

Eklenti seviyesi yerine bir uzantı seviyesi yapılabilir – dfrankow

+0

Bu seçenekler chrome: // flags'de de kullanılabilir mi? Yoksa sadece komut satırı mı? –

+0

Chrome, etiket yazıcımızla iyi çalışmıyor. IE, büyük olurdu benzer bir geçiş vardı! –

0

onu görebilirsiniz ve Chrome'un yeni yerli mesajlaşma API kullanarak oldukça mümkün olacak gibi görünüyor.

https://developer.chrome.com/extensions/nativeMessaging

Orada C# ile bu örnekleri bol, ama burada

Native messaging from chrome extension to native host written in C#

Bunun olabileceğini biliyoruz temel C# uygulaması ile giderme Chrome'un kendi mesajlaşma tek bir hızlı örnektir gün geç ve bir dolar kısa, ama başka birinin bu soruyla karşılaşması durumunda, bu benim için çalışan çözüm. C# uygulamasının içinden, PrintDocument sınıfını kullanarak yüklü yazıcılara doğrudan yazdırabilirsiniz. Sayfa görüntüsünü elde etmenin bir yolunu bulursanız, bu, ateş tuğlası veya NPAPI kullanmaktan çok daha kolay olurdu.