//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ private void SendButton_Click(object sender, EventArgs e) { DisableAllButtons(false); ChageStatusText("Status: PDF wird erstellt"); var TempPath = GetRandomTempFilePath(); new Thread(delegate() { CurPageControl.CreatePDF(TempPath, StatusBar); ChageStatusText("Status: Email wurde geöffnet"); OpenEmail(TempPath); DisableAllButtons(true); }).Start(); }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ private void DeletePageButton_Click(object sender, EventArgs e) { try { var CurIndex = AllPagesTabControl.SelectedIndex; CurPageControl.ClearTab(CurIndex); AllPagesTabControl.TabPages.RemoveAt(CurIndex); for (int i = 0; i < AllPagesTabControl.TabPages.Count; i++) { AllPagesTabControl.TabPages[i].Text = "Seite " + (i + 1).ToString(); } EnableButtons(); GC.Collect(); } catch (Exception ex) { Program.MeldeFehler(ex.Message + "\n" + ex.StackTrace); Environment.Exit(1); } }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ private void ResetScanButton_Click(object sender, EventArgs e) { CurPageControl.ClearTabs(); EnableButtons(); GC.Collect(); }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ private bool ResetTwain(int Modus) { try { TwainLib = new Twain(new WinFormsWindowMessageHook(this)); TwainLib.TransferImage += delegate(Object sender2, TransferImageEventArgs args) { new Thread(delegate() { if (!ReferenceEquals(args.Image, null)) { ScannedPageCount++; if (!CheckIfEmptyCheckBox.Checked || !IsImageEmpty(args.Image)) { using (var imageFactory = new ImageFactory(preserveExifData: true)) { var ImageByteArray = ImageToByteArray(args.Image); Image ScannedImage; using (var CurImageStream = new MemoryStream()) { imageFactory.Load(ImageByteArray).BitDepth(32).Format(new JpegFormat { Quality = 100 }).Save(CurImageStream); ScannedImage = Image.FromStream(CurImageStream); } CurPageControl.AddTab(ScannedImage); } } if (ScanFinished) { switch (Modus) { case 0: DisableAllButtons(true); EnableButtons(); ChageStatusText("Status:"); break; case 1: if (AllPagesTabControl.TabCount > 0) { ChageStatusText("Status: PDF wird erstellt"); var TempPath = GetRandomTempFilePath(); new Thread(delegate() { CurPageControl.CreatePDF(TempPath, StatusBar); ChageStatusText("Status:"); SavePDFDialog(TempPath); DisableAllButtons(true); EnableButtons(); }).Start(); } break; case 2: if (AllPagesTabControl.TabCount > 0) { ChageStatusText("Status: PDF wird erstellt"); var TempPath = GetRandomTempFilePath(); new Thread(delegate() { CurPageControl.CreatePDF(TempPath, StatusBar); ChageStatusText("Status: Email wurde geöffnet"); OpenEmail(TempPath); DisableAllButtons(true); EnableButtons(); }).Start(); } break; } } GC.Collect(); } }).Start(); }; TwainLib.ScanningComplete += delegate { ScanFinished = true; if (ScannedPageCount == 0) { ChageStatusText("Status:"); DisableAllButtons(true); EnableButtons(); } }; return(true); } catch (Exception ex) { if (ex.Message.ToLowerInvariant().Contains("default source".ToLowerInvariant())) { MessageBox.Show("Sie müssen zuerst ein Scanner durch die Treiber einrichten."); } else { Program.MeldeFehler(ex.Message + "\n" + ex.StackTrace); } Environment.Exit(1); return(false); } }