Artikel ini menunjukkan kepada Anda bagaimana untuk membuat contoh proyek yang menambahkan cetak Pratinjau kemampuan program Visual Basic Anda dengan menggunakan objek generik dan objek Printer. Artikel ini mengasumsikan Anda sudah familiar dengan objek dan kontrol Dialog umum dalam Visual Basic.
INFORMASI LEBIH LANJUT
Membuat contoh proyek
- Memulai sebuah proyek Standard EXE yang baru dalam Visual Basic. Form1 dibuat oleh default.
- Menambahkan referensi ke Microsoft umum Dialog kontrol 6.0 dengan menyelesaikan langkah-langkah berikut:
- Dari proyek menu, pilih komponen untuk menampilkan komponen kotak dialog.
- Dari tab kontrol, memeriksa Microsoft umum Dialog kontrol 6.0.
- Klik OK untuk menutup kotak dialog komponen.
- Tambahkan CommandButtons tiga, dua PictureBox kontrol, dan satu umum Dialog kontrol untuk Form1.
- Salin kode berikut ke jendela kode Form1:
Option Explicit Private Sub Form_Load() CommonDialog1.CancelError = True Command1.Caption = "Load Picture" Command2.Caption = "Print Preview" Command3.Caption = "Print" End Sub Private Sub Command1_Click() Dim sFileFilter As String On Error GoTo ErrHandler sFileFilter = "Bitmap Files (*.bmp)|*.bmp|" sFileFilter = sFileFilter & "GIF Files (*.gif)|*.gif|" sFileFilter = sFileFilter & "Icon Files (*.ico)|*.ico|" sFileFilter = sFileFilter & "JPEG Files (*.jpg)|*.jpg|" sFileFilter = sFileFilter & "Windows MetaFiles (*.wmf)|.wmf" With CommonDialog1 .Filter = sFileFilter .ShowOpen If .FileName <> " " Then Picture2.Picture = LoadPicture(.FileName) End If End With ErrHandler: Exit Sub End Sub Private Sub Command2_Click() Dim dRatio As Double dRatio = ScalePicPreviewToPrinterInches(Picture1) PrintRoutine Picture1, dRatio End Sub Private Sub Command3_Click() Printer.ScaleMode = vbInches PrintRoutine Printer Printer.EndDoc End Sub Private Function ScalePicPreviewToPrinterInches _ (picPreview As PictureBox) As Double Dim Ratio As Double ' Ratio between Printer and Picture Dim LRGap As Double, TBGap As Double Dim HeightRatio As Double, WidthRatio As Double Dim PgWidth As Double, PgHeight As Double Dim smtemp As Long ' Get the physical page size in Inches: PgWidth = Printer.Width / 1440 PgHeight = Printer.Height / 1440 ' Find the size of the non-printable area on the printer to ' use to offset coordinates. These formulas assume the ' printable area is centered on the page: smtemp = Printer.ScaleMode Printer.ScaleMode = vbInches LRGap = (PgWidth - Printer.ScaleWidth) / 2 TBGap = (PgHeight - Printer.ScaleHeight) / 2 Printer.ScaleMode = smtemp ' Scale PictureBox to Printer's printable area in Inches: picPreview.ScaleMode = vbInches ' Compare the height and with ratios to determine the ' Ratio to use and how to size the picture box: HeightRatio = picPreview.ScaleHeight / PgHeight WidthRatio = picPreview.ScaleWidth / PgWidth If HeightRatio < WidthRatio Then Ratio = HeightRatio smtemp = picPreview.Container.ScaleMode picPreview.Container.ScaleMode = vbInches picPreview.Width = PgWidth * Ratio picPreview.Container.ScaleMode = smtemp Else Ratio = WidthRatio smtemp = picPreview.Container.ScaleMode picPreview.Container.ScaleMode = vbInches picPreview.Height = PgHeight * Ratio picPreview.Container.ScaleMode = smtemp End If ' Set default properties of picture box to match printer ' There are many that you could add here: picPreview.Scale (0, 0)-(PgWidth, PgHeight) picPreview.Font.Name = Printer.Font.Name picPreview.FontSize = Printer.FontSize * Ratio picPreview.ForeColor = Printer.ForeColor picPreview.Cls ScalePicPreviewToPrinterInches = Ratio End Function Private Sub PrintRoutine(objPrint As Object, _ Optional Ratio As Double = 1) ' All dimensions in inches: ' Print some graphics to the control object objPrint.Line (1, 1)-(1 + 6.5, 1 + 9), , B objPrint.Line (1.1, 2)-(1.1, 2) objPrint.PaintPicture Picture2, 1.1, 1.1, 0.8, 0.8 objPrint.Line (2.1, 1.2)-(2.1 + 5.2, 1.2 + 0.7), _ RGB(200, 200, 200), BF ' Print a title With objPrint .Font.Name = "Arial" .CurrentX = 2.3 .CurrentY = 1.3 .FontSize = 35 * Ratio objPrint.Print "Visual Basic Printing" End With ' Print some circles Dim x As Single For x = 3 To 5.5 Step 0.2 objPrint.Circle (x, 3.5), 0.75 Next ' Print some text With objPrint .Font.Name = "Courier New" .FontSize = 30 * Ratio .CurrentX = 1.5 .CurrentY = 5 objPrint.Print "It is possible to do" .FontSize = 24 * Ratio .CurrentX = 1.5 .CurrentY = 6.5 objPrint.Print "It is possible to do print" .FontSize = 18 * Ratio .CurrentX = 1.5 .CurrentY = 8 objPrint.Print "It is possible to do print preview" End With End Sub
- Pada Run menu, pilih Start, atau tekan tombol F5 untuk memulai program. Klik Load gambar CommandButton untuk membuka kotak Dialog umum. Pilih file grafis yang sesuai dan klik OK. Grafis ditampilkan di PictureBox. Klik CommandButton Preview cetak untuk Menampilkan grafis dan beberapa teks di PictureBox lain. Klik CommandButton cetak untuk mencetak isi PictureBox. (http://support.microsoft.com/kb/193379/id-id)
0 komentar:
Post a Comment