2009-07-08 6 views
21

제가 말씀 드렸듯이 사용자는 대화 상자를 표시하지 않고 직접 인쇄물을 보낼 수있는 웹 기반 응용 프로그램 기능을 만들었습니다. 인쇄, 간단! 하지만 나를 위해 :(.인쇄 팝업 창이없는 브라우저에서 직접 인쇄

, 최선의 선택 일 것입니다 무슨 제안 내가 (기술)을하는 방법을 작성해야 바랍니다.

주십시오 제안!

감사합니다.

편집을 : 인쇄물을 사용자의 기본 프린터로 보내야합니다.

+0

내가 이미 옵션이 ActiveX 컨트롤을 만들어 IE 가능하다고 preassumed했다() 인쇄()보다는 window.print를 사용합니다. 그러나 이것이 vbscript를 통해서도 가능하다는 것을 기억하지 못했습니다. 운이 좋았고 이것을 찾았습니다 : http://msdn.microsoft.com/en-us/library/ms976105.aspx 아직 시도하지는 않았지만 이것은 나에게 구할 수있는 유용한 알림을 제공합니다. 내 손이 activeX에서 더러운 –

+0

나는이 스레드가 슈퍼 오래된 것을 알아요. https://github.com/apinprastya/pulas – Apin

+0

몇 가지 다른 브라우저 인쇄 솔루션을 사용할 수 있습니다. http://stackoverflow.com/a/28783269/3196753 – tresf

답변

13

다른 브라우저에 대한 해결책을 찾을 수 없습니다. 이 질문을 게시했을 때 IE는 에 우선 순위가 높았으며 기꺼이 내가 을 찾았습니다. 다른 브라우저 (firefox, safari, opera)에 대한 해결책이 인 경우 여기에서 공유하십시오. 감사합니다. . 호출 이제

<script language='VBScript'> 
Sub Print() 
     OLECMDID_PRINT = 6 
     OLECMDEXECOPT_DONTPROMPTUSER = 2 
     OLECMDEXECOPT_PROMPTUSER = 1 
     call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) 
End Sub 
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>" 
</script> 

, :

VBSCRIPT이 훨씬 더 편리 VB6 또는 C#/VB.NET의 ActiveX를 만드는 것보다

<a href="javascript:window.print();">Print</a> 

이 팝업 인쇄 창이없는 인쇄를 보낼 것입니다.

+0

Javascript에서 똑같은 코드를 구현하려고했지만 작동하지 않았습니다. VBScript에서만 가능합니다. VBScript에서는 작동하지만 Javascript에서는 작동하지 않는 이유는 무엇입니까? –

+0

@ Jordao 위의 구성 변수는 vbscript의 멤버 일뿐입니다. 위의 스크립트에서 주로 수행하는 작업은 구성 변수를 다시 설정하는 것입니다. 이것은 귀하의 질문에 대한 본능입니다. –

+0

참조하는 변수는 단지 상수입니다. 그들은 Javascript에서 동일하게 작동해야합니다. –

1

이럴 가능성이 있습니다. 표시되는 대화 상자에서 인쇄 할 프린터를 선택할 수 있습니다. 응용 프로그램에서 클릭하여 인쇄 할 수 있고 사용자가 인쇄 버튼을 클릭하지만 컴퓨터에 연결된 두 대의 프린터가 있습니다. 또는 해당 사용자가 25 대의 프린터가있는 사무실 건물에서 작업하는 경우 일 수 있습니다. 이 대화 상자가 없으면 컴퓨터가 어떤 프린터를 인쇄할지 어떻게 알 수 있습니까?

+0

ActiveX는 어때요? 사용자의 기본 프린터에서 인쇄물을 보낼 IE 용 컨트롤. 이것은 꽤 할 수있는 것처럼 보입니다. 그러나 이러한 액티브 X를 만드는 데 많은 시간을 투자하면 IE 사용자에게만 기능을 제공 할 수 있습니다. –

+0

Zachary, 위의 스크립트는 팝업 창을 표시하지 않고 기본 프린터 컴퓨터에서 인쇄 명령을 보냅니다. 그러나 이것은 IE 전용입니다. 나는 이것이 우리가 가진 의심에 대답하기를 바랍니다 :) –

+0

오 와우, 나는 VBScript를 사용한다고 생각조차하지 않았다. 잘됐다, 라미즈 IE 만 사용한다면 완전히 설정됩니다. D –

-3

이것은 작동해야합니다, 나는 혼자 힘으로 시도했고 그것은 나를 위해 일했습니다. false 대신 True를 전달하면 인쇄 대화 상자가 나타납니다.

+0

부울 매개 변수가있는 Java 스크립트에서 사용할 수있는 print() 메소드가 없습니다. –

+0

당신이 이것을 할 수 있다고하더라도, 독점적 인 이유로 나는 구현하지 않을 것입니다. 특정 응용 프로그램이 특정 하위 집합의 작업에서 사용되지 않는 한. 내 프린터가 페이지를 방문하고 인쇄 할 내용을 확인하지 않고 자동으로 인쇄하는 경우를 상상해보십시오. 1. 나는 내가 인쇄하고 싶은지 물어 보지 않았기 때문에 가능한 바이러스가 있다고 생각한다. 2. 나는 사람들의 기계에 수많은 종이를 낭비 할 것이다. 15 페이지 보고서 중 1 페이지 만 원하는 경우에는 어떻게됩니까? End LESSION : 인쇄 프로토콜을 거치지 않고 인쇄하지 마십시오. – Spoo

3

AttendStar는 인쇄 대화 상자를 표시하지 않고 대부분의 Firefox 버전에서 모든 머리글과 바닥 글을 제거하는 무료 추가 기능을 만들었습니다. . 당신이 $ ('IMG')를 사용할 수 있습니다에 해당 기능으로

https://addons.mozilla.org/en-US/firefox/addon/attendprint/

jqprint(); jquery에 대한 jqprint는 웹 애플리케이션에서 자동으로 호출 된 이미지 만 인쇄합니다.

3

IE9는 IE7과 IE8 do처럼 window.print()를 호출하여 Print() VBScript를 트리거하는 기능을 지원하지 않으므로 window.print()가 항상 IE9의 인쇄 대화 상자를 트리거합니다.

수정 사항은 매우 간단합니다. onclick 이벤트에서 window.print() 대신 Print()를 호출하면됩니다.

필자는 다른 질문에 대한 답변에서 약간 수정 된 HTML 구문을 사용하는 작업 코드 예제 (가능하면 작업 코드로 테스트되는 동안)에 대해보다 자세히 설명했습니다.

당신은 여기에 샘플 코드를 찾을 수 있습니다

Bypass Printdialog in IE9

0

this.print (거짓)를;

Chrome, Firefox 및 IE에서이 기능을 사용해 보았습니다. Firefox와 IE에서만 작동하며 기본 프린터 설정을 사용하는 기본 프린터를 사용하며 PDF를 렌더링 할 때만 작동합니다 (안전한 읽기 모드로 Foxit Reader를 사용할 수 없음). 크롬은 HTML 페이지를 렌더링 할 때 인쇄 대화 상자와 다른 브라우저를 보여줍니다.

0

IE 브라우저의 경우 "VBScript 솔루션"이 작동합니다. Bypass Printdialog in IE9에서 @purefusion에서 언급 한 바와 같이

그러나,