internal Boolean DecryptFile( string inputFile, string outputFile, IEnumerable <string> userPasswords) { foreach (var pwd in userPasswords) { try { using (var reader = new PdfReader(inputFile, new ASCIIEncoding().GetBytes(pwd))) { reader.GetType().Field("encrypted").SetValue(reader, false); using (var outStream = File.OpenWrite(outputFile)) { using (var stamper = new PdfStamper(reader, outStream)) { stamper.Close(); } } } return(true); } catch (Exception ex) { Logger.ErrorFormat(ex, "Error trying to decrypt file {0}: {1}", inputFile, ex.Message); } } return(false); }
protected async override Task <ProcessResult> OnPolling(PollerJobParameters parameters, string workingFolder) { var fileExtension = parameters.All[JobKeys.ThumbnailFormat]; ImageFormat format = GetFormatFromExtension(fileExtension); var sizesAsString = parameters.All[JobKeys.Sizes]; var imageSizes = SizeInfoHelper.Deserialize(sizesAsString); Logger.DebugFormat("Starting resize job for {0} - {1}", parameters.JobId, sizesAsString); string pathToFile = await DownloadBlob(parameters.TenantId, parameters.JobId, parameters.FileName, workingFolder); using (var sourceStream = File.OpenRead(pathToFile)) { using (var pageStream = new MemoryStream()) { sourceStream.CopyTo(pageStream); foreach (var size in imageSizes) { Logger.DebugFormat("Resize job for {0} - {1}", parameters.JobId, size.Name); pageStream.Seek(0, SeekOrigin.Begin); var fileFormat = new Client.Model.DocumentFormat("thumb." + size.Name); string resizeImagePath = Path.Combine( workingFolder, String.Format("{0}.{1}.{2}", Path.GetFileNameWithoutExtension(parameters.FileName), size.Name, fileExtension)); resizeImagePath = SanitizeFileNameForLength(resizeImagePath); using (var outStream = File.OpenWrite(resizeImagePath)) { Logger.DebugFormat("Resizing {0}", parameters.JobId); ImageResizer.Shrink(pageStream, outStream, size.Width, size.Height, format); } await AddFormatToDocumentFromFile( parameters.TenantId, parameters.JobId, fileFormat, resizeImagePath, new Dictionary <string, object>()); } } } Logger.DebugFormat("Ended resize job for {0} - {1}", parameters.JobId, sizesAsString); return(ProcessResult.Ok); }
public async Task <Boolean> Write(String workerFolder, PollerJobParameters parameters, String format, int pageIndex, Stream stream) { var rawFileName = Path.Combine(workerFolder, Path.GetFileNameWithoutExtension(parameters.FileName) + ".page_" + pageIndex + "." + format); rawFileName = SanitizeFileNameForLength(rawFileName); using (var outStream = File.OpenWrite(rawFileName)) { stream.CopyTo(outStream); } await AddFormatToDocumentFromFile( parameters.TenantId, parameters.JobId, new DocumentFormat(DocumentFormats.RasterImage), rawFileName, new Dictionary <string, object>()).ConfigureAwait(false); return(true); }