public void Handle(string issueFilePath, string outputFolderPath, string userName, string password) { if (string.IsNullOrWhiteSpace(issueFilePath)) { //error } string fileName = Path.GetFileNameWithoutExtension(issueFilePath); string issueDate = fileName.Split('_')[1]; string issueYear = issueDate.Substring(0, 4); string issueOutputFolderPath = Path.Combine(outputFolderPath, issueYear, issueDate); if (!Directory.Exists(issueOutputFolderPath)) { Console.WriteLine("Creating folder for issue {0} at {1}", issueDate, issueOutputFolderPath); Directory.CreateDirectory(issueOutputFolderPath); } var conversionActions = new BondiDJVUActions(); conversionActions.Open(issueFilePath, userName, password); int pageCount = conversionActions.PageCount; Console.WriteLine("Starting to process issue {0}.", issueDate); Console.WriteLine("Issue {0} has {1} pages.", issueDate, pageCount); try { for (int i = 0; i < pageCount; i++) { Console.WriteLine("Starting to process page {0} of issue {1}", i + 1, issueDate); var pageSize = conversionActions.GetPageSize(i); var height = pageSize.Height; var width = pageSize.Width; Console.WriteLine("Issue:{0} Page:{1} Height:{2} Width:{3}", issueDate, i + 1, height, width); var pageFileName = string.Format("{0}.{1}", (i + 1), "jpeg"); var pageOutputFilePath = Path.Combine(issueOutputFolderPath, pageFileName); Console.WriteLine("Issue:{0} Page:{1} OutputFilePath:{2}", issueDate, i + 1, pageOutputFilePath); conversionActions.SavePageBitmap(pageOutputFilePath, i, width, height); GC.Collect(); } } catch (Exception ex) { //TODO: decide what the hell to do? // maybe we just delete the folder and stop caring? } conversionActions.Close(); }
public void Close() { if (this.openFileName == null) { return; } BondiDJVUActions.CloseDocument(); this.openFileName = (string)null; this.pageCount = 0; this.pageSizeArray = (Size[])null; }
public void SavePageBitmap(string outputFilePath, int pageIndex, int width, int height) { BondiDJVUPageBitmap djvuPageBitmap = new BondiDJVUPageBitmap(width, height); if (BondiDJVUActions.GetPageBitmapData(pageIndex, width, height, 0, djvuPageBitmap.BitmapData)) { djvuPageBitmap.Bitmap.Save(outputFilePath, System.Drawing.Imaging.ImageFormat.Jpeg); djvuPageBitmap.Close(); } GC.Collect(); }
public bool Open(string fileName, string username, string password) { if (this.openFileName != null) { BondiDJVUActions.CloseDocument(); this.openFileName = (string)null; } BondiDJVUActions.OpenDocument(fileName, username, password); this.openFileName = fileName; this.pageCount = BondiDJVUActions.GetPageCount(); this.pageSizeArray = new Size[this.pageCount]; return(true); }
public Size GetPageSize(int pageIndex) { if (pageIndex < 0 || pageIndex > this.LastPageIndex) { return(Size.Empty); } if (!this.pageSizeArray[pageIndex].IsEmpty) { return(this.pageSizeArray[pageIndex]); } BondiDJVUActions.SIZE size = new BondiDJVUActions.SIZE(); if (!BondiDJVUActions.GetPageSize(pageIndex, ref size)) { return(Size.Empty); } this.pageSizeArray[pageIndex] = size.Size; return(this.pageSizeArray[pageIndex]); }