В листопаді 2005 року, у листопаді 2005 року, AlistApart.com опублікував статтю про те, як вони опублікували книгу, використовуючи лише HTML та CSS. Дивіться: http://alistapart.com/article/boom
Ось уривок цієї статті:
CSS2 має поняття підказканих носіїв інформації (аркуші аркушів паперу), на відміну від суцільних носіїв інформації (смуги прокрутки). Аркуші стилів можуть встановлювати розмір сторінок та їх поля. Шаблонам сторінок можна надати імена, а елементи можуть вказати, на якій іменованій сторінці вони хочуть надрукувати. Також елементи у вихідному документі можуть примушувати розриви сторінки. Ось фрагмент із таблиці стилів, яку ми використовували:
@page {
size: 7in 9.25in;
margin: 27mm 16mm 27mm 16mm;
}
Маючи американського видавця, нам дали розмір сторінки в дюймах. Ми, будучи європейцями, продовжували метричні вимірювання. CSS приймає обидва.
Після налаштування розміру та поля, нам потрібно було переконатися, що в потрібних місцях є розриви сторінок. Наступний уривок показує, як генеруються розриви сторінок після розділів та додатків:
div.chapter, div.appendix {
page-break-after: always;
}
Також ми використовували CSS2 для декларування названих сторінок:
div.titlepage {
page: blank;
}
Тобто титульна сторінка повинна друкуватися на сторінках із назвою "порожня". CSS2 описав концепцію названих сторінок, але їх значення стає очевидним лише тоді, коли будуть доступні заголовки та колонтитули.
Все одно ...
Оскільки ви хочете надрукувати А4, вам знадобляться різні розміри:
@page {
size: 21cm 29.7cm;
margin: 30mm 45mm 30mm 45mm;
/* change the margins as you want them to be. */
}
Стаття занурюється в такі речі, як встановлення перерв на сторінки тощо, тому ви можете прочитати це повністю.
У вашому випадку хитрість полягає в тому, щоб спершу створити CSS для друку. Більшість сучасних браузерів (> 2005) підтримують масштабування і вже зможуть відображати веб-сайт на основі CSS для друку.
Тепер ви захочете зробити так, щоб веб-дисплей виглядав дещо інакше і адаптував весь дизайн так, щоб він підходив і до більшості браузерів (включаючи старі, до 2005 року). Для цього вам доведеться створити веб-файл CSS або замінити деякі частини CSS для друку. Створюючи CSS для веб-відображення, пам’ятайте, що браузер може мати будь-який розмір (подумайте: «мобільний» до «телевізорів з великим екраном»). Значення: для веб-CSS ширину сторінки та ширину зображення найкраще встановлювати за допомогою змінної ширини (%) для підтримки якомога більшої кількості пристроїв відображення та клієнтів веб-перегляду.
EDIT (26-02-2015)
Сьогодні мені трапилось натрапити на ще одну, більш нову статтю SmashingMagazine, яка також занурюється в розробку для друку за допомогою HTML та CSS ... про всяк випадок, якщо ви зможете скористатися ще одним підручником.
EDIT (30-10-2018)
Мені було звернуто увагу на те, що size
CSS3 не є дійсним, що дійсно правильно - я просто повторив код, процитований у статті, який (як зазначалося) був гарним старим CSS2 (що має сенс, коли ви дивитесь на рік статті та ця відповідь була вперше опублікована). У будь-якому випадку, ось дійсний код CSS3 для зручності копіювання та вставки:
@media print {
body{
width: 21cm;
height: 29.7cm;
margin: 30mm 45mm 30mm 45mm;
/* change the margins as you want them to be. */
}
}
Якщо ви думаєте, що вам дійсно потрібні пікселі ( ви насправді не повинні використовувати пікселі ), вам доведеться подбати про вибір правильного DPI для друку:
- 72 dpi (веб) = 595 X 842 пікселів
- 300 dpi (друк) = 2480 X 3508 пікселів
- 600 dpi (висока якість друку) = 4960 X 7016 пікселів
Тим не менш, я б уникнув клопоту і просто використовувати cm
(сантиметри) або mm
(міліметри) для розмірів, тому що уникне появи глюків, які можуть виникати залежно від того, якого клієнта ви використовуєте.