Esempio n. 1
0
        public bool MergePDFs(string dirName, FileInfo submission)
        {
            bool merged = true;
            var  outDir = new DirectoryInfo(Path.Combine(ResultPath, dirName));

            if (outDir.Exists == false)
            {
                outDir.Create();
            }
            var         outFile = Path.Combine(ResultPath, dirName, submission.Name);
            PdfDocument pdf     = new PdfDocument(new PdfWriter(outFile));
            PdfMerger   merger  = new PdfMerger(pdf);

            //Add pages from the first document
            PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(submission));

            merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages());

            //Add pages from the second pdf document
            PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(RubricPath));

            merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages());

            firstSourcePdf.Close();
            secondSourcePdf.Close();
            pdf.Close();
            return(merged);
        }
Esempio n. 2
0
        static void skleitb2f(string table_name)
        {
            //склеить 2 файла
            string table_ = table_name;

            table_ = table_.Replace("AP_TC", "");



            WebClient client   = new WebClient();
            string    url      = "http://ecad.giulianovars.ru/autoprice/pdf_visual.php?command=1&table=" + table_;
            var       response = client.DownloadData(url);

            File.WriteAllBytes("header.pdf", response);

            FileInfo    file       = new FileInfo(table_name + ".pdf");
            PdfDocument pdfDoc     = new PdfDocument(new PdfWriter(file));
            PdfMerger   merger     = new PdfMerger(pdfDoc);
            FileInfo    header     = new FileInfo("header.pdf");
            PdfDocument header_doc = new PdfDocument(new PdfReader(header));
            FileInfo    body       = new FileInfo("body.pdf");
            PdfDocument body_doc   = new PdfDocument(new PdfReader(body));

            merger.Merge(header_doc, 1, header_doc.GetNumberOfPages());
            merger.Merge(body_doc, 1, body_doc.GetNumberOfPages());
            header_doc.Close();
            body_doc.Close();
            pdfDoc.Close();
            //  GC.Collect();
        }
        public virtual void CreatePdf(String dest)
        {
            //Initialize PDFA document with output intent
            PdfADocument pdf = new PdfADocument(new PdfWriter(dest), PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent
                                                    ("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(INTENT, FileMode.Open, FileAccess.Read
                                                                                                                               )));

            //Setting some required parameters
            pdf.SetTagged();
            pdf.GetCatalog().SetLang(new PdfString("en-US"));
            pdf.GetCatalog().SetViewerPreferences(new PdfViewerPreferences().SetDisplayDocTitle(true));
            PdfDocumentInfo info = pdf.GetDocumentInfo();

            info.SetTitle("iText7 PDF/A-1a example");
            //Create PdfMerger instance
            PdfMerger merger = new PdfMerger(pdf);
            //Add pages from the first document
            PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));

            merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages());
            //Add pages from the second pdf document
            PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));

            merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages());
            //Close the documents
            firstSourcePdf.Close();
            secondSourcePdf.Close();
            pdf.Close();
        }
        /// <summary>
        /// Generates the merged documents
        /// </summary>
        public void CreateMergedDocument()
        {
            // Guard clauses
            if (m_Document == null)
            {
                throw new System.Exception("Exception 1: Single Merge Document was null");
            }

            if (string.IsNullOrEmpty(m_Document.OutputPath))
            {
                throw new System.Exception("Exception 2: Output path was null or empty");
            }

            if (string.IsNullOrEmpty(m_Document.PDF1Path))
            {
                throw new System.Exception("Exception 3: Document 1 input path was null or empty");
            }

            if (string.IsNullOrEmpty(m_Document.PDF2Path))
            {
                throw new System.Exception("Exception 4: Document 2 input path was null or empty");
            }

            if (!System.IO.File.Exists(m_Document.PDF1Path))
            {
                throw new System.Exception("Exception 5: Input file number 1 does not exist at the location provided");
            }

            if (!System.IO.File.Exists(m_Document.PDF2Path))
            {
                throw new System.Exception("Exception 6: Input file number 2 does not exist at the location provided");
            }

            // Create initial document that will contain all of the merged documents
            PdfDocument document = new PdfDocument(new PdfWriter(m_Document.OutputPath));

            // Create merger that will perform the document merging
            PdfMerger merger = new PdfMerger(document);

            // Source document 1
            PdfDocument document1 = new PdfDocument(new PdfReader(m_Document.PDF1Path));

            // Source document 2
            PdfDocument document2 = new PdfDocument(new PdfReader(m_Document.PDF2Path));

            // Perform merge from document 1
            merger.Merge(document1, 1, document1.GetNumberOfPages());

            // Perform merge from document 2
            merger.Merge(document2, 1, document2.GetNumberOfPages());

            // Close the documents
            document1.Close();
            document2.Close();
            document.Close();
        }
Esempio n. 5
0
        /// <summary>
        /// Append source files to the end of original file.
        /// </summary>
        /// <param name="sourceFiles">The list of source files</param>
        /// <param name="originalFile">Original file to append source files to the end of it</param>
        public void Append(string[] sourceFiles, string originalFile)
        {
            PdfDocument pdfOriginal = null;
            PdfDocument pdfTemp     = null;
            PdfMerger   pdfMerger   = null;

            try
            {
                pdfOriginal = new PdfDocument(new PdfReader(originalFile));

                // Step 1: Temporary file to prevent rewrite on the original file.
                //         Destination file will be changed with the original in the last step.
                //         In case if the destination file in an existing file
                pdfTemp   = new PdfDocument(new PdfWriter(originalFile + "temp"));
                pdfMerger = new PdfMerger(pdfTemp);

                // Step 2: First add the original file content.
                pdfMerger.Merge(pdfOriginal, 1, pdfOriginal.GetNumberOfPages());

                // Step 3: Then add the other source file content
                for (var i = 0; i < sourceFiles.Length; i++)
                {
                    using (var sourceFile = new PdfDocument(new PdfReader(sourceFiles[i])))
                    {
                        pdfMerger.Merge(sourceFile, 1, sourceFile.GetNumberOfPages());

                        // Update merge job progress.
                        OnUpdateProgress?.Invoke(i);
                    }
                }

                pdfTemp.Close();
                pdfOriginal.Close();
                pdfMerger.Close();

                // Step 4: Replace the original file with the temp one.
                File.Delete(originalFile);
                File.Move(originalFile + "temp", originalFile);
            }
            catch (Exception e)
            {
                if (pdfTemp != null && !pdfTemp.IsClosed())
                {
                    pdfTemp.Close();
                    pdfOriginal.Close();
                    pdfMerger?.Close();
                }

                File.Delete(originalFile + "temp");
                throw new Exception(e.Message);
            }
        }
Esempio n. 6
0
        public static void MergePdf(string pdfSrc1, string pdfSrc2, string pdfDest)
        {
            PdfWriter   writer    = new PdfWriter(pdfDest);
            PdfDocument pdfDoc    = new PdfDocument(writer);
            PdfMerger   merger    = new PdfMerger(pdfDoc);
            PdfDocument pdfDocSrc = new PdfDocument(new PdfReader(pdfSrc1));

            merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages());
            pdfDocSrc.Close();
            pdfDocSrc = new PdfDocument(new PdfReader(pdfSrc2));
            merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages());
            pdfDocSrc.Close();
            merger.Close();
        }
        public static void InsertPageFromPdf(string PdfSourcePath, string PdfDesPath, System.Collections.Generic.List <int> ListPage, int offset)
        {
            //PDF Merger
            string      path        = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "Merged" + number++ + ".pdf");
            PdfDocument pdfMergered = new PdfDocument(new PdfWriter(path));
            PdfMerger   pdfMerger   = new PdfMerger(pdfMergered);

            //Source and Des
            PdfDocument source = new PdfDocument(new PdfReader(PdfSourcePath));
            PdfDocument des    = new PdfDocument(new PdfReader(PdfDesPath));

            //Check offset
            if (offset == 0)
            {
                for (int i = 0; i < ListPage.Count; i++)
                {
                    pdfMerger.Merge(source, ListPage[i] + 1, ListPage[i] + 1);
                }

                if (offset + 1 <= des.GetNumberOfPages())
                {
                    pdfMerger.Merge(des, offset + 2, des.GetNumberOfPages());
                }

                source.Close();
                des.Close();
                pdfMergered.Close();
                return;
            }



            pdfMerger.Merge(des, 1, offset);

            for (int i = 0; i < ListPage.Count; i++)
            {
                pdfMerger.Merge(source, ListPage[i] + 1, ListPage[i] + 1);
            }

            if (offset + 1 <= des.GetNumberOfPages())
            {
                pdfMerger.Merge(des, offset + 2, des.GetNumberOfPages());
            }

            source.Close();
            des.Close();
            pdfMergered.Close();
        }
Esempio n. 8
0
        public void ConvertToSinglePDFPages(int level)
        {
            const String FONT      = @"C:\Windows\Fonts\STKAITI.TTF";
            PdfFont      fontKaiti = PdfFontFactory.CreateFont(FONT, PdfEncodings.IDENTITY_H, PdfFontFactory.EmbeddingStrategy.FORCE_EMBEDDED, true);

            PdfReader reader = new PdfReader(@"D:\\HSKBooklet\Final Print Level " + Level.ToString() + ".pdf");

            PdfDocument pdfSource = new PdfDocument(reader);
            Document    document  = new Document(pdfSource, PageSize.A4);


            for (int x = 1; x < pdfSource.GetNumberOfPages() + 1; x++)
            {
                PdfWriter   writter    = new PdfWriter(@"D:\\HSKBooklet\Pages\" + Level.ToString() + @"\Final_HSK_" + Level.ToString() + "_" + this.NumeroCuadrado(x, 3) + ".pdf");
                PdfDocument pdfwritter = new PdfDocument(writter);
                PdfMerger   merger     = new PdfMerger(pdfwritter);


                PdfPage  page           = pdfSource.GetPage(x);
                Document pdfDestination = new Document(pdfwritter, PageSize.A4);

                merger.Merge(pdfSource, x, x);
                pdfwritter.Close();
            }
        }
Esempio n. 9
0
        public static void SlicePDF(string outputFile, string inputFile, int[] pageStart, int[] pageEnd)
        {
            PdfDocument src = new PdfDocument(new PdfReader(inputFile));

            PdfWriter   writer      = new PdfWriter(new FileStream(outputFile, FileMode.Create));
            PdfDocument pdfDocument = new PdfDocument(writer);

            pdfDocument.SetTagged();

            PdfMerger merger = new PdfMerger(pdfDocument);

            int n = Math.Min(pageStart.Length, pageEnd.Length);

            for (int i = 0; i < n; i++)
            {
                if (pageStart[i] < 0 || pageEnd[i] < 0)
                {
                    continue;
                }

                int lastPage = pageEnd[i];

                if (lastPage > src.GetNumberOfPages())
                {
                    lastPage = src.GetNumberOfPages();
                }

                merger.Merge(src, pageStart[i], lastPage);
            }

            src.Close();
            pdfDocument.Close();
        }
Esempio n. 10
0
        public void AddAttached(int no, string type, string url)
        {
            document.Add(new AreaBreak(AreaBreakType.LAST_PAGE));
            document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));

            Paragraph pz = new Paragraph("ANEXO " + no)
                           .Add(new Text("\n"))
                           .Add(new Text(type)
                                .AddStyle(poppinsStyle)
                                .SetFontSize(27))
                           .AddStyle(poppinsboldStyle)
                           .SetFontSize(40)
                           .SetFixedLeading(40)
                           .SetTextAlignment(TextAlignment.CENTER);

            new Canvas(new PdfCanvas(pdf.GetLastPage()),
                       new Rectangle(160, 230, 300, 200))
            .Add(pz);


            PdfDocument pdfDocument = new PdfDocument(new PdfReader(url));

            PdfMerger merger = new PdfMerger(pdf);

            merger.Merge(pdfDocument, 1, pdfDocument.GetNumberOfPages());

            pdfDocument.Close();
        }
Esempio n. 11
0
        public static byte[] Combine(IEnumerable <byte[]> pdfs)
        {
            using (var writerMemoryStream = new MemoryStream())
            {
                using (var writer = new PdfWriter(writerMemoryStream))
                {
                    using (var mergedDocument = new iText.Kernel.Pdf.PdfDocument(writer))
                    {
                        var merger = new PdfMerger(mergedDocument);

                        foreach (var pdfBytes in pdfs)
                        {
                            using (var copyFromMemoryStream = new MemoryStream(pdfBytes))
                            {
                                using (var reader = new iText.Kernel.Pdf.PdfReader(copyFromMemoryStream))
                                {
                                    //have to set unethical reading to true else will get password error
                                    reader.SetUnethicalReading(true);
                                    using (var copyFromDocument = new iText.Kernel.Pdf.PdfDocument(reader))
                                    {
                                        //second parameter 1 is page number from where to start merge
                                        merger.Merge(copyFromDocument, 1, copyFromDocument.GetNumberOfPages());
                                    }
                                }
                            }
                        }
                    }
                }
                return(writerMemoryStream.ToArray());
            }
        }
Esempio n. 12
0
        public virtual void CreatePdf(String dest)
        {
            //Initialize PDF document with output intent
            PdfDocument pdf    = new PdfDocument(new PdfWriter(dest));
            PdfMerger   merger = new PdfMerger(pdf);
            //Add pages from the first document
            PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));

            merger.Merge(firstSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 5, 7, 1));
            //Add pages from the second pdf document
            PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));

            merger.Merge(secondSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 15));
            firstSourcePdf.Close();
            secondSourcePdf.Close();
            pdf.Close();
        }
Esempio n. 13
0
        public virtual void CreatePdf(String dest)
        {
            //Initialize PDF document with output intent
            PdfDocument pdf    = new PdfDocument(new PdfWriter(dest));
            PdfMerger   merger = new PdfMerger(pdf);
            //Add pages from the first document
            PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));

            merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages());
            //Add pages from the second pdf document
            PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));

            merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages());
            firstSourcePdf.Close();
            secondSourcePdf.Close();
            pdf.Close();
        }
Esempio n. 14
0
        public static void OscarCombine(string dest)
        {
            //Initialize PDF document with output intent
            PdfDocument pdf    = new PdfDocument(new PdfWriter(dest));
            PdfMerger   merger = new PdfMerger(pdf);
            //Add pages from the first document
            PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_reminder_list.pdf"));

            merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages());
            //Add pages from the second pdf document
            PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_noms_announcement.pdf"));

            merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages());
            firstSourcePdf.Close();
            secondSourcePdf.Close();
            pdf.Close();
        }
Esempio n. 15
0
        public static void OscarCombineXofY(string dest)
        {
            //Initialize PDF document with output intent
            PdfDocument pdf    = new PdfDocument(new PdfWriter(dest));
            PdfMerger   merger = new PdfMerger(pdf);
            //Add pages from the first document
            PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_reminder_list.pdf"));

            merger.Merge(firstSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 5, 7, 1));
            //Add pages from the second pdf document
            PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_noms_announcement.pdf"));

            merger.Merge(secondSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 15));
            firstSourcePdf.Close();
            secondSourcePdf.Close();
            pdf.Close();
        }
Esempio n. 16
0
        public void CanMerge2SimpleDocumentsReversed()
        {
            var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf");
            var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf");

            var result = PdfMerger.Merge(one, two);

            CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "I am a simple pdf.", "Write something inInkscape");
        }
Esempio n. 17
0
        public void DeletePagesOnPdf(PdfDocument pdfOriginal, string destPath, IList <int> pages)
        {
            PdfDocument pdf    = new PdfDocument(new PdfWriter(destPath));
            PdfMerger   merger = new PdfMerger(pdf);

            merger.Merge(pdfOriginal, pages).Close();
            pdf.Close();
            pdfOriginal.Close();
            merger.Close();
        }
Esempio n. 18
0
        protected void ManipulatePdf(String dest)
        {
            PdfDocument pdfDoc   = new PdfDocument(new PdfWriter(dest));
            PdfDocument cover    = new PdfDocument(new PdfReader(COVER));
            PdfDocument resource = new PdfDocument(new PdfReader(RESOURCE));

            PdfMerger merger = new PdfMerger(pdfDoc);

            merger.Merge(cover, 1, 1);
            merger.Merge(resource, 1, resource.GetNumberOfPages());

            // Source documents can be closed implicitly after merging,
            // by passing true to the setCloseSourceDocuments(boolean) method
            cover.Close();
            resource.Close();

            // The resultant pdf doc will be closed implicitly.
            merger.Close();
        }
Esempio n. 19
0
        private static void MergePdfsWithBookmarks(List <string> InFiles, string OutFile)
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(OutFile));

            pdfDoc.InitializeOutlines();

            PdfMerger merger = new PdfMerger(pdfDoc, true, true);



            List <PdfOutline> listItem = new List <PdfOutline>();

            InFiles.ForEach(srcFile =>
            {
                PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(srcFile));
                int pageCount = firstSourcePdf.GetNumberOfPages();
                merger.Merge(firstSourcePdf, 1, pageCount);

                firstSourcePdf.GetOutlines(false).GetDestination();
                firstSourcePdf.Close();

                if (pageCount % 2 == 1)
                {
                    pdfDoc.AddNewPage(iTextPageSize.A4);
                }
            });

            PdfOutline rootOutline = pdfDoc.GetOutlines(false);

            listItem.AddRange(rootOutline.GetAllChildren());

            rootOutline.GetAllChildren().Clear();

            string     parentTitle = Path.GetFileNameWithoutExtension(OutFile);
            PdfOutline parent      = rootOutline.AddOutline(parentTitle);

            foreach (var item in listItem)
            {
                parent.AddOutline(item);
            }

            PdfExplicitDestination destToPage3 = PdfExplicitDestination.CreateFit(pdfDoc.GetFirstPage());
            string stringDest = Guid.NewGuid().ToString();

            pdfDoc.AddNamedDestination(stringDest, destToPage3.GetPdfObject());
            parent.AddAction(PdfAction.CreateGoTo(new PdfStringDestination(stringDest)));

            if (pdfDoc.GetNumberOfPages() % 2 == 1)
            {
                pdfDoc.AddNewPage(iTextPageSize.A4);
            }

            pdfDoc.Close();
        }
Esempio n. 20
0
        /***********************************************/
        // FUNCTION: string splitRange()
        // DESCRIPTION: This function will split the pdf document between the page number indicated by "low" and "high"
        /***********************************************/
        public string splitRange(int low, int high)
        {
            // SaveFiledialog helps with opening a "Save As" window and asking the user for a location and a file name
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter           = "PDF (*.pdf)| *.pdf";
            saveFileDialog1.FilterIndex      = 2;
            saveFileDialog1.RestoreDirectory = true;
            saveFileDialog1.ShowDialog(); // user selected location is now stored in saveFileDialog1.Filename


            if (saveFileDialog1.FileName != "")
            {
                FileInfo file = new FileInfo(saveFileDialog1.FileName);
                file.Directory.Create();

                PdfDocument firstPdf = new PdfDocument(new PdfReader(fileToSplit));

                PdfDocument pdf    = new PdfDocument(new PdfWriter(saveFileDialog1.FileName));
                PdfMerger   merger = new PdfMerger(pdf);


                // These statement checks to see if the user entered the page number in a invalid order
                if (high > firstPdf.GetNumberOfPages() && low <= 0)
                {
                    firstPdf.Close();
                    return("3");
                }
                else if (low <= 0)
                {
                    firstPdf.Close();
                    return("1");
                }
                else if (high > firstPdf.GetNumberOfPages())
                {
                    firstPdf.Close();
                    return("2");
                }
                else if (low > high)
                {
                    firstPdf.Close();
                    return("4");
                }

                // this is where the actual page splitting happens
                merger.Merge(firstPdf, low, high);

                pdf.Close();
                firstPdf.Close();
                return("0");
            }

            return("0");
        }
Esempio n. 21
0
        public static void MergePDFs(string outputPath, string[] inputPath)
        {
            bool newMode = true;

            if (newMode)
            {
                List <PdfDocument> documentList = new List <PdfDocument>();

                foreach (string inputFile in inputPath)
                {
                    documentList.Add(new PdfDocument(new PdfReader(inputFile)));
                }

                PdfWriter   writer      = new PdfWriter(new FileStream(outputPath, FileMode.Create));
                PdfDocument pdfDocument = new PdfDocument(writer);
                pdfDocument.SetTagged();

                PdfMerger merger = new PdfMerger(pdfDocument);

                foreach (PdfDocument doc in documentList)
                {
                    merger.Merge(doc, 1, doc.GetNumberOfPages());
                    //doc.CopyPagesTo(1, doc.GetNumberOfPages(), pdfDocument);
                    doc.Close();
                }

                pdfDocument.Close();
            }
            else
            {
                List <PdfDocument> documentList = new List <PdfDocument>();

                foreach (string inputFile in inputPath)
                {
                    documentList.Add(new PdfDocument(new PdfReader(inputFile)));
                }

                PdfWriter   writer      = new PdfWriter(new FileStream(outputPath, FileMode.Create));
                PdfDocument pdfDocument = new PdfDocument(writer);
                pdfDocument.SetTagged();

                PdfMerger merger = new PdfMerger(pdfDocument);

                foreach (PdfDocument doc in documentList)
                {
                    merger.Merge(doc, 1, doc.GetNumberOfPages());
                    doc.Close();
                }

                pdfDocument.Close();
            }
        }
Esempio n. 22
0
        public static string getMergePdfwithSig(string pathPdf)
        {
            string StartupPath = Path.GetDirectoryName(pathPdf);
            string FileName    = Path.GetFileNameWithoutExtension(pathPdf);
            string FileExt     = Path.GetExtension(pathPdf);

            //			string pathPdf = StartupPath + @"\dogovor_magomed.pdf";
            string filePdfNew = "";

            try
            {
                string fileName = StartupPath + @"\" + FileName + "_withSign" + FileExt;
                using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
                {
                    filePdfNew = StartupPath + @"\" + FileName + "_withSign" + FileExt;
                }
            }
            catch (IOException ioex)
            {
                filePdfNew = StartupPath + @"\" + FileName + "_withSign" + DateTime.Now.Millisecond + FileExt;
            }



            string tmpPdfSig = StartupPath + @"\sigToPdf.pdf";

            clSignature sig     = new clSignature();
            string      htmlSig = sig.getHtmlSig(pathPdf);


            //			using (FileStream htmlSource = File.Open(StartupPath + @"\USTUPKA.html", FileMode.Open))
            using (FileStream htmlSource = File.Open(htmlSig, FileMode.Open))
                using (FileStream pdfDest = File.Open(tmpPdfSig, FileMode.OpenOrCreate))
                {
                    ConverterProperties converterProperties = new ConverterProperties();
                    converterProperties.SetCharset("windows-1251");
                    HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
                }

            PdfDocument pdfDocument  = new PdfDocument(new PdfReader(pathPdf), new PdfWriter(filePdfNew));
            PdfDocument pdfDocument2 = new PdfDocument(new PdfReader(tmpPdfSig));

            PdfMerger merger = new PdfMerger(pdfDocument);

            merger.Merge(pdfDocument2, 1, pdfDocument2.GetNumberOfPages());

            pdfDocument2.Close();
            pdfDocument.Close();


            return(filePdfNew);
        }
        public IActionResult GetAllCharactersByIds()
        {
            var characters = _lfContext.tblCharacter.ToList();

            foreach (var character in characters)
            {
                const string src = @"Assets\InputPdfs\EmptyPassport.pdf";
                var          des = $@"Assets\OutputPdfs\FilledPassport{character.Id}.pdf";

                var oldFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), src);
                var newFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), des);

                _pdfService.CreateCharacterSheetById(character.Id, oldFile, newFile);
            }

            var folderPath = @"Assets\OutputPdfs";
            var path       = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), folderPath);

            var combinedPathx = @"Assets\CombinedPdfs\Combined.pdf";
            var combinedPath  = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), combinedPathx);

            var d = new DirectoryInfo(path);

            var pdf    = new PdfDocument(new PdfWriter(combinedPath));
            var merger = new PdfMerger(pdf);

            var pages = 2;

            foreach (var file in d.GetFiles("*.pdf"))
            {
                var firstSourcePdf = new PdfDocument(new PdfReader(file.FullName));
                var subPages       = firstSourcePdf.GetNumberOfPages();
                merger.Merge(firstSourcePdf, 1, subPages);
                firstSourcePdf.Close();

                pages += subPages;
            }

            pdf.Close();

            //converting Pdf file into bytes array

            /*
             * var dataBytes = System.IO.File.ReadAllBytes(oldFile);
             * var base64 = Convert.ToBase64String(dataBytes);
             * var pdfObj = new JObject { { "Pdf", base64 } };
             */

            var fileBytes = System.IO.File.ReadAllBytes(combinedPath);

            return(File(fileBytes, "application/pdf", "CharacterSheet.pdf"));
        }
Esempio n. 24
0
        public static void MergePdf()
        {
            PdfDocument pdf    = new PdfDocument(new PdfWriter(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "output.pdf")));
            PdfMerger   merger = new PdfMerger(pdf);

            foreach (var file in Directory.GetFiles("C:\\_tmp", "*.pdf"))
            {
                var srcPdf = new PdfDocument(new PdfReader(file));
                merger.Merge(srcPdf, 1, srcPdf.GetNumberOfPages());
                srcPdf.Close();
            }
            pdf.Close();
        }
Esempio n. 25
0
        public static void Merge(List <string> files, String ouputPath)
        {
            var pdf    = new PdfDocument(new PdfWriter(ouputPath));
            var merger = new PdfMerger(pdf);

            foreach (var file in files)
            {
                var pdfDocument = new PdfDocument(new PdfReader(file));
                merger.Merge(pdfDocument, 1, pdfDocument.GetNumberOfPages());
                pdfDocument.Close();
            }

            pdf.Close();
        }
Esempio n. 26
0
        public void ObjectCountLower()
        {
            var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf");
            var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf");

            var result = PdfMerger.Merge(one, two);

            using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff))
            {
                Assert.Equal(2, document.NumberOfPages);
                Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count < 24,
                            "Expected object count to be lower than 24");
            }
        }
Esempio n. 27
0
        public void MergePdf(IEnumerable <string> files, string pdfDest)
        {
            PdfWriter   writer = new PdfWriter(pdfDest);
            PdfDocument pdfDoc = new PdfDocument(writer);
            PdfMerger   merger = new PdfMerger(pdfDoc);

            foreach (string file in files)
            {
                PdfDocument pdfDocSrc = new PdfDocument(new PdfReader(file));
                merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages());
                pdfDocSrc.Close();
            }
            merger.Close();
        }
        public static string DeletePage(string Path, int from, int to)
        {
            //PDF Merger
            if (!System.IO.Directory.Exists(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeletePage")))
            {
                System.IO.Directory.CreateDirectory(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeletePage"));
            }

            string path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeletePage", "Merged" + number++ + ".pdf");


            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }

            PdfDocument pdfMergered = new PdfDocument(new PdfWriter(path));
            PdfMerger   pdfMerger   = new PdfMerger(pdfMergered);

            //Source and Des
            PdfDocument source = new PdfDocument(new PdfReader(Path));

            for (int i = 1; i < from; i++)
            {
                pdfMerger.Merge(source, i, i);
            }

            for (int i = to + 1; i <= source.GetNumberOfPages(); i++)
            {
                pdfMerger.Merge(source, i, i);
            }

            source.Close();
            pdfMerger.Close();
            pdfMergered.Close();
            return(path);
        }
Esempio n. 29
0
 public void NoStackoverflow()
 {
     try
     {
         var bytes = PdfMerger.Merge(IntegrationHelpers.GetDocumentPath("68-1990-01_A.pdf"));
         using (var document = PdfDocument.Open(bytes, ParsingOptions.LenientParsingOff))
         {
             Assert.Equal(45, document.NumberOfPages);
         }
     }
     catch (StackOverflowException)
     {
         Assert.True(false);
     }
 }
Esempio n. 30
0
        public void MergePdf(string directory, string pdfDest)
        {
            PdfWriter   writer = new PdfWriter(pdfDest);
            PdfDocument pdfDoc = new PdfDocument(writer);
            PdfMerger   merger = new PdfMerger(pdfDoc);

            string[] files = Directory.GetFiles(directory, "*.pdf", SearchOption.TopDirectoryOnly);
            foreach (string file in files)
            {
                PdfDocument pdfDocSrc = new PdfDocument(new PdfReader(file));
                merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages());
                pdfDocSrc.Close();
            }
            merger.Close();
        }