2010-11-21 8 views
1

나는 HTML 형식의 보고서를 생성하고 있으며 Qt를 사용하여 보고서를 자동으로 인쇄하려고합니다 (qt는 웹킷 기반 브라우저가 있으며 PDF 파일의 내용을 렌더링 할 수 있음). 대상 페이지 크기에 따라 보고서의 요소를 배치하려고합니다. 그 이유는 용지 크기 (픽셀 단위)에 액세스해야하기 때문입니다.자바 스크립트에서 인쇄 용지의 치수를 찾는 방법

저는 웹킷을 사용하고 있기 때문에 모든 최신 html5 및 css3 기능을 갖추고 있습니다.

자바 스크립트 안에 인쇄 된 페이지 속성에 액세스 할 수있는 API가 있습니다. 예를 들어, 쓰기 좋은 것 : window.print_paper.width 또는

미리

답변

2

에 감사 window.print_paper.height이 불가능합니다. Javascript는 프린터에 액세스하여 용지 크기를 감지 할 수 없습니다. pt, 인치, 센티미터와 같은 다른 단위를 사용해야하므로 픽셀 측정을 사용할 수도 없습니다.

3

standards-track @page spec에서 거꾸로 문의하십시오. CSS3 페이징 된 미디어 (@page)가 할 수있는 것은 문서를 인쇄 할 방향과 페이지 크기를 지정하는 것입니다. 현재 선택한 방향과 페이지 크기를 시스템에 문의하지 않습니다. CSS3 미디어 쿼리 항목조차도 내 지식을 최대한 활용하여이 작업을 수행 할 수 없습니다.

+0

여기에 업데이트가 있습니까? 간단히 설명하십시오 : 답은 기본 인쇄 용지 크기 (CSS 또는 JavaScript 제외)를 전혀 얻을 수 없음을 의미합니다. 적어도 추측을 내릴 수 있습니까? –

+1

아니요, 불가능합니다. A4 언어와 스니핑 언어에 대한 교육적 추측을 할 수 있습니다. –

+1

그리고 브라우저 언어를 보는 것은 미국, 캐나다, 멕시코가 레터 크기를 사용하고 있고 거의 모든 다른 국가에서 A4를 사용하고 있기 때문에 꽤 나쁜 접근 방식입니다. 그래서 영어는 비교적 혼합되어 있습니다. –

0

QWebFrame :: contentsSize()를 통해 콘텐츠 크기를 가져 와서 JavaScript 세계에서 사용할 수 있도록 할 수 있습니다. QWebFrame :: addToJavaScriptWindowObject()를 사용하여.

2

Accept-Language 요청 헤더를 사용하여 사용자가 in a Letter-using locale인지 확인합니다. 그렇지 않으면 A4라고 가정합니다. 사용자에게 적합한 경우 초상화를 사용하십시오. 그런 다음 브라우저에서 여백을 추측 해 봅니다 (IE9 = 19.05mm, FF5 = 12.7mm, IE6 = 7.5mm, Chrome = ~ 10mm).

관련 문제