private void _btnOk_Click(object sender, EventArgs e) { _checkedImgsCount = 0; for (int i = 0; i < _cLbImages.Items.Count; i++) { if (_cLbImages.GetItemChecked(i)) { _checkedImgsCount++; } } if (_maxImgNum != _checkedImgsCount) { Messager.ShowWarning(this, string.Format("For this Merg type you must select {0} images exactly", _maxImgNum)); DialogResult = DialogResult.None; return;; } if (_mergeImage != null) { _mergeImage.Dispose(); } for (int i = 0; i < _cLbImages.Items.Count; i++) { if (_cLbImages.GetItemChecked(i)) { if (_mergeImage == null) { _mergeImage = _images[i].Image.Clone(); } else { _mergeImage.AddPages(new RasterImage(_images[i].Image), 1, 1); } } } DialogResult = DialogResult.OK; }
private void AddMasterFormPages(RasterImage imagesToAdd, DiskMasterForm currentform, string folderName) { try { DiskMasterForm currentMasterForm = currentform; FormRecognitionAttributes attributes = currentMasterForm.ReadAttributes(); FormPages formPages = currentMasterForm.ReadFields(); RasterImage formImage = currentMasterForm.ReadForm(); for (int i = 0; i < imagesToAdd.PageCount; i++) { //Add each new page to the masterform by creating attributes for each page imagesToAdd.Page = i + 1; AddPageToMasterForm(imagesToAdd.Clone(), attributes, -1, null); } //Add image if (formImage != null) { formImage.AddPages(imagesToAdd.CloneAll(), 1, imagesToAdd.PageCount); } else { formImage = imagesToAdd.CloneAll(); } //Only add processing pages for the new pages if (formPages != null) { for (int i = 0; i < imagesToAdd.PageCount; i++) { formPages.Add(new FormPage(formPages.Count + 1, imagesToAdd.XResolution, imagesToAdd.YResolution)); } } else { //No processing pages exist so we must create them FormRecognitionEngine recognitionEngine = SetupRecognitionEngine(); FormProcessingEngine tempProcessingEngine = new FormProcessingEngine(); tempProcessingEngine.OcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD, false); //tempProcessingEngine.BarcodeEngine = barcodeEngine; for (int i = 0; i < recognitionEngine.GetFormProperties(attributes).Pages; i++) { tempProcessingEngine.Pages.Add(new FormPage(i + 1, imagesToAdd.XResolution, imagesToAdd.YResolution)); } formPages = tempProcessingEngine.Pages; } //FormField newField = null; //AnnHiliteObject newObject = new AnnHiliteObject(); //newField = new TextFormField(); //newField.Name = "test"; //newField.Bounds = new LogicalRectangle(50, 50, 50, 50, LogicalUnit.Pixel); //FormField newField1 = null; //AnnHiliteObject newObject1 = new AnnHiliteObject(); //newField1 = new OmrFormField(); //newField1.Name = "test1"; //newField1.Bounds = new LogicalRectangle(50, 50, 50, 50, LogicalUnit.Pixel); //newObject.Tag = newField; //newObject1.Tag = newField1; //FormField currentField = newObject.Tag as FormField; //FormField currentField1 = newObject1.Tag as FormField; //formPages[0].Add(currentField); //formPages[0].Add(currentField1); currentMasterForm.WriteForm(formImage); currentMasterForm.WriteAttributes(attributes); currentMasterForm.WriteFields(formPages); DBHelper.UpdateTifPageCount(formImage.PageCount.ToString(), folderName); } catch (Exception ex) { throw; } }
private void _mnuFileSave_Click(object sender, EventArgs e) { if (_lstImagesInfoMulti == null || _lstImagesInfoMulti.Count <= 0) { Messager.ShowError(this, "Please Load Files"); return; } RasterImage img = null; Cursor cursor = this.Cursor; try { cursor = this.Cursor; this.Cursor = Cursors.WaitCursor; EnableControls(false); this._labelConverted.Text = "0"; if (_saveDialog.ShowDialog() == DialogResult.OK) { RasterImageFormat selectedformat = RasterImageFormat.CcittGroup4; if (_saveDialog.FilterIndex == 2) { selectedformat = RasterImageFormat.RasPdfG4; } _szMultiPageFile = _saveDialog.FileName; if (_mnuOptionsSingleRasterImage.Checked) { for (int i = 0; i < _lstImagesInfoMulti.Count; i++) { RasterImage loadedImage = _codecs.Load(_lstImagesInfoMulti[i].Name, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, -1); if (i == 0) { img = loadedImage; } else { img.AddPages(loadedImage, 1, -1); } _labelConverted.Text = (Convert.ToInt32(_labelConverted.Text) + 1).ToString(); Application.DoEvents(); } _codecs.Save(img, _szMultiPageFile, selectedformat, 0); img.Dispose(); } else { for (int i = 0; i < _lstImagesInfoMulti.Count; i++) { CodecsImageInfo info = _codecs.GetInformation(_lstImagesInfoMulti[i].Name, true); for (int j = 1; j <= info.TotalPages; j++) { img = _codecs.Load(_lstImagesInfoMulti[i].Name, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, j, j); if (i == 0 && j == 1) { _codecs.Save(img, _szMultiPageFile, selectedformat, 0, 1, 1, 1, CodecsSavePageMode.Overwrite); } else { while (!ReadyToAccess(_szMultiPageFile))//Insure File is not inused by other processes { Application.DoEvents(); } _codecs.Save(img, _szMultiPageFile, selectedformat, 0, 1, 1, -1, CodecsSavePageMode.Append); } img.Dispose(); Application.DoEvents(); } _labelConverted.Text = (Convert.ToInt32(_labelConverted.Text) + 1).ToString(); info.Dispose(); Application.DoEvents(); } } Messager.ShowInformation(this, "Save in MultiPageFile Done"); } } catch (Exception ex) { Messager.ShowError(this, ex); } finally { this.Cursor = cursor; EnableControls(true); } }