public void CreatePdfFromImage(FileInfo file, string type, List <FileNamingModel> models = null) { var fileName = file.Name.Substring(0, file.Name.Length - 4); if (models != null) { var fileNameSplit = fileName.Split('.'); var serialNumber = fileNameSplit[0]; var model = models.FirstOrDefault(c => c.Serial == serialNumber); if (model != null) { fileName = model.Tag; } } var origPdf = PdfImages.First(c => c.Key == file.FullName); var resultPath = Path.Combine(Common.ResultsStorage, type); using (var pdf = new PdfDocument()) { var section = pdf.Sections.Add(); var image = new PdfBitmap(origPdf.Key); var frameCount = image.FrameCount; for (var i = 0; i < frameCount; i++) { var page = section.Pages.Add(); section.PageSettings.Margins.All = 0; var graphics = page.Graphics; image.ActiveFrame = i; graphics.DrawImage(image, 0, 0, page.GetClientSize().Width, page.GetClientSize().Height); } var savePath = Path.Combine(resultPath, $"{fileName}.pdf"); if (File.Exists(savePath)) { savePath = Path.Combine(resultPath, $"{fileName}-1.pdf"); } pdf.Save(savePath); pdf.Close(true); } }
public void ExtractPageFromPdf(FileInfo file, string type, List <FileNamingModel> models = null) { var fileName = file.Name.Substring(0, file.Name.Length - 4); if (models != null) { var fileNameSplit = fileName.Split('.'); var serialNumber = fileNameSplit[0]; var model = models.FirstOrDefault(c => c.Serial == serialNumber); if (model != null) { fileName = AppendSerialToFile ? $"{model.Tag} - {serialNumber}" : model.Tag; } } var origPdf = PdfImages.First(c => c.Key == file.FullName); var imagePath = origPdf.Key.Replace(".png", ""); var pageSplit = imagePath.Split('.'); var page = Convert.ToInt32(pageSplit[pageSplit.Length - 1]); var loadedDocument = new PdfLoadedDocument(origPdf.Value); var resultPath = Path.Combine(Common.ResultsStorage, type); using (var document = new PdfDocument()) { var startIndex = page - 1; var endIndex = page - 1; document.ImportPageRange(loadedDocument, startIndex, endIndex); var savePath = Path.Combine(resultPath, $"{fileName}.pdf"); if (File.Exists(savePath)) { savePath = Path.Combine(resultPath, $"{fileName}-1.pdf"); } document.Save(savePath); loadedDocument.Close(true); document.Close(true); } }