Baskı stil sayfalarında hata ayıklama önerileri?


238

Son zamanlarda bir web sitesi için bir baskı stil sayfası üzerinde çalışıyorum ve ince ayar yapmanın etkili yollarını kaybettiğimi fark ettim. Ekran düzeni üzerinde çalışmak için yeniden yükleme döngüsüne sahip olmak bir şeydir:

  • kodu değiştir
  • Komut sekme
  • Tekrar yükle

ancak yazdırmaya çalışırken tüm süreç çok daha zorlu hale gelir:

  • kodu değiştir
  • Komut sekme
  • Tekrar yükle
  • Yazdır
  • squint at print önizleme görüntüsü
  • daha fazla inceleme için PDF'yi Önizleme'de aç

Burada kaçırdığım araçlar var mı? WebKit'in denetçisinde "bu disk belleği medya gibi davran" onay kutusu var mı? Firebug'un ( ürperti ) yapabileceği bir sihir var mı ?


4
Onu destekleyen bir tarayıcının "Baskı önizleme" işlevine ne dersiniz? Bazı web sayfalarını onunla yazdırmak için hatalarını ayıkladım.
Halil Özgür


3
Firefox'ta, Shift + F2 ile "Geliştirici Araç Çubuğu" nu açın, "media emulate print" (veya "emu" + Tab + "print"), Enter yazın.
Marcello Nuccio


@MarcelloNuccio Bu bir cevap olmalı. stackoverflow.com/a/28873496/1696030 karşılaştırma için oldukça olumlu oy aldı. “Geliştirici Araç Çubuğu” bir komut satırı arayüzü olduğundan biraz yanıltıcıdır.
Volker E.16

Yanıtlar:


327

Chrome'un müfettişinde bunun için bir seçenek var.

  1. DevTools denetçisini açın (mac: Cmd+ Shift+ C, windows: Ctrl+ Shift+ C)
  2. DevTools panelinin sol üst köşesinde bulunan Cihaz modunuCihaz modu düğmesini aç / kapat aç / kapat simgesini tıklayın . (windows: Ctrl+ Shift+ M, mac: Cmd+ Shift+ M).
  3. Devtools çekmecesini açmak için tarayıcı görünüm penceresinin sağ üst köşesindeki Diğer geçersiz kılmalar daha fazla geçersiz kılma simgesini tıklayın .
  4. Ardından, emülasyon çekmecesinde Ortam'ı seçin ve CSS ortamı onay kutusunu işaretleyin.

    resim açıklamasını buraya girin

Bu hile yapmalı.

Güncelleme: DevTools'ta menüler değişti. Artık sağ üst köşedeki "üç nokta" menüsünü> Diğer Araçlar> Görüntü Oluşturma Ayarları> Medyayı taklit et> yazdır'ı tıklayarak bulabilirsiniz.

Kaynak: Google DevTools sayfası *


5
Teşekkürler, aradığım şey bulamadım: / Kısayol artık çalışmıyor. Sadece sağ alt köşedeki F12 + dişli simgesini yapıyorum, ardından ayar Geçersiz Kılmalar sekmesinin altında,
Aurelien

18
ne yazık ki% 100 doğru değil :(
maazza

9
Chrome'da 32.0.1700.14 beta-m Aura"CSS medyasını taklit et [yazdır]" eksik :(
Rocket Hazmat

11
Bu cevabın düzeltilmesi gerekiyor. Chrome 48'den itibaren, yazdırma stil sayfası öykünücüsü artık "Öykünme" altında değil, "İşleme" altında.
chharvey

13
Müfettişte üç nokta menüsü (sağ taraf)> Diğer Araçlar> Görüntü Oluşturma Ayarları> Medyayı taklit et> yazdır
allicarn

74

HTML'den PDF'ye yaklaşımı kullanmadan yazdırılan pencereyi mümkün olduğunca kontrol etmek istediğinizi varsayıyorum ... Hata ayıklamak için @media ekranını kullanın - son css için @media print

Modern tarayıcılar size kullanılarak baskı anda ne olacak ne için hızlı bir görsel verebilir inç ve puanlar bir de @media query.

@media screen and (max-width:8.5in) { /* resize your window until the event is triggered */
    html { width:8.5in; }
    body { font: 9pt/1.5 Arial, sans-serif; } /* Roughly 12px font */
 ...
}

Tarayıcınız "inç" görüntülediğinde, ne bekleyeceğiniz konusunda daha iyi bir fikriniz olacaktır. Bu yaklaşım, baskı önizleme yöntemini bitirmelidir. Tüm yazıcılar ptve inbirimlerle çalışacak ve @media tekniğini kullanmanız, ne olacağını hızlı bir şekilde görmenize ve buna göre ayarlamanıza izin verecektir. Firebug (veya muadili) bu süreci kesinlikle hızlandıracaktır. @Media'ya yaptığınız değişiklikleri eklediğinizde, bağlı bir CSS dosyası için gereken tüm media = "print"özniteliği öznitelik kullanarak aldınız - @media ekran kurallarını başvurulan dosyaya kopyalayıp yapıştırmanız yeterlidir .

İyi şanslar. Web baskı için tasarlanmamıştır. Tüm içeriğinizi, stilde tarayıcıda görülene eşit olan stilleri sunan bir çözüm oluşturmak bazen imkansız olabilir. Örneğin, ağırlıklı olarak 1280 x 1024 seyirci için akıcı bir düzen, her zaman iyi ve düzgün bir 8.5 x 11 lazer baskıya kolayca çevrilemez.

Purusal için W3C referansı: http://www.w3.org/TR/css3-mediaqueries/


Sadece bu yöntemin oldukça zeki olduğunu yorumlamak istedim. Pencereyi, baskı stillerini "geçiş" yapmak için biraz yeniden boyutlandırmak, baskı önizleme işlevini kullanmaktan çok daha kolaydır. Yine de bazen IE uyumluluğu ve benzeri için bunu yapmak zorunda olsanız da, bu, baskı stillerinin ilk yinelemesi için mükemmeldir.
chucknelson

@Chuck. Teşekkürler dostum. Hey, demomun çevrimdışı olduğunu fark ettim, bu yüzden bunun için bir keman yarattım. jsfiddle.net/dNEmT
Dawson

20

Chrome 48'de , oluşturma stillerinde İşleme sekmesinde hata ayıklayabilirsiniz .

Müfettiş ve Oluşturma Ayarları'nın sağ üst tarafındaki menü simgesini tıklayın .

Düzenleme
için Chrome 58 yeri değişti Web Müfettiş> Menü> Diğer Araçlar> Rendering


4
Chrome 49: F12 (geliştirici konsolu) -> ESC (konsol) -> Oluşturma -> Yazdırma ortamını taklit et
user1477388

19

Chrome v41'de, orada, ancak biraz farklı bir noktada.

resim açıklamasını buraya girin


3
V53'te bunun yerine Rendering sekmesinde, altta, sağlanan ekran görüntüsüne benzer şekilde Yazdır'ı seçebileceğiniz bir açılır listeyi etkinleştirecek Emulate Media için bir onay kutusu var
James Gray

16

HTML kodunuzdaki herhangi bir ortam niteliğini değiştirmeden yazdırma stil sayfanızda hata ayıklamanın kolay bir yolu vardır (elbette belirtildiği gibi genişlik / sayfa sorununu çözmez):

  • Firefox + Web Geliştirici uzantısını kullanın.
  • Web Geliştiricisi menüsünde, CSS / Görüntü Türünü CSS'ye Göre Yazdır
  • Web Geliştirici menüsüne geri dönün, Seçenekler / Kalıcı Özellikler'i seçin

Şimdi yazdırma CSS'sini görüntülüyorsunuz ve sayfanızı süresiz olarak yeniden yükleyebilirsiniz. İşiniz bittiğinde "Kalıcı Özellikler" in işaretini kaldırın ve yeniden yükleyin, ekran CSS'sini tekrar alırsınız.

HTH.


7
önemli ölçüde baskı önizlemesinden farklı oluşturur. belki de bu benim css bir tuhaflık. her durumda, sorunu çözmez. yine de teşekkürler.
heartpunk

Evet, benim için de tamamen farklı. Bu jsfiddle'ı ( jsfiddle.net/2wk6Q/3 ) takip ettim ve baskı önizleme kırmızı kenar boşluklu sayfaları gösteriyor, ancak bu tamamen farklı.
duality_

1
Bu "geçici çözüm" benim için en iyi sonuç olduğunu söylemeliyim. Belki şanslıyım ve bu yüzden yerel baskı ekranı ve web geliştiricileri baskı ekranı arasında sadece küçük farklar var ama kesinlikle neden boşlukların ortaya çıktığını ve en önemli olanı bulmama yardımcı oldu - Firebug ile kodu düşünüp neler olduğunu görüyorum on
Erik Čerpnjak

13

Chrome'un UI farklıdır tekrar V53 itibariyle.

Bu özelliği sık sık kullanmama gerek yok, ancak ne zaman yaparsam yapayım, Chrome ekibinin onu en son ne zaman izlediğimi izlediğimden beri onu nereye götürdüğünü anlamak beni sonsuza dek sürüyor.

Uyarı içeri ... menü Dev Tools bölmesinde değil Chrome Tarayıcı bölmesinde ... menüsü.

MacOS'ta v53 itibariyle yazıcı önizlemesi

Şimdi Görüntü Oluşturma bölümünde aşağı kaydırın . Genellikle ekranın altında.


1
Bana print.css hata ayıklama günlerini kurtardınız. Müthişsin!
zazvorniki

8

Rflnogueira'nın cevabını takiben, mevcut Chrome ayarları (40.0. *) Aşağıdaki gibi görünecektir:

krom baskı css öykünmesi


"Medya" sekmesini tanımlamak biraz zamanımı aldı. "Cihaz" sekmesinde aramaya devam ettim.
Lorin Rivers

5

media="screen"Hata ayıklama sırasında tarayıcınızda yazdırma stil sayfasını göstermeniz yeterlidir. Baskı önizleme görünümü, normal tarama moduyla aynı oluşturma motorunu kullanır, böylece bunu kullanarak doğru sonuçlar alabilirsiniz.


14
Normal tarama modu dışında sayfalar olmadığı için içeriğin nasıl akacağına dair hiçbir fikrim yok. Normal tarama modunun genişliği belirli sayıda piksel, bir sayfanın genişliği ise belirli inç veya santimetre genişliğindedir. Ekran ve baskı arasında uygulamadan bağımsız temel farklılıklar vardır. Bunlar arasında hata ayıklama peşimde.
Jim Puls

1
Kromda, yalnızca bu öneri kullanılarak oluşturma oldukça farklıdır. Çalışmaz.
heartpunk

"Sayfa" genişliğini azaltmak zor değil, yüksekliği gerçekten zor. Hem tarayıcılar hem de yazıcılar 11 inç baş ağrısında rol oynayacaktır. Web sayfaları sürekli uzunluktadır. Çıkış cihazı türü ve tarayıcı garantisi olmadan, her seferinde işarete vuracağınızı sanmıyorum. HTML'den PDF'ye yaklaşımı kullanmak işe yarayabilir, ancak bu sorunuzun kapsamı dışındadır.
Dawson

3

2019 - Güncellenmiş talimatlar

  1. Chrome denetçisini aç
    • Gönderen Mac => option+ command+i
    • Gönderen Windows'un =>F12
  2. Küçük 3 noktaya tıklayın, customize and control devTools resim açıklamasını buraya girin

  3. seçmek More Tools

  4. seçmek Rendering

  5. Aşağıya kaydırın Emulate CSS Media

  6. printAşağı oktan seçin

resim açıklamasını buraya girin


0

Sayfanın içeriğini, yazdırma stili sayfanızla yeni bir pencereye yeniden yazan bir yazdırma işleviniz varsa, kağıda nasıl görüneceği hakkında çok daha iyi bir fikir edinir ve hata ayıklayabilirsiniz. kundakçı gibi.

JavaScript / jquery ile bunun nasıl yapılabileceğine dair bir örnek

        $("#Print").click(function () {
            var a = window.open('', '', 'scrollbars=yes,width=1024,height=768');
            a.document.open("text/html");
            a.document.write("<html><head>");
            a.document.write('<link rel="stylesheet" href="css/style.css" />');
            a.document.write('<link rel="stylesheet" href="css/print.css" />');
            a.document.write("</head><body>");
            a.document.write($('#Content').html());
            a.document.write('</body></html>');
            a.document.close();
            a.print();
        });

2
Bu yaklaşımla ilgili sorun, bir kullanıcı tarayıcısında yalnızca "Yazdır ..." seçeneğini seçerse, bu javascript işlevinin asla çağrılmayacağıdır.
Ken Liu

yazdırma işlevini kullanıcıya göstermeniz gerekmez, isterseniz hata ayıklama amacıyla kullanabilirsiniz
Blowsie

Bu, tarayıcının zaten yaptığı bir şeye aşırı tasarlanmış bir çözümdür. Sadece bir kullanmak media="print"ve media="screen"sizin stil için sırasıyla ve sadece çağırmak baskı önizleme tarayıcı menü veya tuş kombinasyonları kullanır. (Bu durumda, bir açılır pencere açmaktan farklı değildir) Ve yalnızca hata ayıklama yapıyorsanız, hata ayıklamayı tamamlayana media="screen"kadar bu özelliği yazdırma stillerinize uygulayın .
ORyan

-1

resim açıklamasını buraya girin

: Ekran, vb baskı, el medya, projeksiyon perdesi, tv medya, desitn zaman stil sayfaları, bu özellikle bunun nedeni ne kullanın: DreamWeaver bir gösterileri hemen her render seçeneği İstediğiniz araç çubuğu vardır anında 1 ile önizlemesini gösterir tek bir düğmeye basın.


1
bilmek iyidir, ancak geliştirdiğimizden farklı bir oluşturma motoru kullanmayı gerektirir ve yine de yeniden yüklemeden daha fazlasını gerektirir. yine de teşekkürler.
heartpunk

1
Zaten 2011 yılında bu, sadece sınırlı platformlarda tescilli, sadece satın alma yazılımıdır ve bu, açık web'de hata ayıklamak için istenen işlevselliği elde etmek için ödeme yapmanız gerekiyordu.
Volker E.16

-7

Tekrar tekrar tuşa basma ve fare tıklaması göndermek için makroları kullanıyorum. Windows altında, AutoHotKey harika bir yazılımdır ve OS X altında Osma için alternatif bir AHK Automator türünü okuyabilirsiniz .

Windows altında (Ctrl'yi OS X altında Cmd ile değiştirin) 1 kullanılmamış tuşa bağlı "Ctrl-s / Fx penceresine açıldığında, Windows / Ctrl-r" penceresinin bulunduğu her yerde geçiş, ilginç olmayan görevlerden kaynaklanan hayal kırıklığını önler ve sonuçta kollarımı kurtaracak dan RSI :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.