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


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를 편집하고 인쇄 블록을 주석 처리 할 수는 있지만 이러한 변경 사항은 인쇄 미리보기로 넘어 가지 않았습니다.

내가 찾은 해결책은 FirefoxChrome 용 인쇄 편집 확장 프로그램이었습니다 . 인쇄 직전에 페이지를 편집 할 수 있으며 페이지에 웹 스타일 ( @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.