Trước đây, vào tháng 11 năm 2005, AlistApart.com đã xuất bản một bài viết về cách họ xuất bản một cuốn sách không sử dụng gì ngoài HTML và CSS. Xem: http://alistapart.com/article/boom
Đây là một đoạn trích của bài viết đó:
CSS2 có một khái niệm về phương tiện phân trang (nghĩ tờ giấy), trái ngược với phương tiện liên tục (nghĩ thanh cuộn). Biểu định kiểu có thể đặt kích thước của trang và lề của chúng. Các mẫu trang có thể được đặt tên và các thành phần có thể cho biết trang nào chúng muốn được in. Ngoài ra, các yếu tố trong tài liệu nguồn có thể buộc ngắt trang. Đây là đoạn trích từ biểu định kiểu chúng tôi đã sử dụng:
@page {
size: 7in 9.25in;
margin: 27mm 16mm 27mm 16mm;
}
Có một nhà xuất bản có trụ sở tại Hoa Kỳ, chúng tôi đã được cung cấp kích thước trang tính bằng inch. Chúng tôi, là người châu Âu, tiếp tục với các phép đo hệ mét. CSS chấp nhận cả hai.
Sau khi thiết lập kích thước trang và lề, chúng tôi cần đảm bảo có các ngắt trang ở đúng nơi. Đoạn trích sau đây cho thấy cách ngắt trang được tạo sau các chương và phụ lục:
div.chapter, div.appendix {
page-break-after: always;
}
Ngoài ra, chúng tôi đã sử dụng CSS2 để khai báo các trang được đặt tên:
div.titlepage {
page: blank;
}
Nghĩa là, trang tiêu đề sẽ được in trên các trang có tên trống. CSS2 đã mô tả khái niệm về các trang được đặt tên, nhưng giá trị của chúng chỉ trở nên rõ ràng khi các tiêu đề và chân trang có sẵn.
Dù sao…
Vì bạn muốn in A4, tất nhiên bạn sẽ cần các kích thước khác nhau:
@page {
size: 21cm 29.7cm;
margin: 30mm 45mm 30mm 45mm;
/* change the margins as you want them to be. */
}
Bài viết đi sâu vào những thứ như thiết lập ngắt trang, v.v. vì vậy bạn có thể muốn đọc nó hoàn toàn.
Trong trường hợp của bạn, mẹo là tạo CSS in trước. Hầu hết các trình duyệt hiện đại (> 2005) đều hỗ trợ thu phóng và sẽ có thể hiển thị trang web dựa trên CSS in.
Bây giờ, bạn sẽ muốn làm cho màn hình web trông khác đi một chút và điều chỉnh toàn bộ thiết kế để phù hợp với hầu hết các trình duyệt (bao gồm cả các trình duyệt cũ, trước năm 2005). Vì vậy, bạn sẽ phải tạo tệp CSS web hoặc ghi đè một số phần của CSS in của bạn. Khi tạo CSS để hiển thị trên web, hãy nhớ rằng một trình duyệt có thể có kích thước BẤT K ((nghĩ: điện thoại di động có thể lên đến TV TV màn hình lớn). Ý nghĩa: đối với CSS web, chiều rộng trang và chiều rộng hình ảnh của bạn được đặt tốt nhất bằng cách sử dụng độ rộng biến (%) để hỗ trợ càng nhiều thiết bị hiển thị và ứng dụng duyệt web càng tốt.
EDIT (26-02-2015)
Hôm nay, tôi tình cờ tìm thấy một bài báo khác, gần đây hơn tại SmashingMagazine , người cũng đã thiết kế để in bằng HTML và CSS, chỉ trong trường hợp bạn có thể sử dụng một hướng dẫn khác.
EDIT (30-10-2018)
Tôi đã nhận thấy rằng size
CSS3 không hợp lệ, điều này thực sự chính xác - Tôi chỉ lặp lại mã được trích dẫn trong bài viết (như đã lưu ý) là CSS2 cũ tốt (có ý nghĩa khi bạn nhìn vào năm của bài viết và Câu trả lời này đã được công bố lần đầu tiên). Dù sao, đây là mã CSS3 hợp lệ để thuận tiện cho việc sao chép và dán của bạn:
@media print {
body{
width: 21cm;
height: 29.7cm;
margin: 30mm 45mm 30mm 45mm;
/* change the margins as you want them to be. */
}
}
Trong trường hợp bạn nghĩ rằng bạn thực sự cần pixel ( bạn thực sự nên tránh sử dụng pixel ), bạn sẽ phải cẩn thận chọn DPI chính xác để in:
- 72 dpi (web) = 595 X 842 pixel
- 300 dpi (in) = 2480 X 3508 pixel
- 600 dpi (bản in chất lượng cao) = 4960 X 7016 pixel
Tuy nhiên, tôi sẽ tránh rắc rối và chỉ cần sử dụng cm
(centimet) hoặc mm
(milimet) để định cỡ vì điều đó tránh việc hiển thị các trục trặc có thể phát sinh tùy thuộc vào ứng dụng khách nào bạn sử dụng.