Ich kann zwar verschiedene Dokumente drucken, indem ich per Process.Start() und dem Verb "Print" einen Prozess starte, bei TIFFs scheint dies aber daneben zu gehen, der Image Viewer wird geöffnet, ohne das Bild auf den Standarddrucker zu schicken.
Eine Suche im Intenet führte mich zu folgendem Code:
Jetzt habe ich aber das Problem, dass das Bild über die Grenzen des Papiers hinausragt (obwohl es ursprünglich als A4-Dokument eingescannt wurde, passt nur das rechte obere Viertel auf den Ausdruck), und es wird auch nur eine Seite gedruckt, was selbst nach einer Skalierung fatal wäre, wenn das TIFF-Dokument mehrere Seiten umfasst.
Wie skaliere ich das Bild für den Ausdruck auf auf Papiergröße? Wie drucke ich alle Seiten? Und sind Druckereinstellungen, die ich verändere permanent, müsste ich also die alten Einstellungen sichern, um sie wieder zurückzuschreiben, und wie mache ich das?
Gruß
Martin
Eine Suche im Intenet führte mich zu folgendem Code:
Code:
.... Dim m_pd As New Printing.PrintDocument() AddHandler m_pd.PrintPage, AddressOf PrintMe m_pd.DocumentName = filename Me.PrintFileName = filename m_pd.Print() .... Private Sub PrintMe(ByVal sender As Object, ByVal e As PrintPageEventArgs) Dim gr As Graphics = e.Graphics ' Verweis auf das Bild festlegen Dim oImage As Image = Image.FromFile(PrintFileName) ' Rechteck für den Ausdruck festlegen ' Position + Originalgröße Dim p As New Point(e.MarginBounds.Left, e.MarginBounds.Top) Dim r As New Rectangle(p.X, p.Y, oImage.Width, oImage.Height) ' Bild drucken im angegebenen Rechteck drucken gr.DrawImage(oImage, r) gr.Dispose() End Sub
Wie skaliere ich das Bild für den Ausdruck auf auf Papiergröße? Wie drucke ich alle Seiten? Und sind Druckereinstellungen, die ich verändere permanent, müsste ich also die alten Einstellungen sichern, um sie wieder zurückzuschreiben, und wie mache ich das?
Gruß
Martin