Apakah mungkin untuk mencetak halaman HTML dengan header dan footer khusus pada setiap halaman yang dicetak?
Saya ingin menambahkan kata "UNCLASSIFIED" di Red, Arial, ukuran 16pt ke atas dan bawah setiap halaman yang dicetak , terlepas dari kontennya.
Untuk memperjelas, jika dokumen dicetak ke 5 halaman, setiap halaman harus memiliki header dan footer kustom.
Adakah yang tahu apakah ini mungkin menggunakan HTML / CSS?
pisition: fixed
danthead tbody tfoot
teknik memiliki kelemahan sehingga Anda harus menggabungkannya, baca lebih lanjut di sini .Jawaban:
Jika Anda mengambil elemen yang Anda ingin menjadi footer dan mengaturnya menjadi posisi: tetap dan bawah: 0, ketika halaman mencetak akan mengulangi elemen itu di bagian bawah setiap halaman yang dicetak. Hal yang sama akan bekerja untuk elemen header, cukup atur top: 0 sebagai gantinya.
Sebagai contoh:
CSS:
sumber
Saya percaya jawaban yang benar adalah bahwa HTML 5 dan CSS3 tidak memiliki dukungan untuk mencetak header halaman dan footer di
print
media.Dan sementara Anda mungkin dapat mensimulasikannya dengan:
mereka masing-masing memiliki bug yang mencegah mereka menjadi solusi umum yang ideal.
sumber
@footer
dengancontent:"stuff"
atau sama.Saya hanya menghabiskan setengah hari saya dengan solusi yang benar-benar bekerja untuk saya dan saya pikir saya akan membagikan apa yang saya lakukan. Masalah dengan solusi di atas yang saya alami adalah bahwa semua elemen paragraf saya akan tumpang tindih dengan footer yang saya inginkan di bagian bawah halaman. Untuk menyiasatinya, saya menggunakan CSS berikut:
The
page-break-inside
untukp
dancontent-block
sangat penting bagi saya. Setiap kali saya memilikip
pengikuth*
, saya membungkus mereka berdua dalamdiv class = "content-block">
untuk memastikan mereka tetap bersama dan tidak putus.Saya berharap seseorang menemukan ini berguna karena butuh sekitar 3 jam untuk mencari tahu (Saya juga baru mengenal CSS / HTML, jadi begitulah ...)
EDIT
Per permintaan dalam komentar, saya menambahkan contoh dokumen HTML. Anda ingin menyalin ini ke file HTML, membukanya, dan kemudian memilih untuk mencetak halaman. Pratinjau cetak harus menunjukkan ini berfungsi. Ini berfungsi di Firefox dan IE pada akhirnya, tetapi Chrome membuat font cukup kecil untuk muat pada satu halaman, jadi itu tidak berfungsi di sana.
sumber
Saya telah mencari solusi selama bertahun-tahun dan menemukan posting ini tentang cara mencetak footer yang berfungsi pada banyak halaman tanpa tumpang tindih konten halaman.
Persyaratan saya adalah IE8, sejauh ini saya telah menemukan bahwa ini tidak berfungsi di Chrome. [ pembaruan ] Mulai 1 Maret 2018, ia juga berfungsi di Chrome
Contoh ini menggunakan tabel dan elemen tfoot dengan mengatur gaya css:
sumber
solusi ajaib benar-benar meletakkan segala sesuatu dalam satu tabel.
thead : ini untuk header berulang.
tfoot : footer berulang.
tbody : isinya.
dan buat satu tr, td dan letakkan semuanya di div
Kode ::
ekstra : untuk mencegah tumpang tindih dengan beberapa halaman. Suka:
yang menghasilkan overflow yang akan membuat segalanya tumpang tindih dengan header di dalam page break ..
jadi >> gunakan:
page-break-inside: avoid !important;
dengan kelas iniarticle
.cukup sederhana, harap ini akan memberi Anda hasil terbaik yang Anda inginkan.
salam Hormat. ;)
sumber
Dari pertanyaan ini - tambahkan gaya berikut ke lembar gaya cetak-saja. Solusi ini akan berfungsi di IE dan Firefox, tetapi tidak di Chrome (pada versi 21):
sumber
Gunakan istirahat halaman untuk menentukan gaya dalam CSS:
Kemudian tambahkan markup di dokumen di tempat yang sesuai:
Referensi
CSS Paged Media: Page Breaks
MDN: page-break-before
MDN: break-before
Tata Letak Multi-kolom
XHTML Print: Edisi Kedua
Webkit Bug 5097: break-after CSS2 tidak berfungsi
Cetak FAQ HTML: Apakah program akan menghargai gaya CSS seperti penghentian halaman?
Cara menangani page break saat mencetak tabel HTML besar
sumber
if the document was printed onto 5 pages
should
tidak berartidon't
.If
(hanya sebuah contoh) kataif
(hanya sebuah contoh) digunakan oleh OP, danif
(hanya sebuah contoh) OP tidak lagi aktif, apakah lebih baik memberikan jawaban tertentuif
(hanya sebuah contoh) sudah ada jawaban umum danif
(hanya sebuah contoh) bahasa (HTML / CSS) dan spesifikasi yang dimaksud dirancang untuk menghindari tipuan dan menyederhanakan dokumentasi ?If
(hanya sebuah contoh) jadi, mengapa? Kalau tidak, mengapa tidak?Saya mencoba untuk melawan pertarungan yang sia-sia ini dengan menggabungkan aturan tfoot & css tetapi hanya berhasil di Firefox :(. Saat menggunakan plain css, konten mengalir di atas footer. Saat menggunakan tfoot, footer di halaman terakhir tidak tetap bagus di bagian bawah. Ini karena footer tabel dimaksudkan untuk tabel, bukan halaman fisik. Diuji pada Chrome 16, Opera 11, Firefox 3 & 6 dan IE6.
sumber
Salah satu pendekatan yang hanya berfungsi untuk menambahkan tajuk ke setiap halaman adalah dengan membungkus konten Anda di dalam
<table>
dan kemudian menempatkan konten tajuk Anda dalam<thead>
tag dan konten Anda dalam<tbody>
tag, seperti:Ini berfungsi di Chrome, tidak 100% yakin tentang browser lain.
sumber
Jika Anda dapat menggunakan javascipt, minta klien menangani meletakkan konten menggunakan javascript untuk menempatkan elemen berdasarkan ruang yang tersedia.
Anda dapat menggunakan plugin jquery columnizer untuk secara dinamis meletakkan konten Anda dalam blok ukuran tetap dan posisikan header dan footer Anda sebagai bagian dari rutin rendering. http://welcome.totheinter.net/columnizer-jquery-plugin/
Lihat contoh 10 http://welcome.totheinter.net/autocolumn/sample10.html
Browser masih akan menambahkan header atau footernya sendiri jika diaktifkan di os. Tata letak yang konsisten di seluruh platform dan browser kemungkinan akan membutuhkan css bersyarat.
sumber
Saya terkejut dan tidak terkesan bahwa Chrome memiliki dukungan cetak CSS yang sangat buruk.
Tugas saya diperlukan menampilkan footer yang sedikit berbeda pada setiap halaman. Dalam kasus paling sederhana, hanya bab dan nomor halaman yang bertambah. Dalam kasus yang lebih kompleks, lebih banyak teks dalam footer - misalnya, beberapa catatan kaki - yang dapat memperbesar ukurannya, menyebabkan apa yang ada di area konten halaman menjadi menyusut dan sebagian darinya merefleksikan ke halaman berikutnya.
Cetak CSS tidak dapat menyelesaikan ini, setidaknya tidak dengan dukungan browser yang buruk hari ini. Tetapi melangkah keluar dari cetak, CSS3 dapat melakukan banyak hal:
https://jsfiddle.net/b9chris/moctxd2a/29/
SCSS:
Ada lebih banyak kode dalam contoh, termasuk beberapa Cat Ipsum; tetapi js yang digunakan hanya ada di sana untuk menunjukkan seberapa besar header / footer dapat bervariasi tanpa merusak pagination. Kuncinya adalah mengambil trik kolom-bawah-lengket dari CSS Flexbox dan kemudian menerapkannya ke halaman yang diketahui, ketinggian tetap - dalam hal ini, selembar kertas berukuran US ukuran 8,5 "x11", dengan 0,5. "Margin pergi
width: 7.5in
danheight: 10in
tepat. Setelah wadah fleksibel CSS diberi tahu ukurannya yang tepat (div.page
), mudah untuk mendapatkan header dan footer untuk memperluas dan mengontrak seperti yang mereka lakukan dalam tipografi konvensional.Apa yang tersisa mengalir konten halaman ketika footer, misalnya, tumbuh menjadi 8 catatan kaki bukan 3. Dalam kasus saya kontennya cukup diperbaiki sehingga saya tidak perlu khawatir tentang hal itu, tapi saya yakin ada cara untuk melakukannya. Salah satu pendekatan yang melompat ke pikiran, adalah untuk mengubah header dan footer menjadi 100% lebar mengapung, kemudian posisikan dengan Javascript. Peramban akan menangani interupsi aliran konten reguler untuk Anda secara otomatis.
sumber
Apakah ini sesuatu yang ingin Anda cetak saja? Anda bisa menambahkannya ke setiap halaman di situs Anda dan menggunakan CSS untuk mendefinisikan tag sebagai media hanya-cetak.
Sebagai contoh, ini bisa menjadi contoh tajuk:
Dan di CSS Anda, lakukan sesuatu seperti ini:
Akhirnya, untuk memasukkan header / footer pada setiap halaman yang Anda mungkin gunakan termasuk sisi-server atau jika Anda memiliki halaman yang dihasilkan dengan PHP atau ASP, Anda bisa memasukkannya ke file umum.
Edit:
Jawaban ini dimaksudkan untuk memberikan cara untuk menunjukkan sesuatu pada versi cetak fisik dari suatu dokumen sementara tidak menunjukkan sebaliknya. Namun seperti komentar yang disarankan, itu tidak menyelesaikan masalah memiliki catatan kaki di beberapa halaman yang dicetak ketika konten meluap.
Saya meninggalkannya di sini kalau-kalau itu membantu.
sumber
Jika Anda menggunakan mesin template seperti Asp.net Razor Engine atau Angular, saya pikir Anda harus membuat ulang halaman Anda dan membagi halaman menjadi beberapa halaman dan kemudian Anda dapat dengan bebas menandai setiap halaman dan menempatkan header dan footer pada tema. salah satu contoh bisa seperti di bawah ini:
sumber
Saya menemukan satu solusi. Gagasan dasarnya adalah membuat tabel dan di bagian aad menempatkan data header di tr dan dengan kekuatan css untuk menunjukkan bahwa tr hanya di cetak tidak di layar maka header normal Anda harus dipaksa untuk ditampilkan hanya di layar tidak di cetak. 100% bekerja pada banyak halaman yang dicetak. kode sampel ada di sini
sumber
Coba ini, bagi saya ini berfungsi pada Chrome, Firefox dan Safari. Anda akan mendapatkan header dan footer diperbaiki untuk setiap halaman tanpa tumpang tindih konten halaman
CSS
HTML
sumber
Berdasarkan beberapa posting, saya pikir
position: fixed
berfungsi untuk saya.Tekan Ctrl + P di chrome untuk melihat teks header & footer pada setiap halaman. Semoga ini bisa membantu
sumber