Eksport Markdowna do PDF z przeglądarki
Przeglądarka może zrobić PDF ze strony internetowej na dwa sposoby i nie są one równie dobre.
Pierwszy to wyrenderowanie strony jako obrazu i zapakowanie tego obrazu w PDF. Biblioteki, które tak robią, łatwo dodać, a wynikiem jest plik, w którym tekst nie jest już tekstem — nie da się go zaznaczyć, przeszukać ani skopiować z niego wiersza, a plik jest kilka razy większy, niż musi być.
Drugi to wydrukowanie strony i wybranie „Zapisz jako PDF” jako miejsca docelowego. Przeglądarka układa dokument pod papier, respektuje arkusz stylów do druku i zapisuje prawdziwy tekst wektorowy. Kosztuje to jedno kliknięcie więcej i daje naprawdę lepszy plik, więc właśnie to dzieje się tutaj, kiedy naciśniesz Zapisz jako PDF.
Cztery ustawienia, które mają znaczenie
Wszystko poniżej jest w oknie drukowania, a nie na stronie, bo żaden arkusz stylów nie może tego ustawić.
Miejsce docelowe: Zapisz jako PDF. Nie fizyczna drukarka.
Grafika tła: włączona. Jest w Więcej ustawień i to ją najczęściej się pomija. Przy wyłączonej przeglądarka odrzuca każde wypełnienie tła: bloki kodu tracą swoje cieniowanie, nagłówki tabel stają się białe, a PDF w ciemnym motywie wychodzi jako biały papier z białym tekstem na nim, co wygląda na zepsuty eksport, a nie na ustawienie.
Nagłówki i stopki: wyłączone. Ta opcja to przeglądarka dodająca z własnej inicjatywy adres strony i datę. Jeśli ustawiłeś własny nagłówek albo stopkę, oba się zderzają. Wyłącz to, co dodaje przeglądarka, i zostaw swoje — albo odwrotnie, jeśli chcesz numery stron, o czym niżej.
Skala: 100% albo Domyślna. „Dopasuj do strony” przeskalowuje pismo i rozstraja marginesy, a od marginesów zależy odstęp dla nagłówka i stopki.
Dlaczego suwak skali czasem znika
Jeśli dokument deklaruje ustalony rozmiar papieru, Chrome uznaje papier za już zdecydowany przez autora i całkowicie ukrywa suwak skali. To nie błąd przeglądarki ani strony — to konsekwencja tego, że dokument się określił.
Papier jest więc wyborem: A4, Letter albo Domyślny drukarki. Dwa pierwsze proszą o rozmiar i tracisz skalę. Trzeci nie prosi o nic i skala wraca. Marginesy w każdym z trzech przypadków ustala dokument, więc nagłówek albo stopka zachowuje swoje miejsce tak czy inaczej.
Żywa pagina górna i dolna
Żywa pagina powtarza się na każdej stronie. W przeglądarce robi się to elementem o stałej pozycji, o którym specyfikacja mówi, że powtarza się na każdym arkuszu nośnika stronicowanego.
Subtelność polega na zarezerwowaniu dla niego miejsca. Oczywiste podejście — wypełnienie u góry treści dokumentu — rezerwuje miejsce tylko raz, bo treść to jedno pudełko, na ilu stron by się nie rozłożyła w druku. Na pierwszej stronie działa, a od drugiej pagina siada na tekście.
Rozwiązaniem jest zarezerwowanie miejsca w marginesie @page, który obowiązuje na każdej
stronie, i umieszczenie belki w tym marginesie z ujemnym przesunięciem. Właśnie to robi
stemplarnia i poszerza margines tylko na tej krawędzi, która faktycznie nosi belkę.
Każde z czterech pól — nagłówek lewy, nagłówek prawy, stopka lewa, stopka prawa — przyjmuje dowolny tekst, a do tego znaczniki wypełniane przy drukowaniu:
{title}— pierwszy nagłówek albo pierwszy wiersz dokumentu{date},{time},{datetime}— kiedy powstał PDF
Brak numerów stron i dlaczego
Celowo nie ma znacznika {page}. Liczenie stron wewnątrz elementu powtarzanego nie jest czymś,
co przeglądarka umie: counter(page) rozwiązuje się tylko wewnątrz pól marginesu @page, a
żadna ważna przeglądarka ich nie implementuje. Znacznik, który po cichu nic by nie drukował,
byłby gorszy niż brak znacznika.
Jeśli potrzebujesz numerów stron, dodaje je własna opcja nagłówków i stopek przeglądarki. Użyj jej zamiast stempla albo przyjmij oba i pozostaw je na przeciwnych krawędziach.
Ciemne PDF-y
Opcja ciemna odwraca stronę — czarny papier, biały tusz — i pozostawia pozostałe kolory w spokoju. Jeden świadomy wyjątek: kolor linków jest rozjaśniany, bo niebieski z jasnego motywu wypada wobec czerni na około 2,5:1 i jest nieczytelny. Zachowuje odcień i zyskuje kontrast.
Pamiętaj o grafice tła. Ciemny PDF wydrukowany bez niej to pusta biała strona.