Torna al Thread

Private Sub PulSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PulSalva.Click sender.focus() ' ricevo il fuoco non va in automatico su una picture ' saveFileDialog1.InitialDirectory = "c:\" da sistemare 'saveFileDialog1.RestoreDirectory = True SaveFileDialog1.FileName = DocumentoPrint.DocumentName SaveFileDialog1.Filter = "Immagine BMP|*.BMP|Immagine GIF|*.GIF |Immagine Tiff|*.tiff|Immagine JPG|*.jpg" SaveFileDialog1.FilterIndex = 4 SaveFileDialog1.Title = "Salva Conto come Immagine" SaveFileDialog1.OverwritePrompt = False SaveFileDialog1.ShowDialog() PrintDocumentToImage(DocumentoPrint, SaveFileDialog1.FileName.Remove(SaveFileDialog1.FileName.Length - 4, 4), SaveFileDialog1.FilterIndex) End Sub Private Sub PrintDocumentToImage(ByVal DocumentoPrint As Printing.PrintDocument, ByVal Filename As String, ByVal FilterIndex As Integer) Dim controller As New Printing.PreviewPrintController controller.UseAntiAlias = False DocumentoPrint.PrintController = controller DocumentoPrint.Print() Dim FilenameA As String = "" Dim FormatoImmagine As Drawing.Imaging.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg Dim pages As Printing.PreviewPageInfo() = controller.GetPreviewPageInfo() Dim IndexPag As Integer Select Case FilterIndex Case 1 'bmp For IndexPag = 0 To pages.Length - 1 FilenameA = String.Format("{0}-{1}.bmp", Filename, IndexPag) RicavaImmagine(pages(IndexPag).Image, FilenameA, DocumentoPrint.DefaultPageSettings.PaperSize.Height, DocumentoPrint.DefaultPageSettings.PaperSize.Width, CmPx.Pixel, 150, DocumentoPrint.DefaultPageSettings.Landscape, Drawing.Imaging.ImageFormat.Bmp) Next IndexPag Case 2 'gif For IndexPag = 0 To pages.Length - 1 FilenameA = String.Format("{0}-{1}.gif", Filename, IndexPag) RicavaImmagine(pages(IndexPag).Image, FilenameA, DocumentoPrint.DefaultPageSettings.PaperSize.Height, DocumentoPrint.DefaultPageSettings.PaperSize.Width, CmPx.Pixel, 150, DocumentoPrint.DefaultPageSettings.Landscape, Drawing.Imaging.ImageFormat.Gif) Next IndexPag Case 3 ' da sistemare Tiff For IndexPag = 0 To pages.Length - 1 FilenameA = String.Format("{0}-{1}.tiff", Filename, IndexPag) RicavaImmagine(pages(IndexPag).Image, FilenameA, DocumentoPrint.DefaultPageSettings.PaperSize.Height, DocumentoPrint.DefaultPageSettings.PaperSize.Width, CmPx.Pixel, 150, DocumentoPrint.DefaultPageSettings.Landscape, Drawing.Imaging.ImageFormat.Tiff) Next IndexPag Case 4 'jpg For IndexPag = 0 To pages.Length - 1 FilenameA = String.Format("{0}-{1}.jpg", Filename, IndexPag) RicavaImmagine(pages(IndexPag).Image, FilenameA, DocumentoPrint.DefaultPageSettings.PaperSize.Height, DocumentoPrint.DefaultPageSettings.PaperSize.Width, CmPx.Pixel, 150, DocumentoPrint.DefaultPageSettings.Landscape, Drawing.Imaging.ImageFormat.Jpeg) Next IndexPag End Select End Sub Private Function RicavaImmagine(ByVal Immagine As Drawing.Image, ByVal NomeFile As String, ByVal Altezza As Integer, ByVal larghezza As Integer, ByVal MmoPixel As CmPx, ByVal Dpi As Integer, ByVal landscape As Boolean, ByVal FormatoImmagine As System.Drawing.Imaging.ImageFormat) As Boolean If landscape = True Then Dim AltezzaLarghezza As Integer = 0 AltezzaLarghezza = Altezza Altezza = larghezza larghezza = AltezzaLarghezza End If If MmoPixel = CmPx.Cm Then Altezza = Altezza / 2.54 * Dpi larghezza = larghezza / 2.54 * Dpi End If Dim nuova_immagine As New Bitmap(larghezza, Altezza) Dim temp As Graphics = Graphics.FromImage(nuova_immagine) temp.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic temp.DrawImage(Immagine, New Drawing.Rectangle(0, 0, larghezza, Altezza), New Drawing.Rectangle(0, 0, Immagine.Width, Immagine.Height), GraphicsUnit.Pixel) nuova_immagine.Save(NomeFile, FormatoImmagine) 'riliasciare gli oggetti caricati in memoria temp.Dispose() nuova_immagine.Dispose() End Function
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5