public void GenerateMergeByteDocument(Guid pRef, Byte[] pdfBytes, string destinationPath,
            string logPathFileName, bool forceDownload, out int pageCount, string pType, string logoAlign,
            string docTitle, string ownerName, bool withFirstPage,bool withLastPage)
        {
            pageCount = 0;

            DocumentType paramType = new DocumentType();
            if (pType.Equals("CPART"))
            {
                paramType = DocumentType.CPART;
            }
            else if (pType.Equals("CINT"))
            {
                paramType = DocumentType.CINT;
            }
            else if (pType.Equals("CCOURT"))
            {
                paramType = DocumentType.CCOURT;
            }
            else if (pType.Equals("CCOMP"))
            {
                paramType = DocumentType.CCOMP;
            }
            else if (pType.Equals("SF"))
            {
                paramType = DocumentType.SF;
            }

            Foxit.PDF.Merger.MergeDocument.AddLicense(
                "FMG10NSSON9OFIABCewPXCJlULTrBmb0SkTNyV3ssvPFh3UATLennjoZ3Hb5DhtS/wgungtgSni2boFhE9Hqru0F11GXQE8gFoog");
            //new
            Foxit.PDF.Merger.MergeDocument pdf = new Foxit.PDF.Merger.MergeDocument();

            //1 Generation de la premiere page
            if (withFirstPage)
            {
                pdf.Append(
                    new Foxit.PDF.Merger.PdfDocument(GenerateFirstPage(null, pRef, logPathFileName, paramType, docTitle,
                        ownerName, logoAlign)));
            }

            //2 Merge 1ere page et document avec le document uploadé par le client
            pdf.Append(new Foxit.PDF.Merger.PdfDocument(pdfBytes));

            //3 Merge final avec derniere page
            if (withLastPage)
            {
                pdf.Append(new Foxit.PDF.Merger.PdfDocument(GenerateLastPage(forceDownload)));
            }

            if (forceDownload)
            {
                switch (paramType)
                {
                    case DocumentType.CPART:
                        pdf.DrawToWeb("ConventionDePartenariat.pdf", forceDownload);
                        break;
                    case DocumentType.CINT:
                        pdf.DrawToWeb("ConventionInternet.pdf", forceDownload);
                        break;
                    case DocumentType.CCOURT:
                        pdf.DrawToWeb("ConventionDeCoCourtage.pdf", forceDownload);
                        break;
                    case DocumentType.SF:
                        pdf.DrawToWeb("BulletinDeSouscription.pdf", forceDownload);
                        break;
                    case DocumentType.CCOMP:
                        pdf.DrawToWeb("FicheComplementaire.pdf", forceDownload);
                        break;

                    default :
                        pdf.DrawToWeb("Document.pdf", forceDownload);
                        break;
                }
            }
            else
            {
                CheckAndDelete(destinationPath);
                pdf.Draw(destinationPath);
            }

            pageCount = pdf.Pages.Count;
        }
        public void GenerateMergeDocument(byte[] documentByte, List<string> sourcesPath, string destinationPath)
        {
            Foxit.PDF.Merger.MergeDocument.AddLicense("FMG10NSSON9OFIABCewPXCJlULTrBmb0SkTNyV3ssvPFh3UATLennjoZ3Hb5DhtS/wgungtgSni2boFhE9Hqru0F11GXQE8gFoog");
            Foxit.PDF.Merger.MergeDocument pdf = new Foxit.PDF.Merger.MergeDocument();

            //1- Append les premieres pages
            pdf.Append(new Foxit.PDF.Merger.PdfDocument(documentByte));

            //2- Merge avec les documents uploadés par le client
            foreach (var docPath in sourcesPath)
            {
                pdf.Append(docPath);
            }

            if (string.IsNullOrEmpty(destinationPath))
            {
                pdf.DrawToWeb("MesuresVigilance.pdf", true);
            }
            else
            {
                CheckAndDelete(destinationPath);
                pdf.Draw(destinationPath);
            }
        }
        public void GenerateMergeDocument(bool? isCorporation, Guid pRef, string sourceDocumentPath, string destinationPath, string logPathFileName, bool forceDownload, out int pageCount, DocumentType pType, string logoAlign, string docTitle, string ownerName)
        {
            pageCount = 0;

            Foxit.PDF.Merger.MergeDocument.AddLicense("FMG10NSSON9OFIABCewPXCJlULTrBmb0SkTNyV3ssvPFh3UATLennjoZ3Hb5DhtS/wgungtgSni2boFhE9Hqru0F11GXQE8gFoog"); //new
            Foxit.PDF.Merger.MergeDocument pdf = new Foxit.PDF.Merger.MergeDocument();

            //1 Generation de la premiere page
            pdf.Append(new Foxit.PDF.Merger.PdfDocument(GenerateFirstPage(isCorporation, pRef, logPathFileName, pType, docTitle, ownerName, logoAlign)));

            //2 Merge 1ere page et document avec le document uploadé par le client
            pdf.Append(sourceDocumentPath);

            //3 Merge final avec derniere page
            pdf.Append(new Foxit.PDF.Merger.PdfDocument(GenerateLastPage(forceDownload)));

            if (forceDownload)
            {
                switch (pType)
                {
                    case DocumentType.LM:
                        if (isCorporation.Value)
                            pdf.DrawToWeb("LettreMission_PM.pdf", forceDownload);
                        else
                            pdf.DrawToWeb("LettreMission_PP.pdf", forceDownload);
                        break;

                    case DocumentType.RM:
                        //if (isCorporation)
                        //    pdf.DrawToWeb("RapportMission_PM.pdf", forceDownload);
                        //else
                        //    pdf.DrawToWeb("RapportMission_PP.pdf", forceDownload);
                        pdf.DrawToWeb("RapportDeMission.pdf", forceDownload);
                        break;

                    case DocumentType.RTO:
                        pdf.DrawToWeb("RTO.pdf", forceDownload);
                        break;

                    case DocumentType.AX :
                        pdf.DrawToWeb("Appendix.pdf", forceDownload);
                        break;
                    case DocumentType.CPART:
                        pdf.DrawToWeb("ConventionDePartenariat.pdf", forceDownload);
                        break;
                    case DocumentType.CINT:
                        pdf.DrawToWeb("ConventionInternet.pdf", forceDownload);
                        break;
                    case DocumentType.CCOURT:
                        pdf.DrawToWeb("ConventionDeCoCourtage.pdf", forceDownload);
                        break;
                    case DocumentType.CCOMP:
                        pdf.DrawToWeb("FicheComplementaire.pdf", forceDownload);
                        break;

                }
            }
            else
            {
                CheckAndDelete(destinationPath);
                pdf.Draw(destinationPath);
            }

            pageCount = pdf.Pages.Count;
        }