Exemple #1
0
        private static IEnumerable <PdfActionInsertImage> BuildActions(JugementArgs jugementArgs)
        {
            var actions = new List <PdfActionInsertImage>();

            var rectoPageCount = GetPageCount(jugementArgs.RectoPdfPath);
            var versoPageCount = GetPageCount(jugementArgs.VersoPdfPath);

            var totalPageCount = rectoPageCount + versoPageCount;

            var pageIndexDisplay = 1;

            // Calculated Ajusted Left Margin
            double leftMarginInCmAdjusted = 3.9;

            if (jugementArgs.LeftMarginInCm.HasValue && jugementArgs.LeftMarginInCm >= 0 && jugementArgs.LeftMarginInCm < 21.0)
            {
                leftMarginInCmAdjusted = jugementArgs.LeftMarginInCm.Value; // Error correction
            }
            leftMarginInCmAdjusted += 0.5;                                  // Error correction
            int leftMarginInImgPx = (int)Math.Round(leftMarginInCmAdjusted * 1766 / 21);

            //

            var pageCountToSkipAtTheEndOfVerso = 2;

            if (jugementArgs.SkipVersoPages.HasValue && jugementArgs.SkipVersoPages >= 0)
            {
                pageCountToSkipAtTheEndOfVerso = jugementArgs.SkipVersoPages.Value;
            }

            for (int i = 1; i <= totalPageCount; i++)
            {
                var a = new PdfActionInsertImage()
                {
                    ResultPageIndex = pageIndexDisplay,
                    ModelPdfPath    = jugementArgs.FormPdfPath,
                    FullPageLabel   = pageIndexDisplay.ToString() // +"/"+ totalPageCount // It's too large !
                };

                a.SourceMarginLeft = (i == 1) ? 0 : leftMarginInImgPx; // magic number

                var recto = (i % 2 == 1);

                if (i == 1)
                {
                    a.ModelPageIndex = 1;
                }
                else
                {
                    a.ModelPageIndex = 4;
                }

                a.SourcePdfPath = recto ? jugementArgs.RectoPdfPath : jugementArgs.VersoPdfPath;

                var index = (i + 1) / 2;

                a.SourcePageIndex = recto ? index : versoPageCount + 1 - index;

                if (!recto && a.SourcePageIndex <= pageCountToSkipAtTheEndOfVerso)
                {
                    continue;
                }

                actions.Add(a);
                pageIndexDisplay++;
            }

            return(actions);
        }
Exemple #2
0
        public void InsertJudgmentIntoCerfa(JugementArgs jugementArgs)
        {
            var actions = BuildActions(jugementArgs);

            RunPdfActions(actions, jugementArgs.OutputDirPath, jugementArgs.OutputFileName);
        }