문제

PDF가 포함 된 웹 페이지가 있습니다. 내 코드는 다음과 같습니다.

<embed
    type="application/pdf"
    src="path_to_pdf_document.pdf"
    id="pdfDocument"
    width="100%"
    height="100%">
</embed>

PDF 인쇄를위한이 JavaScript 코드가 있습니다.

function printDocument(documentId) {

    //Wait until PDF is ready to print    
    if (typeof document.getElementById(documentId).print == 'undefined') {

        setTimeout(function(){printDocument(documentId);}, 1000);

    } else {

        var x = document.getElementById(documentId);
        x.print();
    }
}

이 코드가 실행되면 Acrobat 플러그인은 잘 알려진 인쇄 대화 상자를 열어줍니다. 이 같은:

PrintDialog

두 가지 질문 :

  • PDF가로드되고 인쇄 준비가되었음을 감지하는 방법을 개선하는 방법은 무엇입니까?
  • 인쇄 대화 상자 표시를 피하는 방법은 무엇입니까?

내 시스템에 대한 조금 더 많은 정보 :

OS : 윈도우 XP

브라우저 : 인터넷 익스플로러 7

PDF 플러그인 : Acrobat Reader 9

도움이 되었습니까?

해결책

평범한 오래된 JavaScript로 조용히 인쇄 할 수 없습니다. 프린터가 어떻게 모든 검은 색의 100000000 페이지를 인쇄하기 시작하겠습니까? 좋은 일이 아닙니다. 조용히 인쇄하고 인터넷 익스플로러에 대해서만 작동하려면 활성화 컨트롤이 있습니다. 이를 위해서는 페이지와 사용자가 사이트를 실제로 신뢰할 수있는 더 높은 보안 설정이 필요합니다.

다른 팁

이것은 신뢰할 수있는 인트라넷 환경에서 가능합니다.

<object id="pdfDoc" style="position:absolute;z-index:-1;" name="pdfDoc" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="900px" height="100%">
        <param name="SRC" value="yourdoc.pdf" />
    </object>

<input type="button" ... onclick="pdfDoc.printAll();" />

이것은 인쇄 대화 상자를 우회하고 기본 프린터로 직접 전송됩니다.

인쇄하기 전에 실제로 기다려야하는지 궁금합니다. 인쇄 작업이 처리하지 않습니까? 그리고 나는 현대식 브라우저가 당신 (또는 그 문제에 대한 웹 사이트)이 확인 대화 상자없이 인쇄 할 수 없기를 바랍니다 (오래 전에 오래된 브라우저).

변경하여 Firefox 에서이 작업을 수행 할 수 있습니다 about:config. 추가하다 print.always_print_silent 그리고 그것을 설정하십시오 true.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top