Saya punya laporan HTML, yang perlu dicetak lansekap karena banyak kolom. Apakah ada cara untuk melakukan ini, tanpa pengguna harus mengubah pengaturan dokumen?
Dan apa saja opsi di antara browser.
Di CSS Anda, Anda dapat mengatur properti @page seperti yang ditunjukkan di bawah ini.
@media print{@page {size: landscape}}
Halaman @ adalah bagian dari spesifikasi CSS 2.1 namun ini size
tidak disorot oleh jawaban untuk pertanyaan Apakah @ Halaman {size: landscape} usang? :
CSS 2.1 tidak lagi menentukan atribut ukuran. Draf kerja saat ini untuk modul Media P3 CSS3 tidak menentukan itu (tapi ini bukan standar atau diterima)
Sebagaimana dinyatakan opsi ukuran berasal dari Spesifikasi Draft CSS 3 . Secara teori dapat diatur ke ukuran halaman dan orientasi meskipun dalam sampel saya ukurannya dihilangkan.
Dukungan sangat dicampur dengan laporan bug mulai diajukan di firefox , sebagian besar browser tidak mendukungnya.
Ini mungkin terlihat berfungsi di IE7 tetapi ini karena IE7 akan mengingat pilihan terakhir landscape atau portrait pengguna dalam pratinjau cetak (hanya browser yang dimulai kembali).
Artikel ini memang memiliki beberapa karya yang disarankan menggunakan JavaScript atau ActiveX yang mengirim kunci ke browser pengguna meskipun mereka tidak ideal dan bergantung pada mengubah pengaturan keamanan browser.
Bergantian Anda dapat memutar konten daripada orientasi halaman. Hal ini dapat dilakukan dengan membuat gaya dan menerapkannya ke tubuh yang mencakup dua garis ini tetapi ini juga menarik untuk menciptakan banyak masalah pelurusan dan tata letak.
<style type="text/css" media="print">
.page
{
-webkit-transform: rotate(-90deg);
-moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
</style>
Alternatif terakhir yang saya temukan adalah membuat versi lanskap dalam PDF. Anda dapat menunjuk ke sana ketika pengguna memilih untuk mencetaknya mencetak PDF. Namun saya tidak bisa mendapatkan ini untuk pekerjaan cetak otomatis di IE7.
<link media="print" rel="Alternate" href="print.pdf">
Kesimpulannya di beberapa browser itu relatif mudah menggunakan opsi ukuran halaman tetapi dalam banyak browser tidak ada cara pasti dan itu akan tergantung pada konten dan lingkungan Anda. Ini mungkin mengapa Google Documents membuat PDF ketika cetak dipilih dan kemudian memungkinkan pengguna untuk membuka dan mencetaknya.
@page size
Tampaknya tidak berfungsi di semua browser modern, hanya Firefox. Chrome dan Opera sama-sama mengabaikan ini sejauh yang saya lihat.size: landscape
adalah TIDAK bagian dari CSS2.1, meskipun@page
aturan. Namun, ini adalah bagian dari CSS3. Untuk konfirmasi, coba gunakan W3C CSS Validator dan masukkan@page {size: landscape}
dan bandingkan hasilnya dengan "Profil" yang disetel ke level 2.1 vs level 3.Solusi saya:
Ini berfungsi
IE
,Firefox
danChrome
sumber
class
div tertentu berada di lanskap dan bukan seluruh halaman?Tidak cukup hanya dengan memutar konten halaman. Berikut ini adalah CSS kanan yang berfungsi di sebagian besar browser (Chrome, Firefox, IE9 +).
Setel tubuh pertama
margin
ke 0, karena jika tidak, margin halaman akan lebih besar daripada yang Anda atur dalam dialog cetak. Juga aturbackground
warna untuk memvisualisasikan halaman.margin
,border
danbackground
diminta untuk memvisualisasikan halaman.padding
harus diatur ke margin cetak yang diperlukan. Dalam dialog cetak Anda harus mengatur margin yang sama (10mm dalam contoh ini).Ukuran halaman A4 adalah 210mm x 297mm. Anda perlu mengurangi margin cetak dari ukurannya. Dan atur ukuran konten halaman:
Saya menggunakan 276mm bukan 277mm, karena browser yang berbeda skala halamannya sedikit berbeda. Jadi beberapa dari mereka akan mencetak konten setinggi 277mm pada dua halaman. Halaman kedua akan kosong. Lebih aman menggunakan 276mm.
Kami tidak membutuhkan
margin
,border
,padding
,background
pada halaman yang dicetak, sehingga menghapusnya:Perhatikan bahwa asal mula transformasi adalah
0 0
! Juga konten halaman landscape harus dipindahkan 276mm ke bawah!Juga jika Anda memiliki campuran halaman potret dan lanscape, IE akan memperkecil halaman. Kami memperbaikinya dengan menetapkan
-ms-zoom
ke 1.665. Jika Anda mengaturnya menjadi 1,6666 atau sesuatu seperti ini, batas kanan konten halaman terkadang dapat dipotong.Jika Anda perlu IE8- atau browser tua lainnya mendukung Anda dapat menggunakan
-webkit-transform
,-moz-transform
,filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)
. Tetapi untuk browser yang cukup modern, itu tidak diperlukan.Ini adalah halaman pengujian:
sumber
Dikutip dari CSS-Diskusikan Wiki
sumber
Coba tambahkan ini CSS Anda:
sumber
The
size
properti adalah apa yang Anda setelah seperti yang disebutkan. Untuk mengatur orientasi dan ukuran halaman Anda saat mencetak, Anda dapat menggunakan yang berikut ini:Berikut tautan ke dokumentasi @page .
sumber
.css
file terpisah atau jika itu inline, deklarasi boostrap default (size: a3
) akan diutamakan.Anda mungkin dapat menggunakan aturan CSS 2 @ halaman yang memungkinkan Anda untuk mengatur properti 'size' menjadi landscape .
sumber
Anda juga dapat menggunakan mode penulisan atribut - css atribut IE-saja
sumber
tidak bekerja di Firefox 16.0.2 tetapi berfungsi di Chrome
sumber
Saya membuat Dokumen MS kosong dengan pengaturan Lansekap dan kemudian membukanya di notepad. Menyalin dan menempelkan yang berikut ke halaman html saya
Pratinjau cetak menampilkan halaman dalam ukuran lanskap. Ini tampaknya berfungsi baik pada IE dan Chrome, tidak diuji pada FF.
sumber
Saya mencoba menyelesaikan masalah ini satu kali, tetapi semua penelitian saya mengarahkan saya ke kontrol / plug-in ActiveX. Tidak ada trik yang diizinkan oleh peramban (3 tahun yang lalu) untuk mengubah pengaturan cetak (jumlah salinan, ukuran kertas).
Saya berupaya keras untuk memperingatkan pengguna dengan hati-hati bahwa mereka perlu memilih "lansekap" ketika dialog cetak browser muncul. Saya juga membuat halaman "print preview", yang bekerja jauh lebih baik daripada IE6! Aplikasi kami memiliki tabel data yang sangat luas dalam beberapa laporan, dan pratinjau cetak membuatnya menjadi jelas bagi pengguna ketika tabel akan menumpahkan sisi kanan kertas (karena IE6 tidak dapat mengatasi pencetakan pada 2 lembar juga).
Dan ya, orang masih menggunakan IE6 bahkan sekarang.
sumber
Jika Anda ingin gaya ini diterapkan ke tabel maka buat satu tag div dengan kelas gaya ini dan tambahkan tag tabel dalam tag div ini dan tutup tag div di akhir.
Tabel ini hanya akan mencetak dalam lanskap dan semua halaman lainnya hanya akan mencetak dalam mode potret. Tetapi masalahnya adalah jika ukuran tabel lebih dari lebar halaman maka kita mungkin kehilangan beberapa baris dan terkadang header juga tidak terjawab. Hati-hati.
Semoga harimu menyenangkan.
Terima kasih, Naveen Mettapally.
sumber
Saya mencoba jawaban Denis dan mendapatkan beberapa masalah (halaman potret tidak dicetak dengan benar setelah halaman lanskap), jadi inilah solusi saya:
sumber
Ini juga bekerja untuk saya:
sumber
Jika Anda ingin melihat lansekap di layar sebelum Anda mencetak, serta mencetak, maka di css Anda, Anda dapat mengatur lebarnya menjadi 900px, dan tingginya menjadi 612px.
OP tidak menyebutkan ukuran A4. Saya menganggap itu ukuran Surat di nomor saya di atas.
sumber
Anda dapat mencoba yang berikut ini:
sumber