2012-06-20 2 views
0

내 웹 응용 프로그램의 기본은 많은 창백한 타일로 구성된지도입니다. B/W 프린터를 사용하여이 페이지를 인쇄 한 결과는 매우 끔찍합니다.JavaScript/HTML의 대비 레이어

지도에서 일부 레이어를 배치 할 가능성이 있습니까? 더 명암비가 높아 집니까?

(인쇄 모드에서 타일 교체는 좋지 않습니다.)

답변

0

두 경로가 있습니다.

<link rel="stylesheet" href="printstyle.css" media="print" /> 

하거나, 미디어 없음 선언과 일반 CSS 파일에

@media print { 
    #my-map-element { 
     display: none; /* just for an example */ 
    } 
} 

다른 방법은 인쇄 이벤트가 발생하면 자바 스크립트 함수를 호출하는 것입니다 : 먼저 다음과 같이 인쇄 스타일 시트를 추가하고있다.

window.onbeforeprint = function() { /* ... */ } 

당신이 자바 스크립트에서 인쇄 이벤트를 생성하는 경우, 다음과 같은 코드를 사용하여 브라우저 호환성 문제를 해결할 수 있습니다 그러나, 이것은 내가 아는까지로, 파이어 폭스 6 +와 IE에 의해 지원됩니다 :

(function(){ 

    // make a copy of the native window.print 
    var _print = this.print; 

    // create a new window.print 
    this.print = function() { 
    // if `onbeforeprint` exists, call it. 
    if (this.onbeforeprint) onbeforeprint(this); 
    // call the original `window.print`. 
    _print(); 
    // if `onafterprint` exists, call it. 
    if (this.onafterprint) onafterprint(this); 
    } 

}()) 

(출처 : https://stackoverflow.com/a/3339821/300011)

관련 문제