화면 스타일 시트로 인쇄하려면 어떻게합니까?


49

내가 사용하는 많은 웹 사이트는 인쇄 매체에 대한 스타일 시트가 실제로 좋지 않지만 화면 스타일 시트는 상당히 좋습니다.

브라우저에서 인쇄 스타일 시트를 무시하고 화면 스타일 시트로 인쇄하도록 지시 할 수있는 방법이 있습니까?

또한 고객들에게이 둘의 차이점을 보여주고 싶을 때이 작업을 수행하고 싶습니다.


문제의 웹 사이트가 제 3자인 경우 Chrome 개발자 도구 (Ctrl + Shift + I)를 사용해보고 노드 / 요소 (이 경우 인쇄 스타일 시트)를 마우스 오른쪽 버튼으로 클릭하고을 선택 Delete This Node합니다.
— DavChana

중복입니다!
— vy32


파이어 폭스에, 당신은 단지 모든 링크가 인쇄 미리보기에 자신의 모든 URL을 연결되어 있는지 짜증하는 경우 귀하의 질문에 아니 직접적인 대답은하지만, (생각 누구든지이에 대한 좋은 생각이 필요하다 die (http://www.have-an-agonizingly-slow-and-painful-death!!!.com)) 열어 요소 검사 (개발 도구를 ) 로 이동 스타일 편집기 편리한 사용, @media 규칙 과 스타일 찾기 위해 오른쪽에 나열을 print한 후 모두 제거 스타일을 print규칙에 적용 a[href]. 그런 다음 인쇄 미리보기를 다시 시작하십시오.
— ADTC

답변:


24

Chrome 개발자 도구 ( Ctrl+ Shift+ I)를 사용하는 것이 내가 찾은 유일한 방법입니다.

  1. media="screen"해당 속성 의 모든 인스턴스를 검색 하고 삭제하십시오.
  2. 그런 다음 media="print"전체 링크를 검색 하고 삭제하십시오.
  3. 그런 다음 인쇄를 시도하십시오.

이것은 일반적으로 화면 스타일이있는 페이지를 제공합니다.

인쇄 스타일 만 비활성화하려는 경우 웹 개발자 확장을 설치할 수 있습니다 (Firefox 및 Chrome 용 버전이 있다고 생각합니다). 인쇄 스타일을 비활성화하는 버튼이 있습니다. 그러나 인쇄 할 "스크린"스타일을 확장하지 않으므로 대부분 원하는 방식으로 작동하지 않습니다.


1
감사. 좋은 해결책입니다. 우울하지만 훌륭합니다. 내가 문제를 겪고있는 주요 웹 사이트는 Wired이며, 어떤 이유로 든 끔찍하게 인쇄되지만 화면에는 멋지게 보입니다.
— vy32

이 작업을 수행하는 플러그인이 필요합니다.
— vy32

3
@ vy32 그것은 전혀 나쁜 생각이 아닙니다. 한동안 Chrome 확장 프로그램을 사용하고 싶었습니다. 휴일 동안 나는 마침내 두 시간을 보내었다. 여기에 페이지에 사용자 정의 인쇄 / 화면 CSS 미디어 선택기가있을 때 클릭하는 작은 버튼 인 PrintScreen이 있습니다. 링크
— James

PrintScreen 버튼이 제대로 작동하지 않습니까 ???
— vy32

1
이것이 사용자 경험 문제라고 생각합니다. 일반적으로 사용자 경험에 더 중점을 두었지만 이번에는 새로운 기술과 시스템을 가지고 놀았으며주의를 기울이지 않았습니다. PS 버튼을 클릭 한 후 일반적인 방법으로 인쇄를 클릭해야합니다. 당신이 옳습니다. 확장 전화 번호를 직접 인쇄하면 더 합리적입니다. 이번 주에 시간이 있으면 확장 프로그램을 업데이트하여 인쇄 화면으로 바로 이동하도록 시도합니다. 감사합니다
— James

17

다음은 제임스의 생각을 하지만, jQuery를 사용하여 :

$('*[media="screen"],*[media="print"]').attr('media', '')

페이지에 jQuery가 없으면 다음을 삽입하십시오.

var el = document.createElement('script'); el.type = "text/javascript"; el.src = "http://code.jquery.com/jquery-latest.pack.js"; document.body.appendChild(el);

11

개발자 도구에서 미디어 에뮬레이션을 직접 선택하는 새로운 방법이 있습니다 ( https://stackoverflow.com/questions/9540990/using-chromes-element-inspector-in-print-preview-mode/ 참조).


1
작동합니다. 지침에 따라 "스크린"매체 종류를 선택하십시오. 그런 다음 인쇄 할 때 "스크린"을 사용합니다
— Carl G

소프트웨어가 발전함에 따라 스택 교환 답변도 선택해야합니다.이 답변은 선택된 답변이어야합니다.
— Michaël

5

레오는 거기에 좋은 생각 이 있었지만 제임스가 말한 것을 제대로 수행하지 못했습니다 .

$('*[media="screen"]').attr('media', '');$('*[media="print"]').remove();

힌트 : 다음을 북마크릿으로 저장하여 쉽게 사용할 수 있습니다.

javascript:var%20el=document.createElement('script');el.type="text/javascript";el.src="http://code.jquery.com/jquery-latest.pack.js";document.body.appendChild(el);setTimeout(function(){$('*[media="screen"]').attr('media','');$('*[media="print"]').remove();},%202000)

이것은 jQuery를 미리로드하고 완료되기까지 2 초를 기다립니다. 그러나이 대기가 충분하지 않으면 다시 실행하면 jQuery가 그 동안로드되어야합니다.


5

Chrome 에서 쉽게 할 수있는 방법을 찾았습니다 .

CSS 미디어 에뮬레이션에서 개발자 도구> 렌더링> '화면'을 선택하십시오.

이제 인쇄 해보십시오. Print CSS 대신 화면 CSS를 선택합니다.


어떤 웹 브라우저?
— vy32

Chrome 브라우저에서
— dj rock

이것은 작동하고 가장 빠른 솔루션입니다!
— Laurent

현재 Chrome에서 더 구체적으로 : 개발자 도구 열기. 오른쪽 상단 3 도트 메뉴> 추가 도구> 렌더링. CSS 미디어 에뮬레이션으로 스크롤하십시오.
— Laurent

4
  1. 아무것도 수행 제임스가 말했다 )

    Chrome 개발자 도구 설정 (오른쪽 하단 모서리)을 여는 출력을 확인하고 "재정의"옵션에서 "CSS 미디어 인쇄 에뮬레이션"-보기를 선택할 수 있습니다. 이 옵션을 전환하면 인쇄 및 화면보기를 비교할 수 있습니다. 즐기세요!

  2. 이 애드온을 설치하십시오 : https://chrome.google.com/webstore/detail/print-background-colors/gjecpgdgnlanljjdacjdeadjkocnnamk

이제 배경 이미지와 색상도 인쇄됩니다.

버그 : CSS 스프라이트에서는 작동하지 않습니다.

편집 : Chrome은 2014 년에 인쇄보기를 변경 했으므로 더 이상 연결된 애드온을 사용할 필요가 없다고 생각합니다.


Chrome 개발자 도구를 사용하여 'CSS 미디어 에뮬레이션'을 '스크린'으로 설정하는 것이 유일한 해결책입니다.
— Benjamin

3

@media printand를 사용하여 단일 CSS 파일이있는 웹 사이트 에서이 문제에 부딪 쳤 @media screen으므로 별도의 인쇄 CSS 파일을 비활성화하는 솔루션이 작동하지 않았습니다. 페이지를 보면서 CSS를 편집하고 인쇄 블록을 주석 처리 할 수는 있지만 이러한 변경 사항은 인쇄 미리보기로 넘어 가지 않았습니다.

내가 찾은 해결책은 Firefox 및 Chrome 용 인쇄 편집 확장 프로그램이었습니다 . 인쇄 직전에 페이지를 편집 할 수 있으며 페이지에 웹 스타일 ( @media screen) 을 사용하는 간단한 버튼이 포함되어 있습니다 .

브라우저가 대략 16 : 9 인 반면 인쇄면은 약 17:22 비율이므로 페이지의 일부 내용이 가로로 약간 혼잡 해지 기 때문에 인쇄 면적은 약 17:22 비율이므로 약간 씩 인쇄 해야하는 배율을 변경해야했습니다. 또한 배경색과 이미지를 별도로 인쇄해야했습니다.


이것은 나를 위해 완벽하게 작동했습니다. 프린터에 잉크가 부족하여 사이트 텍스트를 자주색으로 변경하는 데 10 분이 걸렸습니다. 이 솔루션을 사용하여 확장 프로그램을 설치하고 웹 스타일 버튼과 작동하는 wallah를 누를 수 있습니다 :)
— Chris Nevill

1

때때로 웹 사이트는 CSS를 사용하여 화면에 인쇄 할 때 다른 스타일 을 사용하도록 지정합니다 . 이것은 종종 좋지만 혼란스럽고 문제가 될 수도 있습니다. 페이지의 소스 코드를 검사하고 다음과 같은 것을 찾으십시오.

@media print {
  *:after {
    color: #000 !important;
    background: transparent !important;
  }

이 문제가 일반적인 이유 중 하나는 널리 사용되는 Bootstrap 프레임 워크를 사용 하는 웹 사이트가 위의 CSS 스타일을 포함하는 ubiquitous bootstrap.min.css 파일을 사용하기 때문 입니다.

찾아야 할 핵심은 @media print입니다. 웹 사이트는 종종 복잡한 구조를 가지며 페이지를 로컬에 저장하고 재귀 텍스트 검색 도구를 사용하여 페이지를 검사하는 데 도움이 될 수 있습니다.

CSS 코드에서 해당 지점을 찾았다 고 생각되면 개발자 기능을 사용하여 브라우저에서 직접 페이지를 수정할 수 있습니다. (Chrome에서는 Ctrl+ Shift+ I를 눌러 시작합니다.)

CSS 코드를 검색하고 문제를 일으키는 행을 제거하거나 무효화하십시오. "인쇄 미리보기"를 사용하여 작업이 작동했는지 확인하십시오.


0

Greasemonkey addon을 설치하고 아래 주어진 스크립트를 사용하십시오.

http://www.netsi.dk/wordpress/index.php/2011/07/07/printing-html-pages-make-screen-and-print-appear-the-same/ 에서 찾은 스크립트를 수정했습니다 .

마지막에 "screen"을 "print"로 변경했습니다 (jQuery에 대해 전혀 몰라서 질문하지 마십시오). 실제로 화면 버전을 프린터로 보냅니다. PDF로 인쇄 할 때 (Foxit 또는 Nitro Pdf 프린터 사용) 가로 모드에서 페이지 유형을 Tabloid Extra로 설정하여 pdf 크기가 화면 크기와 다소 일치하도록합니다. 즐겨! 프로그래밍에 대해 아무것도 몰라서 크레딧은 원저자에게갑니다.

// ==UserScript==
// @name         Show print version (A Cross Browser Example) (showPrintVersion.user.js)
// @namespace    netsi
// @match http://*/*
// @author       Sten Hougaard
// @description  Simply add #print to the URL. As descriped in my blog post (goo.gl/MEizV) this will activate any media=print stylesheets so that you can see the print version without printing
// ==/UserScript==

// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
  var script = document.createElement("script");
  script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js");
  script.addEventListener('load', function () {
    var script = document.createElement("script");
    script.textContent = "(" + callback.toString() + ")();";
    document.body.appendChild(script);
  }, false);
  document.body.appendChild(script);
}

// the guts of this userscript
function main() {
  var bPrint = (window.location.toString().indexOf('#print')!=-1);  
  if (bPrint) {
    // The user wants to print this page
    jQuery('link[media*="screen"]').attr('media', 'all'); // Enable the screen styling for all media types, including screen.
    jQuery('link[media*="print"]').remove(); // remove any styling related to print
  }
}

// load jQuery and execute the main function
addJQuery(main);

-1

"Print background (colors & images)"옵션 을 활성화 Page Setup하고 어떻게 보이는지 확인하십시오 Print Preview(FF).


1
원하는 결과가 없습니다. 죄송합니다.
— vy32

-1

제임스와 유사 - 사용은 "소스"크롬 개발자 도구에서 탭을 교체 의 모든 인스턴스 media print와를 media speech. 따라서 탐색시 navbar 숨기기 등의 모든 CSS 변경 사항은 인쇄시 적용되지 않지만 텍스트 음성 변환을 사용할 때는 적용됩니다.

위와 같이 JQuery로 가능할 수 있습니다.

이것은 CSS의 CDN을 사용할 때 유용하므로 사용자 정의가 올바르게 수행됩니다.


-2

Mac에는 훌륭한 도구가 있습니다.

Paparazzi 설치 => URL을 Paparazzi에 복사 => 다른 이름으로 이미지 저장 => PDF

(PDF 내보내기에서 텍스트는 선택할 수 없으며 "이미지"가 아닙니다)

https://derailer.org/paparazzi/screenshots

즐겨 :-)


불행하게도,이 프로그램은 비트 맵 인쇄를합니다. 즉, 글꼴이 래스터 화됩니다. 내가 원하는 것이 아닙니다.
— vy32
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.