/// <summary> /// Deletes current page of Image and/or PDF file formats /// </summary> /// <param name="e"></param> public static void HandleRemovePage(CustomActionEventArgs e) { RotateActionParameters rotateParams = JsonConvert.DeserializeObject <RotateActionParameters>(e.args.ToString()); int currPage = rotateParams.CurrentPage; rotateParams = null; // For PDF FILES if (e.docuVieware.GetDocumentType() == DocumentType.DocumentTypePDF) { GdPicturePDF gdPdf = null; if (e.docuVieware.GetNativePDF(out gdPdf) == GdPictureStatus.OK) { gdPdf.DeletePage(currPage); e.message = GetMessage("Page Deleted Successfully ", DocuViewareMessageIcon.Information); } } // For Image Files, Scanned docs int imgId; if (e.docuVieware.GetNativeImage(out imgId) == GdPictureStatus.OK) { GdPictureImaging gdImg = new GdPictureImaging(); if (gdImg.SelectPage(imgId, currPage) == GdPictureStatus.OK) { if (gdImg.TiffDeletePage(imgId, currPage) == GdPictureStatus.OK) //gdImg.ReleaseGdPictureImage(imgId) == GdPictureStatus.OK) { e.message = GetMessage("Document was rejected successfully.", DocuViewareMessageIcon.Information); } } } else { e.message = GetMessage("Remove Page : File Type not supported ! ", DocuViewareMessageIcon.Warning); } return; }
/// <summary> /// Handles Image Cleaup Actions /// </summary> /// <param name="e"></param> public static void HandleImageCleanupAction(CustomActionEventArgs e) { if (e.docuVieware.PageCount > 0) { if (e.docuVieware.GetDocumentType() == DocumentType.DocumentTypeBitmap) { int imageId; GdPictureStatus status = e.docuVieware.GetNativeImage(out imageId); if (status == GdPictureStatus.OK) { status = GdPictureStatus.GenericError; using (GdPictureImaging gdPictImg = new GdPictureImaging()) { RotateActionParameters parameters = JsonConvert.DeserializeObject <RotateActionParameters>(e.args.ToString()); if (parameters.RegionOfInterest != null && parameters.RegionOfInterest.Width > 0 && parameters.RegionOfInterest.Height > 0) { gdPictImg.SetROI((int)Math.Round(parameters.RegionOfInterest.Left * gdPictImg.GetHorizontalResolution(imageId), 0), (int)Math.Round(parameters.RegionOfInterest.Top * gdPictImg.GetVerticalResolution(imageId), 0), (int)Math.Round(parameters.RegionOfInterest.Width * gdPictImg.GetHorizontalResolution(imageId), 0), (int)Math.Round(parameters.RegionOfInterest.Height * gdPictImg.GetVerticalResolution(imageId), 0)); } if (e.actionName != "punchHoleRemoval" || (e.actionName == "punchHoleRemoval" && gdPictImg.GetBitDepth(imageId) == 1)) { foreach (var page in parameters.Pages) { status = gdPictImg.SelectPage(imageId, page); if (status == GdPictureStatus.OK) { switch (e.actionName) { case "automaticRemoveBlackBorders": status = gdPictImg.DeleteBlackBorders(imageId, 10, false); break; case "autoDeskew": status = gdPictImg.AutoDeskew(imageId); break; case "punchHoleRemoval": status = gdPictImg.RemoveHolePunch(imageId, HolePunchMargins.MarginLeft | HolePunchMargins.MarginRight | HolePunchMargins.MarginBottom | HolePunchMargins.MarginTop); break; case "despeckle": status = gdPictImg.FxDespeckle(imageId); break; } if (status != GdPictureStatus.OK) { e.message = GetMessage("Error during apply filter: " + status + " on page " + page, DocuViewareMessageIcon.Error); break; } } else { e.message = GetMessage("Error during page selectionr: " + status + "." + page, DocuViewareMessageIcon.Error); break; } } // foreach if (status == GdPictureStatus.OK) { status = e.docuVieware.RedrawPages(parameters.Pages); e.message = status == GdPictureStatus.OK ? new DocuViewareMessage("Filter successfuly applied.", icon: DocuViewareMessageIcon.Ok) : GetMessage("Error during redraw pages : " + status + ".", DocuViewareMessageIcon.Error); } } else { e.message = GetMessage("Your image must be 1 bit-depth to apply this filter!", DocuViewareMessageIcon.Error); } } // using } else { e.message = GetMessage("Error during get native image : " + status + ".", DocuViewareMessageIcon.Error); } } else { e.message = GetMessage("Only raster formats are supported!", DocuViewareMessageIcon.Error); } } else { e.message = GetMessage("Please open an image first." + ".", DocuViewareMessageIcon.Error); } return; }
/* * /// <summary> * /// * /// </summary> * /// <param name="e"></param> * public static void HandleSaveFile(CustomActionEventArgs customActionEventArgs) * { * * DocumentType docType = customActionEventArgs.docuVieware.GetDocumentType(); * if (docType == DocumentType.DocumentTypeTXT) * { * MemoryStream memStream = null; * GdPictureStatus status; * * status = customActionEventArgs.docuVieware.GetDocumentData(out memStream); * * if (status == GdPictureStatus.OK) * { * string nm = customActionEventArgs.docuVieware.GetDocumentName(); * int indexOf = nm.IndexOf('.'); * if (indexOf > 0) * nm = nm.Substring(0, indexOf); * * nm = nm + ".tiff"; * string fileName = HttpRuntime.AppDomainAppPath + "\\" + nm; * FileStream fs = new FileStream(fileName, FileMode.CreateNew, FileAccess.ReadWrite); * fs.Write(memStream.GetBuffer(), 0, (int)memStream.Length); * customActionEventArgs.docuVieware.SaveAsTIFF(memStream); * * fs = null; * } else * { * customActionEventArgs.message = GetMessage("Save : Fail to get Stream data.", DocuViewareMessageIcon.Error); * } * * memStream = null; * } * } */ /// <summary> /// Triggers when user clicks on Rotate -90 or Rotate +90. Rotates the image file as per the request. /// </summary> /// <remarks> /// Only image file formats can be Rotated. Shows error message if File is not Supported, File is not of proper format, /// Cannot select Page, Failed to Rotate the file contents. /// </remarks> /// <param name="e">The CustomActionEventArgs received from the Global.asax.cs custom actions handler</param> public static void HandleRotationAction(CustomActionEventArgs e) { GdPictureStatus status = GdPictureStatus.Aborted; // For Images if (e.docuVieware.GetDocumentType() == DocumentType.DocumentTypeBitmap) { int imageId; status = e.docuVieware.GetNativeImage(out imageId); if (status == GdPictureStatus.OK) { GdPictureImaging gdPictureImaging = new GdPictureImaging(); RotateActionParameters rotateParams = JsonConvert.DeserializeObject <RotateActionParameters>(e.args.ToString()); int currPage = rotateParams.CurrentPage; status = gdPictureImaging.SelectPage(imageId, currPage); // rotateParams.CurrentPage); if (status == GdPictureStatus.OK) { switch (e.actionName) { case "rotateM90": status = gdPictureImaging.Rotate(imageId, RotateFlipType.Rotate270FlipNone); break; case "rotateP90": status = gdPictureImaging.Rotate(imageId, RotateFlipType.Rotate90FlipNone); break; } if (status != GdPictureStatus.OK) { e.message = new DocuViewareMessage("Error during rotating: " + status + ".", icon: DocuViewareMessageIcon.Error); } else { status = e.docuVieware.RedrawPage(); e.message = status == GdPictureStatus.OK ? new DocuViewareMessage("Rotation successfuly applied.", icon: DocuViewareMessageIcon.Ok) : new DocuViewareMessage("Error during redraw pages : " + status + ".", icon: DocuViewareMessageIcon.Error); } } else { e.message = new DocuViewareMessage("Error during page selection: " + status + ".", icon: DocuViewareMessageIcon.Error); } rotateParams = null; gdPictureImaging = null; } else { e.message = new DocuViewareMessage("Error during get native image : " + status + ".", icon: DocuViewareMessageIcon.Error); } } else if (e.docuVieware.GetDocumentType() == DocumentType.DocumentTypePDF) { GdPicturePDF gdPdf = null; if (e.docuVieware.GetNativePDF(out gdPdf) == GdPictureStatus.OK) { RotateActionParameters rotateParams = JsonConvert.DeserializeObject <RotateActionParameters>(e.args.ToString()); int currPage = rotateParams.CurrentPage; gdPdf.SelectPage(currPage); switch (e.actionName) { case "rotateM90": status = gdPdf.RotatePage(-90); break; case "rotateP90": status = gdPdf.RotatePage(90); break; } if (status != GdPictureStatus.OK) { e.message = GetMessage("Error during rotating: " + status + ".", DocuViewareMessageIcon.Error); } else { status = e.docuVieware.RedrawPage(); e.message = status == GdPictureStatus.OK ? GetMessage("Rotation successfuly applied.", DocuViewareMessageIcon.Ok) : GetMessage("Error during redraw pages : " + status + ".", DocuViewareMessageIcon.Error); } rotateParams = null; gdPdf = null; } else { e.message = GetMessage("Error during get native image : " + status + ".", DocuViewareMessageIcon.Error); } } else { e.message = GetMessage("Only Images & PDF formats Rotation supported", DocuViewareMessageIcon.Error); } return; }