• Thứ Hai, 17/08/2009 09:59 (GMT+7)

    Lập trình In nội dung form

    Câu hỏi :

    1. Trên 1 Form có chứa nhiều đối tượng (PictureBox, Label....), làm sao để in nội dung của Form này ra đầy trang giấy A4? Lệnh PrintForm chỉ cho ra nửa trang A4.
    2. Trong 1 Picture có chứa nhiều đối tượng, dài hơn chiều dài của Form, làm sao để in ra giấy toàn bộ các thành phần chứa trong Picture đó (có thể in ra nhiều trang)?



    Trả lời :
    1. Trong 1 Form VB 6.0, lệnh PrintForm có nhiệm vụ copy từng pixel nội dung của Form ra máy in sao cho kích thước của Form trên trang giấy gần bằng với kích thước Form trên màn hình. Do đó, tùy theo kích thước Form trên màn hình lớn hay nhỏ mà kết quả in ra giấy sẽ lớn hay nhỏ theo chứ không phải như bạn nói là Form luôn chiếm nửa trang giấy A4.

     2. Để in nội dung văn bản hay đồ họa ra máy in theo yêu cầu riêng, bạn nên dùng các tác vụ phục vụ mục đích này của đối tượng Printer (gồm các tác vụ như Print, PSet, Line, Circle, PaintPicture). Thí dụ tác vụ PaintPicture có nhiệm vụ vẽ một vùng bitmap hình chữ nhật đã có trong ảnh gốc ra một vùng với kích thước xác định trên giấy, tác vụ PaintPicture sẽ phóng to/thu nhỏ vùng ảnh gốc để in đúng vào vùng in trên giấy với kích thước xác định. Thí dụ đoạn code VB 6.0 sau đây sẽ in 1 ảnh chụp có kích thước gốc 2304*3072 pixel ra vùng in trên giấy có kích thước 16*22cm:

     Private Sub Command1_Click()
     'giả sử đối tượng PictureBox Picture1 đang chứa ảnh gốc
     'thiết lập đơn vị đo cho đối tượng gốc
     Picture1.ScaleMode = vbCentimeters
     'thiết lập đơn vị đo cho máy in
     Printer.ScaleMode = vbCentimeters
     'chuẩn bị tờ giấy mới
     Printer.NewPage
     'in toàn bộ ảnh gốc ra vùng in 16x22 cm trên giấy
     'bắt đầu ở tọa độ lề trái 2 cm, lề trên 3cm
     Printer.PaintPicture Picture1, 2, 3, 16, 22, 0, 0, , , vbSrcCopy
     'chính thức in ra giấy và kéo giấy ra
     Printer.EndDoc
     End Sub

     Tóm lại, bạn có thể lập trình chia ảnh gốc cần in ra nhiều phần theo nhu cầu rồi in từng phần lên 1 hay nhiều tờ giấy in với kích thước tùy ý.
     
    Chuyên mục: Lập trình