Lukisan ke Bentuk lalu ke Printer

Saya sering merasa perlu membuat laporan khusus yang TIDAK berfungsi dengan Crystal Reports atau Report Viewer. Seringkali, saya meretas DataTable bersama-sama dan membuangnya ke kontrol DataGridView. Tidak pernah cantik, dan pencetakannya sulit.

Yang saya perlukan adalah kelas yang bisa saya panggil menggunakan event OnPaint, tapi saya belum pernah duduk dan menulis semua perintah Pena dan Kuas sampai sekarang.

Melukis ke layar dan melukis ke printer keduanya menggunakan objek Graphics, jadi saya ingin membangun kelas yang akan saya lewati di objek Graphics, batas jendela saya (Rectangle), dan beberapa data (dalam bentuk instance kelas saya) yang akan saya gunakan untuk melukis formulir atau selembar kertas.

Kedengarannya seperti konsep yang bagus!

Pasti ada yang pernah melakukan hal seperti ini sebelumnya.

Adakah yang tahu buku, tutorial situs web, atau video yang membahas hal ini?

Jika seseorang ingin menuliskan semua itu untuk saya di sini, lebih banyak kekuatan untuk Anda - tetapi menurut saya itu akan terlalu merepotkan.


person jp2code    schedule 14.02.2011    source sumber
comment
Bagian yang paling rumit cenderung pada tata letak, tempat meletakkan objek berbeda pada halaman/layar. Jika Anda ingin gambar mengisi setengah halaman dan teks mengalir di samping atau serupa. Tapi itu tergantung pada kebutuhan Anda. Anda mungkin mencoba memberi tahu betapa rumitnya tata letak yang Anda perlukan untuk membantu mendapatkan jawaban yang sesuai.   -  person Albin Sunnanbo    schedule 14.02.2011
comment
Saya hanya mencari di mana untuk memulai pada saat ini. Sebagian besar info yang saya temukan tampaknya berfokus pada pengecatan ke Formulir ATAU pengecatan ke Printer. Saya telah membuat halaman web, dan ya, tata letaknya membosankan. Saya mencari sesuatu yang membahas Formulir dan Printer dalam satu contoh sehingga saya tidak harus mengatasi semua kesalahan yang terkait dengan pengalaman Noobie. :)   -  person jp2code    schedule 15.02.2011
comment
Sepertinya Anda sudah lama memecahkan masalah Anda, tetapi saya menyarankan siapa pun yang perlu melakukan ini harus mencoba ObjectListView. (objectlistview.sourceforge.net) Ini adalah kotak kecil yang bagus dan memiliki mode cetak yang mengubah kotak menjadi laporan. Anda dapat membuat gambar kustom jika Anda mau, baik dalam live grid maupun laporan cetak. Jika Anda kebanyakan hanya ingin mencetak grid data maka Anda harus mencobanya. Ini menggunakan lisensi sumber terbuka tetapi Anda dapat membayar untuk mendapatkan lisensi komersial (saya melakukannya).   -  person Steve Hiner    schedule 24.10.2014


Jawaban (2)


Bagaimana kalau membuat dokumen PDF menggunakan iText (perpustakaan PDF sumber terbuka gratis - http://itextpdf.com/) alih-alih objek grafisnya? Kemudian pengguna dapat memiliki laporan digital daripada laporan kertas, sedikit lebih ramah lingkungan...

person Taco    schedule 14.02.2011
comment
Saya masih harus membuat laporan. Tidak masalah apakah itu PDF atau Kertas asli, datanya harus diformat dan diberitahu ke mana harus pergi. Neo mungkin memahami angka 1 dan 0, tetapi manajemen dalam rapat tidak. - person jp2code; 15.02.2011
comment
Aku tahu. Kalimat kedua bukanlah yang terpenting. Tapi apa yang saya coba sarankan adalah melihat mendefinisikan laporan PDF menggunakan perpustakaan seperti iText (atau lainnya yang dapat membuat PDF) daripada menggunakan Graphics.DrawText dll secara langsung. Dengan cara itu Anda dapat melihatnya di layar, menyimpannya di meja atasan Anda dan Anda dapat mengirimkannya melalui email. - person Taco; 16.02.2011
comment
... atau dokumen Microsoft XPS (msdn.microsoft.com/en-us /magazine/cc163664.aspx) sebagai alternatif dokumen PDF. - person Taco; 16.02.2011
comment
Saya harus menggunakan objek Grafik dari acara OnPaint dan menulis teks saya ke posisi di layar untuk menampilkannya. Satu-satunya cara seseorang dapat mencetaknya (jika saya tidak mengkodekan sesuatu) adalah dengan menggunakan tombol Print Screen. Jika saya harus menggunakan objek Pena dan Kuas untuk membuat formulir agar dapat dilihat di layar, saya seharusnya dapat melakukan hal serupa untuk memasukkan data di layar ke printer. - person jp2code; 16.02.2011

Saya akhirnya menggunakan kotak dialog PrintPreview dan menulis semuanya di acara OnPaint.

Setelah selesai, saya membuang formulir sepenuhnya. Satu PrintPreview yang sebenarnya berfungsi sebagai formulir untuk dilihat Klien saya sebelum langsung ke printer.

FYI: Memposisikan setiap item di halaman itu membosankan.

person jp2code    schedule 18.03.2011