I am trying to crop the pages of a document using the RA SDK. Here is the code I have so far...
const int pageWidth = 2550; const int pageHeight = 3300; DocumentInfo doc = Document.GetDocumentInfo(entryId, session); for (int pageNumber = 1; pageNumber <= doc.PageCount; pageNumber++) { var repositoryPage = doc.GetPageInfo(pageNumber); if (repositoryPage.ImageWidth > pageWidth || repositoryPage.ImageHeight > pageHeight) { using (var reader = repositoryPage.ReadPagePart(PagePart.Image)) { // Move to stream so FromStream will recognize it as a TIFF image using (MemoryStream mstream = new MemoryStream()) { reader.CopyTo(mstream); // Resize Image Rectangle cropRect = new Rectangle(0, 0, pageWidth, pageHeight); Bitmap src = Image.FromStream(mstream) as Bitmap; Bitmap target = new Bitmap(cropRect.Width, cropRect.Height); Bitmap bmpImage = new Bitmap(src); var dest = bmpImage.Clone(cropRect, src.PixelFormat); // Save resized document as a TIFF using (MemoryStream memoryStream = new MemoryStream()) { dest.Save(memoryStream, ImageFormat.Tiff); // Write page back to Laserfiche document using (Stream writer = repositoryPage.WritePagePart(PagePart.Image, (int)memoryStream.Length)) { byte[] buffer = new byte[0x8000]; int count; while ((count = memoryStream.Read(buffer, 0, buffer.Length)) > 0) writer.Write(buffer, 0, count); } } } } } }
First off, this code does not work. When I look at the page size of the document after this code runs it has not changed.
Secondly, it seems there should be an easier way to do this.
I am using version 10.2
Any help would be greatly appreciated.