Apa cara terbaik untuk mencetak konten DIV?
javascript
jquery
html
printing
usertest
sumber
sumber
Jawaban:
Sedikit perubahan pada versi sebelumnya - diuji pada CHROME
sumber
mywindow.document.write(data);
Tambahkan ini:mywindow.document.write('<script type="text/javascript">$(window).load(function() { window.print(); window.close(); });</script>');
Dan hapus:mywindow.print();
danmywindow.close();
Saya pikir ada solusi yang lebih baik. Buat div Anda untuk mencetak menutupi seluruh dokumen, tetapi hanya ketika itu dicetak:
sumber
Meskipun ini telah dikatakan oleh @ gabe , Jika Anda menggunakan jQuery, Anda dapat menggunakan
printElement
plugin saya .Ada contoh di sini , dan informasi lebih lanjut tentang plugin di sini .
Penggunaannya agak lurus ke depan, ambil saja elemen dengan pemilih jQuery dan cetak:
Saya harap ini membantu!
sumber
Menggunakan Jquery, cukup gunakan fungsi ini:
Tombol cetak Anda akan terlihat seperti ini:
Sunting: Jika Anda memiliki data formulir yang perlu Anda simpan, klon tidak akan menyalinnya, jadi Anda hanya perlu mengambil semua data formulir dan menggantinya setelah mengembalikan seperti itu:
sumber
el
sangat buruk, terutama karena menggunakan jQ. Jauh lebih baik untuk hanya lulusselector
dan menyingkirkan kode keras#
el
. Saya pikir perintah cetak dikirim ketika tubuh sedang dipulihkan.Dari sini http://forums.asp.net/t/1261525.aspx
sumber
saya menggunakan
Bill Paetzke
jawaban untuk mencetak div yang berisi gambar tetapi tidak bekerja dengan google chromesaya hanya perlu menambahkan baris ini
myWindow.onload=function(){
untuk membuatnya berfungsi dan di sini adalah kode lengkapjuga jika seseorang hanya perlu mencetak div dengan id dia tidak perlu memuat jquery
di sini adalah kode javascript murni untuk melakukan ini
Saya harap ini dapat membantu seseorang
sumber
Ini akan mencetak
div
area yang Anda inginkan dan mengatur konten kembali seperti semula.printdivname
adalahdiv
untuk dicetak.sumber
Buat lembar gaya cetak terpisah yang menyembunyikan semua elemen lain kecuali konten yang ingin Anda cetak. Tandai menggunakan itu
'media="print"
saat Anda memuatnya:<link rel="stylesheet" type="text/css" media="print" href="print.css" />
Ini memungkinkan Anda untuk memiliki lembar gaya yang sama sekali berbeda untuk dicetak.
Jika Anda ingin memaksa dialog cetak browser muncul untuk halaman tersebut, Anda dapat melakukannya seperti ini saat memuat menggunakan JQuery:
$(function() { window.print(); });
atau dipicu dari acara lain yang Anda inginkan seperti pengguna mengklik tombol.
sumber
Saya pikir solusi yang diusulkan sejauh ini memiliki kelemahan berikut:
Saya telah meningkatkan solusi di atas. Berikut adalah sesuatu yang telah saya uji yang bekerja sangat baik dengan manfaat berikut.
Poin-Poin Penting untuk diperhatikan:
sumber
Saya menulis sebuah plugin untuk mengatasi skenario ini. Saya tidak senang dengan plugin di luar sana, dan mulai membuat sesuatu yang lebih luas / dapat dikonfigurasi.
https://github.com/jasonday/printThis
sumber
Solusi yang diterima tidak berfungsi. Chrome mencetak halaman kosong karena itu tidak memuat gambar pada waktunya. Pendekatan ini bekerja:
Sunting: Tampaknya solusi yang diterima diubah setelah posting saya. Mengapa downvote? Solusi ini juga berfungsi.
sumber
Saya tahu ini adalah pertanyaan lama, tetapi saya memecahkan masalah ini dengan jQuery.
CSS
sumber
Meskipun jawaban @BC adalah yang terbaik untuk mencetak satu halaman.
Tetapi Untuk mencetak banyak halaman berukuran A4 secara bersamaan dengan ctrl + P solusi berikut dapat membantu.
sumber
sumber
Ini adalah plugin cetak jquery saya
sumber
Jika Anda ingin memiliki semua gaya dari dokumen asli (termasuk gaya sebaris), Anda dapat menggunakan pendekatan ini.
Penerapan:
sumber
Catatan: Ini hanya berfungsi dengan situs yang mengaktifkan jQuery
Sangat sederhana dengan trik keren ini. Ini bekerja untuk saya di browser Google Chrome . Firefox tidak akan memungkinkan Anda untuk mencetak ke PDF tanpa plugin.
Logikanya sederhana. Kami membuat tag skrip baru dan melampirkannya di depan tag tubuh penutup. Kami menyuntikkan ekstensi cetak jQuery ke HTML. Ubah myDivWithStyles dengan ID tag Div Anda sendiri. Sekarang dibutuhkan persiapan jendela virtual yang dapat dicetak.
Cobalah di situs mana saja. Hanya peringatan yang kadang-kadang ditulis dengan CSS sulit yang dapat menyebabkan hilangnya gaya. Tapi kami sering mendapatkan konten.
sumber
Di Opera, coba:
sumber
Berikut ini adalah solusi IFrame yang berfungsi untuk IE dan Chrome:
sumber
Membuat sesuatu yang generik untuk digunakan pada elemen HTML apa pun
Semoga ini membantu.
sumber
Saya memodifikasi jawaban @BillPaetski untuk menggunakan kueriSelektor, menambahkan CSS opsional, menghapus tag H1 yang dipaksakan dan membuat judul ditentukan secara spesifik atau ditarik dari jendela. Ini juga tidak mencetak secara otomatis lagi dan mengekspos internal sehingga mereka dapat diaktifkan dalam fungsi pembungkus atau seperti yang Anda inginkan.
Hanya dua vars pribadi adalah tmpWindow dan tmpDoc meskipun saya percaya akses judul, css dan elem dapat bervariasi, harus diasumsikan bahwa semua argumen fungsi bersifat pribadi.
Kode: Pemakaian:sumber
<input>
elemen. Bagaimana saya bisa menggunakan ini termasuk apa yang diketik pengguna?<input>
,<select>
,<textarea>
compontents menjadi nilai runtime mereka. Ada beberapa alternatif, tetapi ini bukan masalah dengan skrip ini, tetapi masalah dengan cara kerja browser, dan dapatkaninnerHTML
properti dokumen dengan input, kanvas, dll..attr('value',)
. Saya bahkan sudah melakukannya untuk textarea (dengan menambahkan) dan kotak centang (.attr('checked',)
). Saya menyesal jika saya tidak berpikir cukup tentang apa yang saya minta.Kode di bawah ini menyalin semua node yang relevan yang ditargetkan oleh pemilih kueri, salinan gaya mereka seperti yang terlihat di layar, karena banyak elemen induk yang digunakan untuk menargetkan penyeleksi css akan hilang. Ini menyebabkan sedikit kelambatan jika ada banyak simpul anak dengan banyak gaya.
Idealnya Anda memiliki lembar gaya cetak yang siap, tetapi ini untuk kasus-kasus penggunaan di mana tidak ada lembar gaya cetak yang akan dimasukkan dan Anda ingin mencetak seperti yang terlihat di layar.
Jika Anda menyalin item di bawah ini di konsol browser pada halaman ini, ia akan mencetak semua potongan kode di halaman ini.
sumber
Ini benar-benar posting lama tapi ini adalah salah satu pembaruan yang saya buat menggunakan jawaban yang benar. Solusi saya juga menggunakan jQuery.
Intinya adalah menggunakan tampilan cetak yang tepat, sertakan semua lembar gaya untuk pemformatan yang tepat dan juga untuk didukung di sebagian besar browser.
Nanti Anda perlu sesuatu seperti ini:
Cobalah.
sumber
Sama dengan jawaban terbaik, kalau-kalau Anda perlu mencetak gambar seperti yang saya lakukan:
Jika Anda ingin mencetak gambar:
sumber
load
acara di sembulan. Tanpanya Anda akan mencetak halaman kosong karena gambar tidak dimuat. =>$(popup).load(function(){ popup.focus(); popup.print(); });
Cara terbaik untuk melakukannya adalah dengan mengirimkan konten div ke server dan membuka jendela baru di mana server dapat meletakkan konten-konten itu ke jendela baru.
Jika itu bukan opsi, Anda dapat mencoba menggunakan bahasa sisi klien seperti javascript untuk menyembunyikan segala sesuatu di halaman kecuali div itu dan kemudian mencetak halaman ...
sumber