Berabad-abad yang lalu, pada November 2005, AlistApart.com menerbitkan sebuah artikel tentang bagaimana mereka menerbitkan sebuah buku dengan menggunakan apa-apa selain HTML dan CSS. Lihat: http://alistapart.com/article/boom
Berikut kutipan dari artikel itu:
CSS2 memiliki gagasan tentang media paged (think sheets of paper), sebagai lawan dari media yang berkelanjutan (think scrollbars). Style sheet dapat mengatur ukuran halaman dan marginnya. Templat halaman dapat diberi nama dan elemen dapat menyatakan halaman bernama mana mereka ingin dicetak. Juga, elemen-elemen dalam dokumen sumber dapat memaksa istirahat halaman. Berikut cuplikan dari style sheet yang kami gunakan:
@page {
size: 7in 9.25in;
margin: 27mm 16mm 27mm 16mm;
}
Memiliki penerbit yang berbasis di AS, kami diberi ukuran halaman dalam inci. Kami, sebagai orang Eropa, melanjutkan pengukuran metrik. CSS menerima keduanya.
Setelah mengatur ukuran halaman dan margin, kami perlu memastikan ada istirahat halaman di tempat yang tepat. Kutipan berikut menunjukkan bagaimana page break dihasilkan setelah bab dan lampiran:
div.chapter, div.appendix {
page-break-after: always;
}
Kami juga menggunakan CSS2 untuk mendeklarasikan halaman bernama:
div.titlepage {
page: blank;
}
Yaitu, halaman judul harus dicetak pada halaman dengan nama "kosong." CSS2 menjelaskan konsep halaman bernama, tetapi nilainya hanya menjadi jelas ketika header dan footer tersedia.
Bagaimanapun…
Karena Anda ingin mencetak A4, tentu saja Anda membutuhkan dimensi yang berbeda:
@page {
size: 21cm 29.7cm;
margin: 30mm 45mm 30mm 45mm;
/* change the margins as you want them to be. */
}
Artikel ini beralih ke hal-hal seperti pengaturan istirahat halaman, dll. Jadi Anda mungkin ingin membacanya sepenuhnya.
Dalam kasus Anda, triknya adalah membuat CSS cetak terlebih dahulu. Sebagian besar peramban modern (> 2005) mendukung pembesaran dan sudah dapat menampilkan situs web berdasarkan CSS cetak.
Sekarang, Anda ingin membuat tampilan web terlihat sedikit berbeda dan mengadaptasi seluruh desain agar sesuai dengan sebagian besar browser juga (termasuk yang lama, pra-2005). Untuk itu, Anda harus membuat file CSS web atau mengganti beberapa bagian CSS cetak Anda. Saat membuat CSS untuk tampilan web, ingat bahwa browser dapat memiliki ukuran APAPUN (pikirkan: "seluler" hingga "TV layar lebar"). Artinya: untuk CSS web, lebar halaman dan lebar gambar Anda paling baik diatur menggunakan lebar variabel (%) untuk mendukung sebanyak mungkin perangkat tampilan dan klien penelusuran web.
EDIT (26-02-2015)
Hari ini, saya kebetulan menemukan artikel lain yang lebih baru di SmashingMagazine yang juga beralih ke mendesain untuk dicetak dengan HTML dan CSS ... untuk berjaga-jaga jika Anda masih bisa menggunakan tutorial lain.
EDIT (30-10-2018)
Telah menarik perhatian saya bahwa size
itu bukan CSS3 yang valid, yang memang benar - saya hanya mengulangi kode yang dikutip dalam artikel yang (seperti disebutkan) adalah CSS2 lama yang baik (yang masuk akal ketika Anda melihat tahun artikel dan jawaban ini pertama kali dipublikasikan). Bagaimanapun, ini kode CSS3 yang valid untuk kenyamanan salin dan tempel Anda:
@media print {
body{
width: 21cm;
height: 29.7cm;
margin: 30mm 45mm 30mm 45mm;
/* change the margins as you want them to be. */
}
}
Jika Anda merasa Anda benar-benar membutuhkan piksel ( sebenarnya Anda harus menghindari menggunakan piksel ), Anda harus berhati-hati dalam memilih DPI yang benar untuk dicetak:
- 72 dpi (web) = 595 X 842 piksel
- 300 dpi (cetak) = 2480 X 3508 piksel
- 600 dpi (kualitas cetak tinggi) = 4960 X 7016 piksel
Namun, saya akan menghindari kerumitan dan hanya menggunakan cm
(sentimeter) atau mm
(milimeter) untuk ukuran karena itu menghindari rendering gangguan yang dapat timbul tergantung pada klien yang Anda gunakan.