Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }