2011-11-07 2 views
1

사용자가 인쇄 버튼을 클릭 할 때 자동으로 PDF 문서를 인쇄하고 싶습니다. 현재 내가하고있는 방식은 PDF를 렌더링하고 서버 디스크에 저장 한 다음 iframe에 표시 한 다음 javascript : print()를 사용하여 iframe의 내용을 인쇄하려고했습니다. 그러나 인쇄되는 것은 빈 html 페이지입니다.IE6에서 프로그래밍 방식으로 자동 인쇄 PDF

표준 HTML 인쇄를 사용하면 인쇄하려고하는 웹 페이지의 레이아웃이 망가져 있기 때문에이 작업을 수행하고 있습니다. 그래서 나는 웹 페이지를 인쇄하기 위해 pdf 형식으로 페이지를 렌더링하고 있습니다. 나는 사용자가 pdf를 저장할 수 있기를 원하지 않기 때문에 나는 pdf 페이지를 인쇄하기 위해 노력하고있다. 따라서 나는 뒤에있는 코드에서 src를 변경하고 페이지를 다시 렌더링 한 다음 js 스크립트를 실행하여 iframe에로드하고 있습니다.

function printPDF() { document.iframe_printArea.focus(); document.iframe_printArea.print(); }

이 PDF iframe을 사용하여 인쇄에로드 된 문서() 또는이도 가능한지를 인쇄 할 수있는 경우 궁금하고있다. 나는 이것에 관해 광범위하게 봤고 아직 웹 애플리케이션을 위해 작동하는 어떤 해결책도 제시하지 못했다. 대부분의 리소스는 C# Windows 응용 프로그램에 사용됩니다. 내가 사용하고있는 플랫폼은 .NET C#입니다.

+2

IE6를 지원하게 만드는 사람은 누구나 죽어가는 원인을 알고 있다는 것을 알아야합니다. http://www.ie6countdown.com/ – epascarello

+0

가능한 [[브라우저에서 PDF를 인쇄하는 방법]] 중복 가능 (http://stackoverflow.com/questions/205180/how-to-print-a-pdf-from-the -browser) – epascarello

+0

브라우저의 인쇄 방법은 PDF 플러그인이 표시하는 내용에 액세스 할 수 없습니다. 따라서 PDF를 인쇄 할 수 없습니다. [브라우저 보안 모델] (http://www.gnostice.com/nl_article.asp?id=145&t=Limitations_of_Web_Applications)이 깨져서 웹 페이지에서 클라이언트의 프린터로 직접 인쇄 할 수 없습니다. Adobe Reader (플러그인 또는 독립 실행 형 응용 프로그램)에 표시 될 때 자동 인쇄 PDF 문서 (http://www.gnostice.com/nl_article.asp?id=157&t=Create_an_Auto-Print_PDF)를 작성하는 것이 좋습니다.)가 자동으로 인쇄 대화 상자 프롬프트를 표시합니다. – BZ1

답변

0

우선 IE6를 다루어야하는 사람은 매우 유감 스럽습니다.

인쇄하기 전에 실행되는 Microsoft에서 개발 한 비표준 DOM 이벤트가 있습니다. 그것은 onbeforeprint 이벤트 (docs)입니다. 당신이 할 수있는 일은 iframe을 제외하고 모든 것을 숨기고 iframe을 인쇄하기 전에 창 크기로 줄이는 것입니다. 인쇄 후 onafterprint 이벤트로 문서를 정상 상태로 되 돌리십시오.

function window.onbeforeprint() 
{ 
    // hide other elements and shrink the iframe 
} 

function window.onafterprint() 
{ 
    // unde what heppened onbeforeprint 
} 
+0

더 많은 도움을 원한다면 바이올린을 만들 수 있습니다 – Mohsen

+0

왜 이럴 수 있습니까? iframe을 인쇄하거나 PDF가 자동으로 인쇄되도록 설정하십시오. 또한 iframe 높이의 100 %를 인쇄하지 않으며 표시되는 부분 만 인쇄합니다. – epascarello

+0

왜냐하면 PDF 파일 URL로 리디렉션하면 URL이 잘못되어 나중에 자바 스크립트가 누락되기 때문입니다! 또한'height '를'document.scrollHeight'가 아니라'100 %'로 줄이는 것을 의미합니다. – Mohsen

관련 문제