This topic and its replies were posted before the current version of LEADTOOLS was released and may no longer be applicable.
#1
Posted
:
Tuesday, February 20, 2007 6:16:13 AM(UTC)
Groups: Registered
Posts: 16
I followed the sample code provided in the documentation for Print a Real Image Size in Inches and also tried the code in the VB Main Demo but still cannot get any of my documents to print correctly. The documents are printed much smaller than the original size. I am using LEADTOOLS v14.5 build 37 for NET. Also, is it possible to set the paper size to legal for each print job? How?
Here's the first code that I used:
Private Sub mnu_ScanPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_ScanPrint.Click
' Check for printer on this machine
If (Not IsNothing(PrinterSettings.InstalledPrinters)) And (PrinterSettings.InstalledPrinters.Count > 0) Then
If Not prt_ScanDoc Is Nothing Then
prt_ScanDoc.Print()
End If
End If
End Sub
Private Sub prt_ScanDoc_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles prt_ScanDoc.PrintPage
Dim Image As IRasterImage
Dim Printer As New RasterImagePrinter
Image = RasterImageViewer1.Image
Printer.Print(Image, Image.Page, e)
End Sub
This is the second set of code that I tried after the first didn't work:
Private Sub mnu_ScanPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_ScanPrint.Click
' Check for printer on this machine
If (Not IsNothing(PrinterSettings.InstalledPrinters)) And (PrinterSettings.InstalledPrinters.Count > 0) Then
If Not prt_ScanDoc Is Nothing Then
prt_ScanDoc.Print()
End If
End If
End Sub
Private Sub prt_ScanDoc_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles prt_ScanDoc.PrintPage
Dim TotalWidth As Single
Dim TotalHeight As Single
Dim ImageWidth As Single
Dim ImageHeight As Single
Dim ScanGraphics As Graphics
Dim Ratio As Single
Dim RasterRectangle As RectangleF
Dim RasterProp As RasterPaintProperties
' Print current document displayed in RasterImageViewer1
ImageWidth = RasterImageViewer1.Image.ImageWidth * (RasterImageViewer1.Image.XResolution / e.Graphics.DpiX)
ImageHeight = RasterImageViewer1.Image.ImageHeight * (RasterImageViewer1.Image.YResolution / e.Graphics.DpiY)
ScanGraphics = RasterImageViewer1.CreateGraphics
Try
TotalWidth = e.MarginBounds.Width * (e.Graphics.DpiX / ScanGraphics.DpiX)
TotalHeight = e.MarginBounds.Height * (e.Graphics.DpiY / ScanGraphics.DpiY)
Catch ex As System.Exception
My.Application.Log.WriteException(ex)
Finally
ScanGraphics.Dispose()
End Try
Ratio = TotalWidth / ImageWidth
If ((Ratio * ImageHeight) > TotalHeight) Then
Ratio = TotalHeight / ImageHeight
End If
RasterRectangle = New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, 3.8 * ImageWidth, 3.8 * ImageHeight)
RasterProp = RasterPaintProperties.Default
RasterProp.PaintDisplayMode = RasterPaintDisplayModeFlags.ScaleToGray
RasterImageViewer1.Image.Paint(e.Graphics, Rectangle.Round(RasterRectangle), RasterProp)
End Sub
#2
Posted
:
Wednesday, February 21, 2007 11:15:43 AM(UTC)
Groups: Registered, Tech Support, Administrators
Posts: 764
Your second code example looks like it is close to the "Print a Real Image Size in Inches" but with a couple minor modifications. Where does 3.8 come from? In our sample you would be using the Ratio calculated from TotalHeight / ImageHeight. Was this just trial and error to get the desired result?
Are you sure that your image is printing incorrectly? The point of this topic is to have the image print exactly the size it should be on paper. This will take into consideration your image's DPI. If your image is something like 300x600 pixels and it's DPI is 300, then your image on paper will only be 1x2 inches.
As for changing the paper size, you should be able to do this by using the System.Drawing.Printing.PrintDocument class' DefaultPageSettings.PaperSize property. Something like this would do the trick:
Dim pd As New Printing.PrintDocument
pd.DefaultPageSettings.PaperSize = New PaperSize("Letter", 850, 1400)
If you are still having problems, please send us the file you are trying to print as well and a scan of the page you printed with your code.
NOTE: If you are attaching a project or file to the forums...
1.) Zip the file(s) up.
2.) Make sure it is less than 5 MB. If it is larger, please send an email to
support@leadtools.com or give us your email address and we'll send you FTP instructions.
3.) Remove ANY AND ALL unlock codes and LEADTOOLS DLLs.
4.) Do not click the preview button, the attachment will not show up when you post it.
If you do not wish to post your file(s) on the forum since they are publically viewable, please send an email to
support@leadtools.com and make sure that you include a link to this forum post.
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.