2012-12-18 34 views
6

Một nền tảng nhỏ: Tạo chương trình tạo báo cáo và biểu mẫu từ đầu vào cơ sở dữ liệu. Tôi có tất cả mọi thứ và chạy tốt, nhưng tôi dường như không thể tìm ra vấn đề in ấn của tôi. Tôi đã thử một số phương pháp để in tới máy in và mọi tài liệu mà tôi in từ chương trình tùy chỉnh của tôi hơi lệch tâm ở bên phải trên trang.Phương pháp ưa thích để in bằng máy in trong VB.NET là gì?

Tôi hiểu lý do cho điều này là chính máy in, nhưng làm thế nào tôi có thể chứa cho điều này? Trong bản xem trước bản in, báo cáo trông hoàn hảo. Tôi cần một số hướng dẫn về những phương pháp sẽ làm việc trên nhiều, đa dạng, máy in trong VB.NET. Bất kỳ trợ giúp nào cũng được đánh giá rất cao.

Trả lời

1

Thay vì sử dụng e.pagebounds cho hộp giới hạn, hãy thử sử dụng e.graphics.VisibleClipBounds. Một số trình điều khiển máy in có một chút không đáng tin cậy với e.pagebounds và các visibleclipbounds có vẻ chính xác hơn.

Ví dụ:

Sub printPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) 
Dim g As Graphics 
g = e.Graphics 
g.ResetTransform() 

g.VisibleClipBounds bây giờ là một hình chữ nhật đó nên kích thước trang tối đa, và có thể được sử dụng để tập trung văn bản hoặc đồ họa. Chỉ cần sử dụng g làm đối tượng đồ họa để xuất ra máy in. Trung tâm nằm ngang của trang là

g.VisibleClipBounds.Left + g.VisibleClipBounds.Width/2 
+0

Bạn có thể đăng ví dụ về hành động này hay không. Tôi đã thử điều này và dường như không thể thực hiện điều này một cách chính xác. – FailHorse

+0

Tôi đã chỉnh sửa câu trả lời để thêm câu trả lời này. – xpda

Các vấn đề liên quan