문제

열이 많기 때문에 가로 방향으로 인쇄해야 하는 HTML 보고서가 있습니다.사용자가 문서 설정을 변경하지 않고도 이를 수행할 수 있는 방법이 있습니까?

그리고 브라우저 간의 옵션은 무엇입니까?

도움이 되었습니까?

해결책

CSS에서 아래와 같이 @PAGE 속성을 설정할 수 있습니다.

@media print{@page {size: landscape}}

@page가 일부입니다 CSS 2.1 사양 그러나 이것은 size 질문에 대한 답에 의해 강조되지 않습니다. @page {size : landscape}가 더 이상 사용되지 않습니까?:

CSS 2.1은 더 이상 크기 속성을 지정하지 않습니다. CSS3 PAGED 미디어 모듈에 대한 현재 작업 초안은이를 지정합니다 (그러나 이것은 표준이거나 허용되지 않습니다).

언급 한 바와 같이 크기 옵션은에서 나옵니다 CSS 3 초안 사양. 이론적으로는 내 샘플에서 크기가 생략되지만 페이지 크기와 방향으로 설정할 수 있습니다.

지원은 a와 매우 혼합되어 있습니다 버그 보고서는 Firefox에 제출되었습니다, 대부분의 브라우저는이를 지원하지 않습니다.

IE7에서 작동하는 것처럼 보이지만 IE7은 인쇄 미리보기에서 조경이나 초상화를 마지막으로 선택한 사용자를 기억하기 때문입니다 (브라우저 만 다시 시작).

이 기사 이상적이지 않고 브라우저 보안 설정을 변경하는 데 의존하지만 사용자 브라우저에 키를 보내는 JavaScript 또는 ActiveX를 사용하여 제안 된 작업이 있습니다.

또는 페이지 방향이 아닌 콘텐츠를 회전시킬 수 있습니다. 이것은 스타일을 만들고이 두 줄을 포함하는 본문에 적용하여 수행 할 수 있지만 많은 정렬 및 레이아웃 문제를 생성하는 후면도 도출됩니다.

<style type="text/css" media="print">
    .page
    {
     -webkit-transform: rotate(-90deg); 
     -moz-transform:rotate(-90deg);
     filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
    }
</style>

내가 찾은 최종 대안은 PDF에서 조경 버전을 만드는 것입니다. 사용자가 인쇄를 선택하면 PDF를 인쇄 할 수 있습니다. 그러나 나는 이것을 IE7에서 자동 인쇄 작업으로 얻을 수 없었습니다.

<link media="print" rel="Alternate" href="print.pdf">

결론적으로 일부 브라우저에서는 @Page 크기 옵션을 사용하는 것이 쉽지 않지만 많은 브라우저에는 확실한 방법이 없으며 콘텐츠와 환경에 따라 다릅니다. 그렇기 때문에 Google 문서가 인쇄를 선택할 때 PDF를 생성 한 다음 사용자가 열고 인쇄 할 수 있습니다.

다른 팁

내 해결책 :

<style type="text/css" media="print">
    @page { 
        size: landscape;
    }
    body { 
        writing-mode: tb-rl;
    }
</style>

이것은 작동합니다 IE, Firefox 그리고 Chrome

인용 CSS-Discuss Wiki

@PAGE 규칙은 CSS2에서 CSS2.1까지의 범위가 줄어 듭니다. 전체 CSS2 @PAGE 규칙은 오페라에서만 구현 된 것으로 알려져 있습니다 (그리고 그때까지도 마찬가지로). 내 자신의 테스트는 IE와 Firefox가 @page를 전혀 지원하지 않는다는 것을 보여줍니다. 현재 관찰 된 CSS2 사양 섹션 13.2.2에 따르면 사용자의 방향 설정 및 (예 :) 조경의 힘 인쇄를 무시할 수 있지만 관련 "크기"속성은 CSS2.1에서 삭제되었습니다. 현재 브라우저가 지원하지 않습니다. CSS3 PAGED 미디어 모듈에서 복원되었지만 이것은 2009 년 7 월과 같이 작업 초안 일뿐입니다.

결론 : 현재의 @page를 잊어 버리십시오. 조경 방향으로 문서를 인쇄해야한다고 생각되면 디자인을 더 유동적으로 만들 수 있는지 스스로에게 문의하십시오. 실제로는 할 수없는 경우 (아마도 문서에 많은 열이있는 데이터 테이블이 포함되어 있기 때문에) 방향을 조경으로 설정하고 가장 일반적인 브라우저에서 수행하는 방법을 개괄 할 수 있도록 사용자에게 조언해야합니다. 물론 일부 브라우저에는 프린트에 맞는 전형 (수축) 기능 (예 : Opera, Firefox, IE7)이 있지만이 시설을 보유하거나 전환 한 사용자에게 의존하는 것은 무시할 수 없습니다.

CSS를 추가하십시오.

@page {
  size: landscape;
}

당신은 그것을 사용할 수 있습니다 CSS 2 @PAGE 규칙 이를 설정할 수 있습니다 조경에 '크기'속성.

그만큼 size 재산은 언급 한 바와 같이 당신이 뒤 따르는 것입니다. 인쇄시 페이지의 방향과 크기를 모두 설정하려면 다음을 사용할 수 있습니다.

/* ISO Paper Size */
@page {
  size: A4 landscape;
}

/* Size in mm */    
@page {
  size: 100mm 200mm landscape;
}

/* Size in inches */    
@page {
  size: 4in 6in landscape;
}

여기에 대한 링크가 있습니다 @PAGE 문서.

페이지 컨텐츠를 회전시키는 것만으로는 충분하지 않습니다. 다음은 대부분의 브라우저 (Chrome, Firefox, IE9+)에서 작동하는 올바른 CS입니다.

첫 번째 몸체 margin 그렇지 않으면 페이지 마진이 인쇄 대화 상자에서 설정 한 것보다 더 크기 때문에 0에서 0까지. 또한 설정 background 페이지를 시각화하려면 색상.

body {
  margin: 0;
  background: #CCCCCC;
}

margin, border 그리고 background 페이지를 시각화해야합니다.

padding 필요한 인쇄 여백으로 설정해야합니다. 인쇄 대화 상자에서 동일한 마진을 설정해야합니다 (이 예에서 10mm).

div.portrait, div.landscape {
  margin: 10px auto;
  padding: 10mm;
  border: solid 1px black;
  overflow: hidden;
  page-break-after: always;
  background: white;
}

A4 페이지의 크기는 210mm x 297mm입니다. 크기에서 인쇄 여백을 빼야합니다. Page의 컨텐츠 크기를 설정하십시오.

div.portrait {
  width: 190mm;
  height: 276mm;
}
div.landscape {
  width: 276mm;
  height: 190mm;
}

다른 브라우저가 페이지를 조금 다르게 스케일링하기 때문에 277mm 대신 276mm를 사용합니다. 따라서 일부는 2 페이지에 277mm 높이의 콘텐츠를 인쇄합니다. 두 번째 페이지는 비어 있습니다. 276mm를 사용하는 것이 더 안전합니다.

우리는 필요하지 않습니다 margin, border, padding, background 인쇄 된 페이지에서 제거하십시오.

@media print {
  body {
    background: none;
    -ms-zoom: 1.665;
  }
  div.portrait, div.landscape {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
  }
  div.landscape {
    transform: rotate(270deg) translate(-276mm, 0);
    transform-origin: 0 0;
  }
}

변환의 기원은 다음과 같습니다 0 0! 또한 조경 페이지의 내용은 276mm 아래로 이동해야합니다!

또한 초상화와 Lanscape 페이지가 혼합되어 있으면 페이지가 축소됩니다. 설정하여 고정합니다 -ms-zoom 1.665까지. 1.6666 또는 이와 같은 것으로 설정하면 페이지 컨텐츠의 오른쪽 테두리가 때때로자를 수 있습니다.

IE8 또는 기타 기존 브라우저 지원이 필요한 경우 사용할 수 있습니다. -webkit-transform, -moz-transform, filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3). 그러나 현대식 브라우저의 경우 필요하지 않습니다.

비표준 IE 전용 CSS 속성을 사용할 수도 있습니다 글쓰기 모드

div.page    { 
   writing-mode: tb-rl;
}
-webkit-transform: rotate(-90deg); -moz-transform:rotate(-90deg);
     filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);

Firefox에서 작동하지 않지만 16.0.2는 크롬에서 작동합니다.

나는 이 문제를 한 번 해결하려고 시도했지만 모든 연구를 통해 ActiveX 컨트롤/플러그인을 선택하게 되었습니다.브라우저(어쨌든 3년 전)가 인쇄 설정(부수, 용지 크기) 변경을 허용한 트릭은 없습니다.

나는 브라우저 인쇄 대화 상자가 나타날 때 "가로 모드"를 선택해야 한다는 점을 사용자에게 주의 깊게 경고하기 위해 노력했습니다.나는 또한 IE6보다 훨씬 더 잘 작동하는 "인쇄 미리보기" 페이지를 만들었습니다!우리 응용 프로그램에는 일부 보고서에 매우 넓은 데이터 테이블이 있었고 인쇄 미리 보기를 통해 테이블이 용지의 오른쪽 가장자리에서 흘러 나올 때 사용자에게 명확하게 표시되었습니다(IE6도 2장 인쇄에 대처할 수 없었기 때문).

그리고 그렇습니다. 사람들은 지금도 여전히 IE6을 사용하고 있습니다.

<style type="text/css" media="print">
.landscape { 
    width: 100%; 
    height: 100%; 
    margin: 0% 0% 0% 0%; filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=1); 
} 
</style>

이 스타일을 테이블에 적용하려면이 스타일 클래스로 하나의 div 태그를 만들고이 div 태그 내에 테이블 태그를 추가하고 끝에 div 태그를 닫으십시오.

이 테이블은 조경에서만 인쇄되며 다른 모든 페이지는 초상화 모드로만 인쇄됩니다. 그러나 문제는 테이블 크기가 페이지 너비보다 더 많은 경우 행의 일부를 풀고 때로는 헤더도 놓칠 수 있습니다. 조심하세요.

좋은 하루 보내세요.

감사합니다, Naveen Metaply.

조경 설정으로 빈 MS 문서를 만들고 메모장으로 열었습니다. 내 HTML 페이지에 다음을 복사하고 붙여 넣었습니다

<style type="text/css" media="print">
   @page Section1
    {size:11 8.5in;
    margin:.5in 13.6pt 0in 13.6pt;
    mso-header-margin:.5in;
    mso-footer-margin:.5in;
    mso-paper-source:4;}
div.Section1
    {page:Section1;}
</style>



<div class="Section1"> put  text / images / other stuff  </div>

인쇄 미리보기는 페이지를 조경 크기로 표시합니다. 이것은 FF에서 테스트되지 않은 IE와 Chrome에서 잘 작동하는 것 같습니다.

이것은 나에게도 효과가있었습니다.

@media print and (orientation:landscape) { … }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top