Ejemplo n.º 1
0
        static Table tableStyle(Appearance appearance, PageSize pageSize, Document pdoc)
        {
            float[] dim = appearance.getDimensions();

            Table table = new Table(dim, true);

            table.UseAllAvailableWidth().SetDocument(pdoc);

            table.SetHeight(UnitValue.CreatePointValue(pageSize.GetHeight() - 28.333f));

            for (int i = 0; i < appearance.getHeightRatio() + 1; i++)
            {
                for (int j = 0; j < appearance.getDimensions().Length; j++)
                {
                    Cell cell = new Cell();

                    cell.SetHeight(table.GetHeight().GetValue() / appearance.getHeightRatio() - 4.666f);

                    cellStyle(ref cell);
                    table.AddCell(cell);
                }
            }

            return(table);
        }
Ejemplo n.º 2
0
        private void SavePDF_Click(object sender, EventArgs e)
        {
            string   pdfName;
            PageSize pageSize = new PageSize(567f, 567f);

            pdfName = textBoxPDFName.Text;
            if (!(textBoxPDFName.Text.EndsWith(".pdf")))
            {
                pdfName += ".pdf";
            }



            AppearanceType appearanceType = AppearanceType.Portrait;


            string exportFile = Path.Combine(textBoxOutputPath.Text, pdfName);



            switch (comboBoxPages.Text)
            {
            case "3": imgNumber = 3;  break;

            case "4": imgNumber = 4;  break;

            case "6": imgNumber = 6;  break;
            }

            switch (comboBoxAppearance.Text)
            {
            case "Portrait": appearanceType = AppearanceType.Portrait;      break;

            case "Landscape": appearanceType = AppearanceType.Landscape;    break;

            case "Magic Appearance": appearanceType = AppearanceType.Magic; break;
            }

            switch (comboBoxFormat.Text)
            {
            case "20x20 (cm)":
                pageSize   = new PageSize(583.666f, 583.666f);
                appearance = new Appearance(appearanceType, formats.ElementAt(0), imgNumber); break;

            case "21x30 (cm)":
                pageSize   = new PageSize(594.999f, 849.999f);
                appearance = new Appearance(appearanceType, formats.ElementAt(1), imgNumber); break;

            case "21x15 (cm)":
                pageSize   = new PageSize(594.999f, 425.000f);
                appearance = new Appearance(appearanceType, formats.ElementAt(2), imgNumber); break;
            }


            PDFMaker.createDocument(listImages, appearance, pageSize, exportFile);
        }
Ejemplo n.º 3
0
        public static void createDocument(List <ImageSelection> listImages, Appearance appearance, PageSize pageSize, string exportFile)
        {
            checkSameDocuments(ref exportFile);

            using (PdfWriter writer = new PdfWriter(exportFile))
            {
                using (PdfDocument pdf = new PdfDocument(writer))
                {
                    Document pdoc = new Document(pdf, pageSize);

                    pdoc.SetMargins(14.1665f, 14.1665f, 14.1665f, 14.1665f);



                    Table table = tableStyle(appearance, pageSize, pdoc);



                    for (int k = 0, i = 0, j = 0; k < listImages.Count; k++, j++)
                    {
                        if (j == appearance.getDimensions().Length)
                        {
                            j = 0; i++;
                        }
                        if (i == appearance.getHeightRatio())
                        {
                            pdoc.Add(table);
                            table = tableStyle(appearance, pageSize, pdoc);

                            pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                            j = i = 0;
                        }

                        Image img = new Image(iText.IO.Image.ImageDataFactory.Create(listImages.ElementAt(k).getPath()));

                        imgStyle(ref img, listImages.ElementAt(k));


                        table.GetCell(i, j).Add(img);
                    }
                    pdoc.Add(table);


                    pdoc.Close();
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// collect all pages to pdf format, also make table of content in pdf file
        /// </summary>
        /// <param name="outputPath">output file path</param>
        /// <param name="font">font for table of content</param>
        /// <param name="fontSizeInfo">size of information text</param>
        /// <param name="fontSizeHeader">size of header text</param>
        /// <param name="pageSize">page size of information and table of content</param>
        public void CollectContentToPdf(string outputPath, PdfFont font, float fontSizeInfo, float fontSizeHeader, iText.Kernel.Geom.PageSize pageSize)
        {
            ContentCollector contentCollector = new ContentCollector(Dir.FullName);

            contentCollector.CollectContentToPdf(outputPath, font, fontSizeInfo, fontSizeHeader, pageSize);
        }
Ejemplo n.º 5
0
        private void SavePDF_Click(object sender, EventArgs e)
        {
            string   pdfName;
            PageSize pageSize = new PageSize(567f, 567f);

            pdfName = textBoxPDFName.Text;
            if (!(textBoxPDFName.Text.EndsWith(".pdf")))
            {
                pdfName += ".pdf";
            }

            AppearanceType appearanceType = AppearanceType.Portrait;


            string exportFile = Path.Combine(textBoxOutputPath.Text, pdfName);

            Format format = formats.ElementAt(0);


            switch (comboBoxPages.Text)
            {
            case "3": imgNumber = 3;  break;

            case "4": imgNumber = 4;  break;

            case "6": imgNumber = 6;  break;
            }

            switch (comboBoxAppearance.Text)
            {
            case "Portrait": appearanceType = AppearanceType.Portrait;      break;

            case "Landscape": appearanceType = AppearanceType.Landscape;    break;

            case "Magic Appearance": appearanceType = AppearanceType.Magic; break;
            }

            switch (comboBoxFormat.Text)
            {
            case "20x20 (cm)":
                pageSize   = new PageSize(583.999f, 583.999f);
                format     = formats.ElementAt(0);
                appearance = new Appearance(appearanceType, formats.ElementAt(0), imgNumber); break;

            case "21x30 (cm)":
                pageSize   = new PageSize(611.999f, 867.666f);
                format     = formats.ElementAt(1);
                appearance = new Appearance(appearanceType, formats.ElementAt(1), imgNumber); break;

            case "21x15 (cm)":
                pageSize   = new PageSize(611.999f, 441.999f);
                format     = formats.ElementAt(2);
                appearance = new Appearance(appearanceType, formats.ElementAt(2), imgNumber); break;
            }

            if (checkBoxAppearance.Checked)
            {
                PDFMaker.createDocument(listImages, appearance, pageSize, exportFile, format);
            }
            else
            {
                PDFMaker.createDocument(listImages, appearance, pageSize, exportFile, format, true);
            }


            List <ImageSelection> imagesToDelete = new List <ImageSelection>();

            foreach (ImageSelection garbage in listBoxImageFile.Items)
            {
                imagesToDelete.Add(garbage);
            }

            foreach (ImageSelection imageToDelete in imagesToDelete)
            {
                listBoxImageFile.Items.Remove(imageToDelete);

                foreach (ImageSelection image in listImages)
                {
                    if (image.ToString() == imageToDelete.ToString())
                    {
                        listImages.Remove(image);
                        break;
                    }
                }
            }
            labelNrImages.Text      = "Images :      " + listImages.Count;
            labelFullPages.Text     = "Full Pages : " + (listImages.Count / imgNumber).ToString();
            PDFMaker.setOrientation = false;
        }
Ejemplo n.º 6
0
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            if (OutputFilePath == null || OutputFilePath.Length <= 0)
            {
                MessageBox.Show("Please provide a file path before attempting to generate output.", "", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            Logger.Log(Severity.INFO, LogCategory.APP, "Job started (engine PDF)");
            var stopWatch = Stopwatch.StartNew();

            Common.Logging.LogManager.Adapter = new ITextLoggingShimAdapter();
            try {
                using (PdfWriter writer = new PdfWriter(OutputFilePath)) {
                    PdfDocument pdf = new PdfDocument(writer);
                    pdf.AddEventHandler(PdfDocumentEvent.START_PAGE, new PageStartEventHandler(DocTemplate));
                    Document document = null;
                    foreach (var page in DocTemplate)
                    {
                        var pageSize = new iText.Kernel.Geom.PageSize(
                            page.PageWidth.ToITextPoint(),
                            page.PageHeight.ToITextPoint()
                            );

                        if (document == null)
                        {
                            document = new Document(pdf, pageSize);
                            document.SetMargins(0, 0, 0, 0);
                        }
                        else
                        {
                            document.Add(new iText.Layout.Element.AreaBreak(pageSize));
                        }


                        foreach (var canvasCtrl in page.CanvasControls)
                        {
                            var elements = new List <iText.Layout.Element.IElement>();
                            elements = canvasCtrl.ToIText();
                            foreach (var element in elements)
                            {
                                if (element is iText.Layout.Element.Paragraph paragraph)
                                {
                                    document.Add(paragraph);
                                }
                                else if (element is iText.Layout.Element.Image image)
                                {
                                    document.Add(image);
                                }
                            }
                        }
                    }
                    document.Close();
                    pdf.Close();
                }
            }
            catch (Exception err) {
                Logger.Log(Severity.ERROR, LogCategory.APP, err.Message);
            }
            stopWatch.Stop();
            Logger.Log(Severity.INFO, LogCategory.APP, String.Format("Job finished (duration {0})", stopWatch.Elapsed.ToString("hh':'mm':'ss':'fff")));
        }
Ejemplo n.º 7
0
        public static void createDocument(List <ImageSelection> listImages, Appearance appearance, PageSize pageSize, string exportFile, Format format)
        {
            checkSameDocuments(ref exportFile);

            using (PdfWriter writer = new PdfWriter(exportFile))
            {
                using (PdfDocument pdf = new PdfDocument(writer))
                {
                    Document pdoc = new Document(pdf, pageSize);
                    pdoc.SetMargins(8.5f, 8.5f, 8.5f, 8.5f);
                    Appearance coverAppearance = new Appearance(appearance.getAppearanceType(), format, 1);

                    Table table = tableStyle(coverAppearance, pageSize, pdoc);
                    table = tableStyle(coverAppearance, pageSize, pdoc);
                    Image imgc = null;
                    try
                    {
                        imgc = new Image(iText.IO.Image.ImageDataFactory.Create(listImages.ElementAt(0).getPath()));
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                        MessageBox.Show("There's no image selected !", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        pdoc = null;
                        //pdf = null;
                        pdf.AddNewPage();
                        pdf.Close();
                        writer.Close();
                        File.Delete(exportFile);

                        return;
                    }

                    imgStyle(ref imgc, listImages.ElementAt(0));

                    table.GetCell(0, 0).Add(imgc);
                    pdoc.Add(table);



                    table = tableStyle(appearance, pageSize, pdoc);
                    pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));

                    for (int k = 1, i = 0, j = 0; k < listImages.Count - 1; k++, j++)
                    {
                        if (j == appearance.getDimensions().Length)
                        {
                            j = 0; i++;
                        }
                        if (i == appearance.getHeightRatio())
                        {
                            pdoc.Add(table);
                            table = tableStyle(appearance, pageSize, pdoc);

                            pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                            j = i = 0;
                        }

                        Image img = new Image(iText.IO.Image.ImageDataFactory.Create(listImages.ElementAt(k).getPath()));

                        imgStyle(ref img, listImages.ElementAt(k));
                        Console.WriteLine(listImages.ElementAt(k).format);


                        table.GetCell(i, j).Add(img);
                    }
                    pdoc.Add(table);

                    pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));


                    table = tableStyle(coverAppearance, pageSize, pdoc);
                    imgc  = new Image(iText.IO.Image.ImageDataFactory.Create(listImages.ElementAt(listImages.Count - 1).getPath()));
                    imgStyle(ref imgc, listImages.ElementAt(listImages.Count - 1));
                    table.GetCell(0, 0).Add(imgc);
                    pdoc.Add(table);


                    pdoc.Close();
                }
            }
        }
Ejemplo n.º 8
0
        public static void createDocument(List <ImageSelection> listImages, Appearance appearance, PageSize pageSize, string exportFile, Format format, bool value)
        {
            checkSameDocuments(ref exportFile);

            Console.WriteLine();
            using (PdfWriter writer = new PdfWriter(exportFile))
            {
                using (PdfDocument pdf = new PdfDocument(writer))
                {
                    Document pdoc = new Document(pdf, pageSize);
                    pdoc.SetMargins(0f, 0f, 0f, 0f);
                    Appearance coverAppearance = new Appearance(appearance.getAppearanceType(), format, 1);
                    Appearance currentAppearance;



                    List <ImageSelection> currentImgsList = new List <ImageSelection>();
                    List <Image>          imgs            = new List <Image>();
                    List <Image>          currentImgs     = new List <Image>();

                    for (int i = 0; i < listImages.Count; i++)
                    {
                        imgs.Add(new Image(iText.IO.Image.ImageDataFactory.Create(listImages.ElementAt(i).getPath())));
                        imgs.ElementAt(i).SetHorizontalAlignment(HorizontalAlignment.CENTER);
                        imgs.ElementAt(i).SetAutoScale(true);


                        imgStyle(imgs.ElementAt(i), listImages.ElementAt(i));
                    }
                    setOrientation = true;


                    /// First page
                    Table table = null;
                    try
                    {
                        imgs.ElementAt(0).SetAutoScale(true);

                        table = tableStyle(coverAppearance, pageSize, pdoc);


                        table.GetCell(0, 0).SetMargins(0f, 0f, 0f, 0f);
                        table.GetCell(0, 0).SetPaddings(0f, 0f, 0f, 0f);


                        table.SetMargins(0f, 0f, 0f, 0f);
                        table.SetPaddings(0f, 0f, 0f, 0f);
                        //table.GetCell(0, 0).SetBorder(BorderStyle.FixedSingle);
                        table.GetCell(0, 0).SetVerticalAlignment(VerticalAlignment.MIDDLE);
                        table.GetCell(0, 0).Add(imgs.ElementAt(0));

                        pdoc.Add(table);

                        if (imgs.Count > 2)
                        {
                            pdoc.SetMargins(8.5f, 8.5f, 8.5f, 8.5f);
                        }
                        pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                        MessageBox.Show("There's no image selected !", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        pdoc = null;
                        //pdf = null;
                        pdf.AddNewPage();
                        pdf.Close();
                        writer.Close();
                        File.Delete(exportFile);

                        return;
                    }



                    for (int k = 1, p = 0; k < listImages.Count - 1; k++)
                    {
                        currentImgsList.Add(listImages.ElementAt(k));
                        currentImgs.Add(imgs.ElementAt(k));
                        if (k % appearance.getImgNumber() == 0)
                        {
                            currentAppearance = new Appearance(appearance.getAppearanceType(), format, appearance.getImgNumber(), getLandscape(currentImgsList), getPortrait(currentImgsList));
                            Console.WriteLine(currentAppearance.specialCond);
                            switch (currentAppearance.specialCond)
                            {
                            case "21x15_4P0L": table = Custom.customTable1(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x15_3P1L": table = Custom.customTable2(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x15_2P2L": table = Custom.customTable3(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x15_1P3L": table = Custom.customTable3(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x15_0P4L": table = Custom.customTable3(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;


                            case "20x20_1P2L": table = Custom.customTable4(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_2P1L": table = Custom.customTable5(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_0P3L": table = Custom.customTable6(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_3P0L": table = Custom.customTable7(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_4_1P3L": table = Custom.customTable8(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_4_2P2L": table = Custom.customTable9(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_4_0P4L": table = Custom.customTable10(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_4_3P1L": table = Custom.customTable11(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "20x20_4_4P0L": table = Custom.customTable12(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;


                            case "21x30_4_1P3L": table = Custom.customTable13(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_4_2P2L": table = Custom.customTable14(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_4_3P1L": table = Custom.customTable15(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_4_0P4L": table = Custom.customTable16(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_4_4P0L": table = Custom.customTable17(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_5P1L": table = Custom.customTable18(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_1P5L": table = Custom.customTable19(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_2P4L": table = Custom.customTable20(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_3P3L": table = Custom.customTable21(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_4P2L": table = Custom.customTable22(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_0P6L": table = Custom.customTable23(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;

                            case "21x30_6_6P0L": table = Custom.customTable24(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs); break;
                            }
                            Console.WriteLine("Portraits: " + getPortrait(currentImgsList) + "Landscapes: " + getLandscape(currentImgsList));
                            currentImgsList.Clear();
                            currentImgs.Clear();



                            p++;
                            if (((listImages.Count - 2) / appearance.getImgNumber() == p) && ((listImages.Count - 2) % appearance.getImgNumber() == 0))
                            {
                                pdoc.SetMargins(0f, 0f, 0f, 0f);
                            }

                            pdoc.Add(table);
                            pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                        }
                    }
                    if (currentImgsList.Count > 0)
                    {
                        currentAppearance = new Appearance("reminder", appearance.getImgNumber());
                        table             = Custom.customTable3(currentAppearance, pageSize, pdoc, currentImgsList, currentImgs);
                        currentImgsList.Clear();
                        currentImgs.Clear();

                        pdoc.Add(table);

                        pdoc.SetMargins(0f, 0f, 0f, 0f);
                        pdoc.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                    }


                    imgs.ElementAt(imgs.Count - 1).SetAutoScale(true);


                    table = tableStyle(coverAppearance, pageSize, pdoc);


                    table.GetCell(0, 0).SetMargins(0f, 0f, 0f, 0f);
                    table.GetCell(0, 0).SetPaddings(0f, 0f, 0f, 0f);


                    table.SetMargins(0f, 0f, 0f, 0f);
                    table.SetPaddings(0f, 0f, 0f, 0f);
                    //table.GetCell(0, 0).SetBorder(BorderStyle.FixedSingle);
                    table.GetCell(0, 0).SetVerticalAlignment(VerticalAlignment.MIDDLE);
                    table.GetCell(0, 0).Add(imgs.ElementAt(imgs.Count - 1));

                    pdoc.Add(table);


                    pdoc.Close();
                }
            }
        }