Пример #1
0
        private bool ImposeCover(List <CockleFilePdf> imposedFiles, string imposedCover)
        {
            var iterCoverFiles = imposedFiles
                                 .Where(f => f.FileType == SourceFileTypeEnum.Cover ||
                                        f.FileType == SourceFileTypeEnum.InsideCv);
            List <CockleFilePdf> coverFiles = new List <CockleFilePdf>(iterCoverFiles);

            if (
                !PdfUtilities.CombineCoverAndInsideCover(coverFiles, imposedCover) ||
                !PdfUtilities.CropCoverAndInsideCover(imposedCover, CoverLength) ||
                !PdfUtilities.SaddleStitch_LayoutCroppedCoverAndInsideCover(imposedCover, PageCountOfBody, CoverLength))
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Пример #2
0
        private bool ImposeBrief(List <CockleFilePdf> imposedFiles, string imposedBody, TypeOfBindEnum bind)
        {
            // remove cover, combine body, and add blank pages where needed
            PdfUtilities.CombineBriefPages_AddingBlanks(imposedFiles, imposedBody, bind);

            if (// reorder saddlestitch pages
                !PdfUtilities.SaddleStitch_ReorderPagesForLayout(imposedBody) ||
                // crop pages
                !PdfUtilities.CropCockleBriefPages(imposedBody) ||
                // layout on B4 pages
                !PdfUtilities.SaddleStitch_LayoutCroppedBrief(imposedBody))
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Пример #3
0
        private void ImposeCover(List <CockleFilePdf> imposedFiles, string imposedCover)
        {
            var iterCoverFiles = imposedFiles
                                 .Where(f => f.FileType == SourceFileTypeEnum.Cover ||
                                        f.FileType == SourceFileTypeEnum.InsideCv);
            List <CockleFilePdf> coverFiles = new List <CockleFilePdf>(iterCoverFiles);

            if (!PdfUtilities.CombineCoverAndInsideCover(coverFiles, imposedCover))
            {
            }

            if (!PdfUtilities.CropCoverAndInsideCover(imposedCover, this.CoverLength))
            {
            }

            if (!PdfUtilities.PerfectBind_LayoutCroppedCoverAndInsideCover(imposedCover, this.CoverLength))
            {
            }
        }
Пример #4
0
        private void ImposeBrief(List <CockleFilePdf> imposedFiles, string imposedBody, TypeOfBindEnum bind)
        {
            // remove cover, combine body, and add blank pages where needed
            if (!PdfUtilities.CombineBriefPages_AddingBlanks(imposedFiles, imposedBody, bind))
            {
                // problem if returns false
            }

            // crop pages
            if (!PdfUtilities.CropCockleBriefPages(imposedBody))
            {
                // problem if returns false
            }
            // layout on B5 pages
            if (!PdfUtilities.PerfectBind_LayoutCroppedBrief(imposedBody))
            {
                // problem if returns false
            }
        }
Пример #5
0
        public NUpCircuitCourtCoverOn11x19(CockleFilePdf _selectedFile)
        {
            if (!Utilities.AcrobatJS.AreAcrobatJavascriptsInPlace())
            {
                throw new Exception();
            }

            selectedPdfFile = _selectedFile;

            // develop new file name
            var directory    = System.IO.Path.GetDirectoryName(selectedPdfFile.FullName);
            var ticket_atty  = selectedPdfFile.TicketPlusAttorney;
            var _newfilename = PdfUtilities.GenerateFilenameForNewPdf(directory, "nUpOn11x19", ticket_atty);

            nUpCoverDoc(_newfilename);

            if (System.IO.File.Exists(_newfilename))
            {
                NewFileCreated = new CockleFilePdf(_newfilename, selectedPdfFile, Utilities.SourceFileTypeEnum.UnrecognizedCentered);
            }
        }
        private void carryOutImposition(System.IO.MemoryStream orig_ms)
        {
            ImposedFilesCreated = new List <CockleFilePdf>();

            OriginalPageCount = new iTextSharp.text.pdf.PdfReader(orig_ms.ToArray()).NumberOfPages;

            // crop and impose
            switch (BindType)
            {
            case TypeOfBindEnum.SaddleStitch:
                // with SS, assume that if multiple pages + cover == impose everything
                // cover + 1 page == cover only
                // no cover == brief only
                if (OriginalPageCount == 1 && HasCover)   // cover only
                {
                    var cropped_stream = cropTypesetCover(orig_ms);
                    var imposed_stream = imposeTypesetSaddleStitchCover(cropped_stream);
                    NewDocMemStream = imposed_stream;
                }
                else if (OriginalPageCount > 1 && HasCover)
                {
                    // get cover stream
                    var select_cv_stream  = extractPages(orig_ms, 1, 1);
                    var cropped_cv_stream = cropTypesetCover(select_cv_stream);
                    var imposed_cv_stream = imposeTypesetSaddleStitchCover(cropped_cv_stream);
                    // check if user inserted blank ???
                    var imposed_cv_with_blank_icv_stream = addBlankPages(imposed_cv_stream, 1);

                    // account for user option: no blank page after cover or blank page after cover
                    // can only do this with typeset docs: no guarantee text with be identified on camera ready docs
                    var brief_start_page = 2;     // check if 2 is blank: user may insert blank here
                    var is_page2_blank   = PdfUtilities.IsPdfPageBlank(orig_ms, 2);
                    if (is_page2_blank)
                    {
                        brief_start_page = 3;
                    }

                    // get brief stream
                    var select_br_stream  = extractPages(orig_ms, brief_start_page, OriginalPageCount);
                    var cropped_br_stream = cropTypesetBrief(select_br_stream);

                    var numPagesToAdd = 0;
                    var brief_pages   = OriginalPageCount - brief_start_page + 1;
                    if ((brief_pages) % 4 != 0)
                    {
                        numPagesToAdd = 4 - ((brief_pages) % 4);
                    }
                    System.IO.MemoryStream imposed_br_stream = null;
                    if (numPagesToAdd != 0)
                    {
                        var added_pages_stream = addBlankPages(cropped_br_stream, numPagesToAdd);
                        var reordered_stream   = reorderSaddleStitchBrief(added_pages_stream);
                        imposed_br_stream = imposeTypesetSaddleStitchBrief(reordered_stream);
                    }
                    else
                    {
                        var reordered_stream = reorderSaddleStitchBrief(cropped_br_stream);
                        imposed_br_stream = imposeTypesetSaddleStitchBrief(reordered_stream);
                    }
                    NewDocMemStream = joinTwoStreamsIntoOnePdf(imposed_cv_with_blank_icv_stream, imposed_br_stream);
                }
                else if (!HasCover)
                {
                    var cropped_stream = cropTypesetBrief(orig_ms);

                    // test for % 4 == 0
                    var numPagesToAdd = 0;
                    if (OriginalPageCount % 4 != 0)
                    {
                        numPagesToAdd = 4 - (OriginalPageCount % 4);
                    }
                    if (numPagesToAdd != 0)
                    {
                        var added_pages_stream = addBlankPages(cropped_stream, numPagesToAdd);
                        var reordered_stream   = reorderSaddleStitchBrief(added_pages_stream);
                        var imposed_stream     = imposeTypesetSaddleStitchBrief(reordered_stream);
                        NewDocMemStream = imposed_stream;
                    }
                    else
                    {
                        var reordered_stream = reorderSaddleStitchBrief(cropped_stream);
                        var imposed_stream   = imposeTypesetSaddleStitchBrief(reordered_stream);
                        NewDocMemStream = imposed_stream;
                    }
                }
                break;

            case TypeOfBindEnum.PerfectBind:
                if (HasCover)    // in this case, is cover
                {
                    if (OriginalPageCount != 1)
                    {
                        throw new Exception("You are trying to impose a Perfect Bind Cover."
                                            + "Perfect Bind Covers can only have 1 page.");
                    }
                    var cropped_stream = cropTypesetCover(orig_ms);
                    var imposed_stream = imposeTypesetPerfectBindCover(cropped_stream);
                    NewDocMemStream = imposed_stream;
                }
                else
                {
                    var cropped_stream = cropTypesetBrief(orig_ms);
                    var imposed_stream = imposeTypesetPerfectBindBrief(cropped_stream);
                    NewDocMemStream = imposed_stream;
                }
                break;
            }
        }