Пример #1
0
        public void CopySignedDocuments()
        {
            string file = RESOURCES + "hello_signed1.pdf";

            Directory.CreateDirectory("PdfCopyTest/");
            Document pdfDocument = new Document();
            PdfCopy  copier      = new PdfCopy(pdfDocument, new FileStream("PdfCopyTest/CopySignedDocuments.pdf", FileMode.Create));

            pdfDocument.Open();

            PdfReader reader1 = new PdfReader(file);

            copier.AddPage(copier.GetImportedPage(reader1, 1));
            copier.FreeReader(reader1);

            reader1 = new PdfReader(file);
            copier.AddPage(copier.GetImportedPage(reader1, 1));
            copier.FreeReader(reader1);

            pdfDocument.Close();

            PdfReader     reader = new PdfReader("PdfCopyTest/CopySignedDocuments.pdf");
            PdfDictionary sig    = (PdfDictionary)reader.GetPdfObject(9);
            PdfDictionary sigRef = sig.GetAsArray(PdfName.REFERENCE).GetAsDict(0);

            Assert.True(PdfName.SIGREF.Equals(sigRef.GetAsName(PdfName.TYPE)));
            Assert.False(sigRef.Contains(PdfName.DATA));
            sig    = (PdfDictionary)reader.GetPdfObject(21);
            sigRef = sig.GetAsArray(PdfName.REFERENCE).GetAsDict(0);
            Assert.True(PdfName.SIGREF.Equals(sigRef.GetAsName(PdfName.TYPE)));
            Assert.False(sigRef.Contains(PdfName.DATA));
        }
Пример #2
0
        private void Button11_Click(object sender, EventArgs e)
        {
            var document = new Document();
            var ms       = new MemoryStream();

            string[] Lista = { "Guia_CV_2016.pdf", "Guia_CV_2016.pdf" };

            var pdfCopy = new PdfCopy(document, ms);

            document.Open();

            foreach (var item in Lista)
            {
                var pdfReader = new PdfReader(item);
                var n         = pdfReader.NumberOfPages;
                for (var page = 0; page < n;)
                {
                    pdfCopy.AddPage(pdfCopy.GetImportedPage(pdfReader, ++page));
                }
                pdfCopy.FreeReader(pdfReader);
            }
            pdfCopy.Flush();

            document.Close();
            Document doc = new Document();

            PdfWriter.GetInstance(doc, new FileStream("COMPLETO2.pdf", FileMode.Create));
            //ms.WriteTo(new FileStream("documentoJutar.pdf", FileMode.OpenOrCreate));
            ms.WriteTo(new FileStream("Prueba.pdf", FileMode.OpenOrCreate));
        }
Пример #3
0
        /// <summary>
        /// Concatenates PDFs
        /// </summary>
        /// <param name="pdfByteContent">A list of byte arrays containing the PDFs</param>
        /// <returns>A single byte array for one PDF</returns>
        public static byte[] ConcatenatePDFs(IEnumerable <byte[]> pdfByteContent)
        {
            //Console.WriteLine("Concatenating PDFs...");
            using var ms = new MemoryStream();
            var doc  = new Document();
            var copy = new PdfCopy(doc, ms);

            doc.Open();

            //Loop through each byte array
            foreach (var p in pdfByteContent)
            {
                //Create a PdfReader bound to that byte array
                var reader = new PdfReader(p);
                for (var i = 1; i <= reader.NumberOfPages; i++)
                {
                    copy.AddPage(copy.GetImportedPage(reader, i));
                }
                copy.FreeReader(reader);
                reader.Close();
            }
            copy.Close();
            doc.Close();
            var allPagesContent = ms.GetBuffer();

            ms.Flush();
            return(allPagesContent);
        }
Пример #4
0
        public static void Merge(List <string> fromFileNames, string toFileName)
        {
            using (var fs = new FileStream(toFileName, FileMode.Create))
            {
                var document = new Document();
                var pdfCopy  = new PdfCopy(document, fs);
                document.Open();

                PdfReader       reader = null;
                PdfImportedPage page   = null;

                fromFileNames.ForEach(fileName =>
                {
                    reader = new PdfReader(fileName);

                    for (int i = 0; i < reader.NumberOfPages; i++)
                    {
                        page = pdfCopy.GetImportedPage(reader, i + 1);
                        pdfCopy.AddPage(page);
                    }

                    pdfCopy.FreeReader(reader);
                    reader.Close();
                    // File.Delete(fileName);
                });

                document.Close();
                fs.Close();
            }
        }
Пример #5
0
        public static void MergeFiles(List <string> sourceFiles, string rutaPdfJoin, bool addCopy)
        {
            Document document = new Document();

            using (MemoryStream ms = new MemoryStream())
            {
                FileStream fl   = new FileStream(rutaPdfJoin, FileMode.Create, FileAccess.Write, FileShare.None);
                PdfCopy    copy = new PdfCopy(document, fl);
                document.Open();

                // Iterar pdfs
                for (int fileCounter = 0; fileCounter < sourceFiles.Count; fileCounter++)
                {
                    PdfReader reader        = new PdfReader(sourceFiles[fileCounter]);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterar paginas
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        PdfImportedPage   importedPage = copy.GetImportedPage(reader, currentPageIndex);
                        PdfCopy.PageStamp pageStamp    = copy.CreatePageStamp(importedPage);

                        pageStamp.AlterContents();
                        copy.AddPage(importedPage);
                        if (addCopy)
                        {
                            copy.AddPage(importedPage);
                        }
                    }
                    copy.FreeReader(reader);
                    reader.Close();
                }
                document.Close();
            }
        }
Пример #6
0
        /// <summary>
        /// Une los manifiesto de una determinada
        /// </summary>
        /// <param name="c"></param>
        public void UnirPDF(CargaSucursal c)
        {
            Document doc = new Document();

            try
            {
                ManipulacionPDF m     = new ManipulacionPDF();
                string[]        final = new string[c.Manifiesto.Count];
                int             i     = 0;

                foreach (ManifiestoSucursalCarga man in c.Manifiesto)
                {
                    final[i] = @"\\10.120.131.100\Manifiestos\SUC-" + man.ID.ToString() + ".pdf";
                    i++;
                }

                //m.MergePdfFiles(final, @"\\10.120.131.100\ECARD\Final_Validacion\FINALSUCURSAL-" + c.ID + ".pdf");

                string rutafinal = @"\\10.120.131.100\ECARD\Final_Validacion\FINALSUCURSAL-" + c.ID + ".pdf";


                FileStream fs = new FileStream(rutafinal, FileMode.Create, FileAccess.Write, FileShare.None);

                PdfCopy copy = new PdfCopy(doc, fs);
                doc.Open();

                iTextSharp.text.pdf.PdfReader reader = null;
                iTextSharp.text.pdf.PdfReader.unethicalreading = true;


                int n;

                foreach (string file in final)
                {
                    reader = new PdfReader(file);
                    iTextSharp.text.pdf.PdfReader.unethicalreading = true;
                    n = reader.NumberOfPages;

                    int page = 0;

                    while (page < n)
                    {
                        page++;
                        copy.AddPage(copy.GetImportedPage(reader, page));
                    }

                    copy.FreeReader(reader);

                    reader.Close();
                }
            }
            catch (Excepcion ex)
            {
                doc.Close();
            }
            finally
            {
                doc.Close();
            }
        }
Пример #7
0
        public static byte[] merge_files(List <FileInfo> docs)
        {
            Document document = new Document();

            using (MemoryStream ms = new MemoryStream()) {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int document_page_counter = 0;

                foreach (FileInfo fi in docs)
                {
                    PdfReader reader = new PdfReader(fi.FullName);

                    for (int i = 1; i <= reader.NumberOfPages; i++)
                    {
                        document_page_counter++;
                        PdfImportedPage ip = copy.GetImportedPage(reader, i);
#if PAGE_NUMBERS
                        PdfCopy.PageStamp ps = copy.CreatePageStamp(ip);

                        ColumnText.ShowTextAligned(ps.GetOverContent(), Element.ALIGN_CENTER,
                                                   new Phrase(string.Format("{0}", document_page_counter)), (ip.Width / 2), 5, ip.Width < ip.Height ? 0 : 1);
                        ps.AlterContents();
#endif
                        copy.AddPage(ip);
                    }

                    copy.FreeReader(reader);
                    reader.Close();
                }
                document.Close();
                return(ms.GetBuffer());
            }
        }
Пример #8
0
        public static void Merge(List <String> InFiles, String OutFile)
        {
            using (FileStream stream = new FileStream(OutFile, FileMode.Create))
                using (Document doc = new Document())
                    using (PdfCopy pdf = new PdfCopy(doc, stream))
                    {
                        doc.Open();

                        PdfReader       reader = null;
                        PdfImportedPage page   = null;

                        //fixed typo
                        InFiles.ForEach(file =>
                        {
                            reader = new PdfReader(file);

                            for (int i = 0; i < reader.NumberOfPages; i++)
                            {
                                page = pdf.GetImportedPage(reader, i + 1);
                                pdf.AddPage(page);
                            }

                            pdf.FreeReader(reader);
                            reader.Close();
                            File.Delete(file);
                        });
                    }
        }
Пример #9
0
    /// <summary>
    /// Takes an ordered list of files and merges them into one output file.
    /// </summary>
    /// <param name="mergeList">An ordered list of file paths.</param>
    /// <returns>The path to merged file created in this method.</returns>
    private static string MergeOrderedList(List <string> mergeList)
    {
        int    counter         = 0;
        string filename        = Guid.NewGuid() + ".pdf";
        string outfileFullPath = Path.Combine(Constants.inputDirectory.FullName, filename);

        using (var stream = new FileStream(outfileFullPath, FileMode.Create))
            using (var doc = new Document())
                using (var pdf = new PdfCopy(doc, stream))
                {
                    PdfReader       reader = null;
                    PdfImportedPage page   = null;

                    doc.Open();

                    foreach (string file in mergeList)
                    {
                        reader = new PdfReader(file);
                        for (int i = 0; i < reader.NumberOfPages; i++)
                        {
                            page = pdf.GetImportedPage(reader, i + 1);
                            pdf.AddPage(page);
                        }
                        counter++;
                    }

                    pdf.FreeReader(reader);
                    reader.Close();
                }

        return(outfileFullPath);
    }
Пример #10
0
        public static void Merge(List <String> InFiles, String OutFile)
        {
            try
            {
                using (FileStream stream = new FileStream(OutFile, FileMode.Create))
                    using (Document doc = new Document())
                        using (PdfCopy pdf = new PdfCopy(doc, stream))
                        {
                            doc.Open();

                            PdfReader       reader = null;
                            PdfImportedPage page   = null;

                            InFiles.ForEach(file =>
                            {
                                reader = new PdfReader(file);

                                for (int i = 0; i < reader.NumberOfPages; i++)
                                {
                                    page = pdf.GetImportedPage(reader, i + 1);
                                    pdf.AddPage(page);
                                }

                                pdf.FreeReader(reader);
                                reader.Close();
                            });
                        }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #11
0
 public static MemoryStream MergePdfForms(List <byte[]> files)
 {
     if (files.Count > 1)
     {
         PdfReader    pdfFile;
         Document     doc;
         PdfWriter    pCopy;
         MemoryStream msOutput = new MemoryStream();
         pdfFile = new PdfReader(files[0]);
         doc     = new Document();
         pCopy   = new PdfCopy(doc, msOutput);
         doc.Open();
         for (int k = 0; k < files.Count; k++)
         {
             pdfFile = new PdfReader(files[k]);
             for (int i = 1; i < pdfFile.NumberOfPages + 1; i++)
             {
                 ((PdfCopy)pCopy).AddPage(pCopy.GetImportedPage(pdfFile, i));
             }
             pCopy.FreeReader(pdfFile);
         }
         pdfFile.Close();
         pCopy.Close();
         doc.Close();
         return(msOutput);
     }
     else if (files.Count == 1)
     {
         return(new MemoryStream(files[0]));
     }
     return(null);
 }
Пример #12
0
        public static MemoryStream Merge(List <String> InFiles)
        {
            MemoryStream stream = new MemoryStream();

            using (Document doc = new Document())
                using (PdfCopy pdf = new PdfCopy(doc, stream))
                {
                    doc.Open();
                    PdfReader       reader = null;
                    PdfImportedPage page   = null;

                    InFiles.ForEach(file =>
                    {
                        reader = new PdfReader(file);

                        for (int i = 0; i < reader.NumberOfPages; i++)
                        {
                            page = pdf.GetImportedPage(reader, i + 1);
                            pdf.AddPage(page);
                        }
                        pdf.FreeReader(reader);
                        reader.Close();
                    });
                }
            return(stream);
        }
Пример #13
0
        /* private void Button2_Click(object sender, EventArgs e)
         * {
         *   if (/*digital.Rows.Count > 0)
         *   {
         *       int id = int.Parse(/**digital .Rows[*digital .currentRow.Index].Cell[0].Value.ToString());
         *       using (Model.datosUsuario db = new Model.datosUsuario())
         *       {
         *           var oDocument = db.documen.Find(id);
         *           string path = AppDomain.CurrentDomain.BaseDirectory;
         *           string folder = path + "/temp/";
         *           string fullFilePath = folder + oDocument.realName;
         *
         *           if (!Directory.Exists(folder))
         *               Directory.CreateDirectory(folder);
         *
         *           if (File.Exists(fullFilePath))
         *               Directory.Delete(fullFilePath);
         *
         *           File.WriteAllBytes(fullFilePath, oDocument.doc);
         *
         *           Process.Start(fullFilePath);
         *
         *       }
         *
         *   }
         * }
         *
         * private void Button3_Click(object sender, EventArgs e)
         * {
         *   try
         *   {
         *       conexion.Close();
         *       SqlDataAdapter adapter = new SqlDataAdapter("Select Archivo from Scanner where Nombre = '" + Nombre + "'", conexion);
         *       DataSet set = new DataSet();
         *       conecta();
         *       adapter.Fill(set, "Scanner");
         *       byte[] datos = new byte[0];
         *       DataRow row = set.Tables["Scanner"].Rows[0];
         *       datos = (byte[])row["Archivo"];
         *       datos = (byte[])row["Archivo"];
         *       datos = (byte[])row["Archivo"];
         *       datos = (byte[])row["Archivo"];
         *       System.IO.MemoryStream ms = new System.IO.MemoryStream(datos);
         *
         *       PDF.src = openFileDialog.FileName;
         *
         *   }
         *   catch (SqlException)
         *   {
         *       MessageBox.Show("Error Al Cargar La Imagen", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         *   }
         *
         * }
         * public void verdocumentos(string Nombre, AxAcroPDF PDF, OpenFileDialog openFileDialog)
         * {
         *   try
         *   {
         *       string query = "Select Archivo from Scanner where Nombre = @nombre";
         *       SqlCommand cmd = new SqlCommand(query, conexion)
         *
         * cmd.Parameters.AddWithValue("@nombre", Nombre);
         *
         *       SqlDataAdapter da = new SqlDataAdapter(cmd);
         *       DataTable dt = new DataTable();
         *       adapter.Fill(dt);
         *
         *       DataRow row = dt.Rows[0];
         *       byte[] datos = (byte[])row["Archivo"];
         *
         *       File.WriteAllBytes("ruta", datos);
         *       File.WriteAllBytes(fileDialog.FileName, datos);
         *       PDF.src = "ruta";
         *
         *
         *   }
         *   catch (SqlException)
         *   {
         *       MessageBox.Show("Error Al Cargar La Imagen", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         *   }
         * }*/

        private void Button4_Click(object sender, EventArgs e)
        {
            var document = new Document();
            var ms       = new MemoryStream();

            string[] Lista = { "PRUEBA5.pdf", "PRUEBA7.pdf" };

            var pdfCopy = new PdfCopy(document, ms);

            document.Open();

            foreach (var item in Lista)
            {
                var pdfReader = new PdfReader(item);
                var n         = pdfReader.NumberOfPages;
                for (var page = 0; page < n;)
                {
                    pdfCopy.AddPage(pdfCopy.GetImportedPage(pdfReader, ++page));
                }
                pdfCopy.FreeReader(pdfReader);
            }
            pdfCopy.Flush();

            document.Close();
            ms.WriteTo(new FileStream("documentoJutar.pdf", FileMode.OpenOrCreate));
        }
Пример #14
0
        public static MemoryStream MergePdf(List <MemoryStream> inFiles)
        {
            var ms  = new MemoryStream();
            var doc = new Document();
            var pdf = new PdfCopy(doc, ms);

            doc.Open();
            PdfReader       reader;
            PdfImportedPage page;

            inFiles.ForEach(file =>
            {
                reader = new PdfReader(file);

                for (var i = 0; i < reader.NumberOfPages; i++)
                {
                    page = pdf.GetImportedPage(reader, i + 1);
                    pdf.AddPage(page);
                }

                pdf.FreeReader(reader);
            });


            pdf.CloseStream = false;
            doc.Close();
            ms.Position = 0;
            return(ms);
        }
Пример #15
0
        public void CreateNewPdf(string path, string targetFile, List <int> Pages)
        {
            try
            {
                using (FileStream stream = new FileStream(targetFile, FileMode.Create))
                    using (Document doc = new Document())
                        using (PdfCopy pdf = new PdfCopy(doc, stream))
                        {
                            doc.Open();

                            PdfReader       reader = new PdfReader(path);
                            PdfImportedPage page   = null;

                            foreach (int pageNumber in Pages)
                            {
                                page = pdf.GetImportedPage(reader, pageNumber);
                                pdf.AddPage(page);
                            }

                            pdf.FreeReader(reader);
                            reader.Close();
                        }
            }
            catch (Exception ex)
            {
                HandleException(ex, false);
            }
        }
Пример #16
0
        public static string Combine(string[] files, string pdfFileName)
        {
            if (!files.Any())
            {
                return("empty");
            }
            string outputPdfPath = Path.Combine(new DirectoryInfo(files[0]).Parent.Parent.FullName, pdfFileName + ".pdf");

            try
            {
                using (FileStream stream = new FileStream(outputPdfPath, FileMode.Create))
                    using (Document doc = new Document())
                        using (PdfCopy pdf = new PdfCopy(doc, stream))
                        {
                            doc.Open();
                            doc.AddTitle(pdfFileName);

/*
 *                  doc.NewPage();
 *                  doc.Add(new Paragraph(pdfFileName));
 *                  doc.Add(new Paragraph("power by "));
 *                  Anchor anchor = new Anchor("html2pdf");
 *                  anchor.Reference = "https://github.com/xiangwan/html2pdf";
 *                  doc.Add(anchor);*/

                            var             rootOutline = pdf.RootOutline;
                            PdfReader       reader      = null;
                            PdfImportedPage page        = null;
                            PdfContentByte  cb          = pdf.DirectContent;
                            PdfWriter       wrt         = cb.PdfWriter;
                            var             pageIndex   = 1;
                            files.ToList().ForEach(file =>
                            {
                                reader = new PdfReader(file);
                                var n  = reader.NumberOfPages;
                                for (int i = 0; i < n; i++)
                                {
                                    page = pdf.GetImportedPage(reader, i + 1);
                                    pdf.AddPage(page);
                                }

                                var title = new FileInfo(file).Name.Replace(".pdf", "");
                                var oline = new PdfOutline(rootOutline,
                                                           PdfAction.GotoLocalPage(pageIndex, new PdfDestination(pageIndex), wrt), title);
                                rootOutline.AddKid(oline);
                                pageIndex += n;
                                pdf.FreeReader(reader);
                                reader.Close();
                            });
                        }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                return("error." + ex.Message);
            }
            return("ok");
        }
Пример #17
0
        public byte[] Generate(TakeDocModel.Version version, TakeDocModel.Entity entity)
        {
            byte[] data = this.GenerateStarterPdf(version, entity);
            if (data == null)
            {
                return(null);
            }
            PdfReader entetePdf = new PdfReader(data);
            PdfReader imagePdf  = servImage.GetImagePdf(version);

            its.Document document  = new its.Document(iTextSharp.text.PageSize.A4, -70, -70, 0, 0);
            MemoryStream streamOut = new MemoryStream();

            using (PdfCopy copy = new PdfCopy(document, streamOut))
            {
                document.Open();
                for (int p = 1; p <= entetePdf.NumberOfPages; p++)
                {
                    PdfImportedPage page = copy.GetImportedPage(entetePdf, p);
                    copy.AddPage(page);
                }
                copy.FreeReader(entetePdf);
                entetePdf.Close();

                if (imagePdf != null)
                {
                    // add page image to the pdf
                    for (int p = 1; p <= imagePdf.NumberOfPages; p++)
                    {
                        PdfImportedPage page = copy.GetImportedPage(imagePdf, p);
                        copy.AddPage(page);
                    }
                    copy.FreeReader(imagePdf);
                    imagePdf.Close();
                }
            }

            System.IO.FileInfo file = this.GetGenerateFileInfo(entity.EntityReference, version.VersionReference, "pdf");
            System.IO.File.WriteAllBytes(file.FullName, streamOut.ToArray());

            version.VersionPath = file.FullName.Replace(TakeDocModel.Environnement.VersionStoreUNC, string.Empty);
            servVersion.Update(version);
            return(streamOut.ToArray());
        }
Пример #18
0
        public FileStreamResult PrintFormats(int idFormat, string RecordId)
        {
            if (!_tokenManager.GenerateToken())
            {
                return(null);
            }

            _IGeneratePDFApiConsumer.SetAuthHeader(_tokenManager.Token);
            _ISpartan_FormatRelatedApiConsumer.SetAuthHeader(_tokenManager.Token);

            MemoryStream ms = new MemoryStream();

            //Buscar los Formatos Relacionados
            var relacionados = _ISpartan_FormatRelatedApiConsumer.ListaSelAll(0, 5000, "Spartan_Format_Related.FormatId = " + idFormat, "").Resource.Spartan_Format_Relateds.OrderBy(r => r.Order).ToList();

            if (relacionados.Count > 0)
            {
                var outputDocument = new iTextSharp.text.Document();
                var writer         = new PdfCopy(outputDocument, ms);
                outputDocument.Open();
                foreach (var spartan_Format_Related in relacionados)
                {
                    var bytePdf = _IGeneratePDFApiConsumer.GeneratePDF(Convert.ToInt32(spartan_Format_Related.FormatId_Related), RecordId).Resource;
                    var reader  = new PdfReader(bytePdf);
                    for (var j = 1; j <= reader.NumberOfPages; j++)
                    {
                        writer.AddPage(writer.GetImportedPage(reader, j));
                    }
                    writer.FreeReader(reader);
                    reader.Close();
                }
                writer.Close();
                outputDocument.Close();
                var allPagesContent = ms.GetBuffer();
                ms.Flush();
            }
            else
            {
                var bytePdf = _IGeneratePDFApiConsumer.GeneratePDF(idFormat, RecordId);
                ms.Write(bytePdf.Resource, 0, bytePdf.Resource.Length);
            }

            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "attachment;filename=Formatos.pdf");
            Response.Buffer = true;
            Response.Clear();
            Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
            Response.OutputStream.Flush();
            Response.End();

            return(new FileStreamResult(Response.OutputStream, "application/pdf"));
        }
Пример #19
0
        public static byte[] MergeFiles(List <byte[]> sourceFiles)
        {
            Document document = new Document();

            using (MemoryStream ms = new MemoryStream())
            {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int documentPageCounter = 0;

                // Iterate through all pdf documents
                for (int fileCounter = 0; fileCounter < sourceFiles.Count; fileCounter++)
                {
                    // Create pdf reader
                    PdfReader reader        = new PdfReader(sourceFiles[fileCounter]);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterate through all pages
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        PdfImportedPage importedPage = copy.GetImportedPage(reader, currentPageIndex);

                        //***************************************
                        // Uncomment and alter for watermarking.
                        //***************************************
                        //
                        //documentPageCounter++;
                        //PdfCopy.PageStamp pageStamp = copy.CreatePageStamp(importedPage);
                        //
                        //// Write header
                        //ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                        //    new Phrase("PDF Merged with me.AxeyWorks PDFMerge"), importedPage.Width / 2, importedPage.Height - 30,
                        //    importedPage.Width < importedPage.Height ? 0 : 1);
                        //
                        //// Write footer
                        //ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                        //    new Phrase($"Page {documentPageCounter}"), importedPage.Width / 2, 30,
                        //    importedPage.Width < importedPage.Height ? 0 : 1);
                        //
                        //pageStamp.AlterContents();

                        copy.AddPage(importedPage);
                    }

                    copy.FreeReader(reader);
                    reader.Close();
                }

                document.Close();
                return(ms.GetBuffer());
            }
        }
        public string GenerarExpediente(List <string> rutaArchivo, int idPrecliente, string path)
        {
            rutaArchivo = ImagenToPDF(rutaArchivo, idPrecliente, path);
            var carpeta        = path;
            var rutaExpediente = "\\Documentos\\" + idPrecliente.ToString() + "\\Expediente" + ObtenerGuiArchivo() + ".pdf";

            if (!Directory.Exists(carpeta))
            {
                Directory.CreateDirectory(carpeta);
            }

            try
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    using (Document doc = new Document())
                    {
                        PdfCopy pdf = new PdfCopy(doc, stream);
                        pdf.CloseStream = false;
                        doc.Open();

                        PdfReader       reader = null;
                        PdfImportedPage page   = null;

                        foreach (var file in rutaArchivo)
                        {
                            reader = new PdfReader(path + file);
                            for (int i = 0; i < reader.NumberOfPages; i++)
                            {
                                page = pdf.GetImportedPage(reader, i + 1);
                                pdf.AddPage(page);
                            }

                            pdf.FreeReader(reader);
                            reader.Close();
                        }
                    }
                    using (FileStream streamX = new FileStream(carpeta + "" + rutaExpediente, FileMode.Create))
                    {
                        stream.WriteTo(streamX);
                    }
                }

                return(rutaExpediente);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "\n" + ex.StackTrace);
            }
        }
Пример #21
0
        public async Task <byte[]> MergeFiles(List <ClaimFilePage> ClaimFilePages)
        {
            Document document = new Document();

            using (MemoryStream ms = new MemoryStream())
            {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int documentPageCounter = 0;

                // Iterate through all pdf documents
                foreach (var claimPage in ClaimFilePages)
                {
                    // Create pdf reader
                    PdfReader reader        = new PdfReader(claimPage.Page);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterate through all pages
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        documentPageCounter++;
                        PdfImportedPage   importedPage = copy.GetImportedPage(reader, currentPageIndex);
                        PdfCopy.PageStamp pageStamp    = copy.CreatePageStamp(importedPage);

                        // Write header
                        ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                                                   new Phrase(string.Empty), importedPage.Width / 2, importedPage.Height - 30,
                                                   importedPage.Width < importedPage.Height ? 0 : 1);

                        // Write footer
                        if (claimPage.ClaimId > 0)
                        {
                            ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                                                       new Phrase(String.Format($"Reclamo {claimPage.ClaimId}")), importedPage.Width / 2, 15,
                                                       importedPage.Width < importedPage.Height ? 0 : 1);
                        }

                        pageStamp.AlterContents();

                        copy.AddPage(importedPage);
                    }

                    copy.FreeReader(reader);
                    reader.Close();
                }

                document.Close();
                return(ms.GetBuffer());
            }
        }
Пример #22
0
        //public void ConvertDocumentToPDF(byte[] bytes, string pathFileOut,string pathFileOutTemp,List<Archive> ImageRoutes)
        //{

        //    try {

        //        var inputAsString = Convert.ToBase64String(bytes.ToArray(), 0, bytes.ToArray().Length);
        //        File.WriteAllBytes(pathFileOutTemp, Convert.FromBase64String(inputAsString));

        //        //Incrustando Imagenes
        //        IncrustingImage(pathFileOutTemp, ImageRoutes,pathFileOut);
        //        //if (ImageRoutes != null && ImageRoutes.Count > 0)

        //        string textDelete = "Unlicensed version. Please register @ templater.info";

        //        DocumentCore document = DocumentCore.Load(pathFileOutTemp, new DocxLoadOptions());
        //        int countDel = 0;
        //        foreach (ContentRange cr in document.Content.Find(textDelete).Reverse())
        //        {
        //            cr.Delete();
        //            countDel++;
        //        }

        //        if (File.Exists(pathFileOut)) File.Delete(pathFileOut);

        //            if (ImageRoutes.Where(x=>x.typeAdjunte == TypeAdjunte.pdf).Count() > 0)
        //            {
        //                List<byte[]> listByte = new List<byte[]>();

        //                using (MemoryStream PDFGenerate = new MemoryStream())
        //                {
        //                    document.Save(PDFGenerate, SaveOptions.PdfDefault);
        //                    listByte.Add(PDFGenerate.ToArray());
        //                }

        //                foreach (var file in ImageRoutes.Where(x => x.typeAdjunte == TypeAdjunte.pdf))
        //                {
        //                   byte[] PdfBype = null;
        //                    if (File.Exists(file.RutaArchivo))
        //                    {
        //                        PdfBype = System.IO.File.ReadAllBytes(file.RutaArchivo);
        //                        if (PdfBype != null)
        //                        {
        //                            listByte.Add(PdfBype);
        //                        }
        //                    }
        //                }

        //                byte[] PdfFinale = MergeFiles(listByte);
        //                var inputFinale = Convert.ToBase64String(PdfFinale.ToArray(), 0, PdfFinale.ToArray().Length);
        //                File.WriteAllBytes(pathFileOut, Convert.FromBase64String(inputFinale));
        //            }

        //            else
        //            {
        //                document.Save(pathFileOut);
        //            }


        //        File.Delete(pathFileOutTemp);
        //    }
        //    catch(Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        public static byte[] MergeFiles(Dictionary <int, byte[]> sourceFiles)
        {
            iTextSharp.text.Document document = new iTextSharp.text.Document();
            using (MemoryStream ms = new MemoryStream())
            {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int documentPageCounter = 0;

                sourceFiles = sourceFiles.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);


                // Iterate through all pdf documents

                foreach (KeyValuePair <int, byte[]> pair in sourceFiles)
                {
                    // Create pdf reader
                    PdfReader reader        = new PdfReader(pair.Value);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterate through all pages
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        documentPageCounter++;
                        PdfImportedPage   importedPage = copy.GetImportedPage(reader, currentPageIndex);
                        PdfCopy.PageStamp pageStamp    = copy.CreatePageStamp(importedPage);

                        // Write header
                        ColumnText.ShowTextAligned(pageStamp.GetOverContent(), iTextSharp.text.Element.ALIGN_CENTER,
                                                   new Phrase(""), importedPage.Width / 2, importedPage.Height - 30,
                                                   importedPage.Width < importedPage.Height ? 0 : 1);

                        // Write footer
                        ColumnText.ShowTextAligned(pageStamp.GetOverContent(), iTextSharp.text.Element.ALIGN_CENTER,
                                                   new Phrase(String.Format("", documentPageCounter)), importedPage.Width / 2, 30,
                                                   importedPage.Width < importedPage.Height ? 0 : 1);

                        pageStamp.AlterContents();

                        copy.AddPage(importedPage);
                    }

                    copy.FreeReader(reader);
                    reader.Close();
                }

                document.Close();
                return(ms.GetBuffer());
            }
        }
Пример #23
0
        /// <summary>
        /// Merge pdf files.
        /// </summary>
        /// <param name="sourceFiles">PDF files being merged.</param>
        /// <returns></returns>
        public static byte[] MergeFiles(List <byte[]> sourceFiles)
        {
            Document document = new Document();

            using (MemoryStream ms = new MemoryStream())
            {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int documentPageCounter = 0;

                // Iterate through all pdf documents
                for (int fileCounter = 0; fileCounter < sourceFiles.Count; fileCounter++)
                {
                    // Create pdf reader
                    PdfReader reader        = new PdfReader(sourceFiles[fileCounter]);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterate through all pages
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        documentPageCounter++;
                        PdfImportedPage importedPage = copy.GetImportedPage(reader, currentPageIndex);

                        /*
                         * PdfCopy.PageStamp pageStamp = copy.CreatePageStamp(importedPage);
                         *
                         * // Write header
                         * ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                         *  new Phrase("PDF Merger by Helvetic Solutions"), importedPage.Width / 2, importedPage.Height - 30,
                         *  importedPage.Width < importedPage.Height ? 0 : 1);
                         *
                         * // Write footer
                         * ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                         *  new Phrase(String.Format("Page {0}", documentPageCounter)), importedPage.Width / 2, 30,
                         *  importedPage.Width < importedPage.Height ? 0 : 1);
                         *
                         * pageStamp.AlterContents();
                         */
                        copy.AddPage(importedPage);
                    }

                    copy.FreeReader(reader);
                    reader.Close();
                }

                document.Close();
                return(ms.GetBuffer());
            }
        }
Пример #24
0
        /// <summary>
        /// Merge pdf files.
        /// </summary>
        /// <param name="sourceFiles">PDF files being merged.</param>
        /// <returns></returns>
        public static byte[] MergeFiles(List <byte[]> sourceFiles) //utiliza la librería externa para unir el string de bytes y crear una solo arreglo de byte,para conformar el nuevo pdf
        {
            Document document = new Document();

            using (MemoryStream ms = new MemoryStream())
            {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int documentPageCounter = 0;

                // Iterate through all pdf documents
                for (int fileCounter = 0; fileCounter < sourceFiles.Count; fileCounter++)
                {
                    // Create pdf reader
                    PdfReader reader        = new PdfReader(sourceFiles[fileCounter]);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterate through all pages
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        documentPageCounter++;
                        PdfImportedPage   importedPage = copy.GetImportedPage(reader, currentPageIndex);
                        PdfCopy.PageStamp pageStamp    = copy.CreatePageStamp(importedPage);

                        // Write header
                        ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                                                   new Phrase(""), importedPage.Width / 2, importedPage.Height - 30,
                                                   importedPage.Width < importedPage.Height ? 0 : 1);

                        // Write footer
                        ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
                                                   new Phrase(String.Format("", documentPageCounter)), importedPage.Width / 2, 30,
                                                   importedPage.Width < importedPage.Height ? 0 : 1);

                        pageStamp.AlterContents();

                        copy.AddPage(importedPage);
                    }

                    copy.FreeReader(reader);
                    reader.Close();
                }

                document.Close();
                return(ms.GetBuffer());
            }
        }
Пример #25
0
        protected override void Convert(ConversionOptions options)
        {
            if (m_sourceFiles != null)
            {
                if (m_sourceFiles.Count == 1 && !m_forceConversion)
                {
                    this.OutputFile = m_sourceFiles[0];
                }
                else
                {
                    try
                    {
                        using (MemoryStream ms = new MemoryStream())
                        {
                            using (Document doc = new Document(options.Orientation == PageOrientation.Portrait ? PageSize.LETTER : PageSize.LETTER_LANDSCAPE))
                            {
                                PdfCopy   copy = new PdfCopy(doc, ms);
                                PdfReader reader;
                                doc.Open();
                                int n;
                                foreach (byte[] file in m_sourceFiles)
                                {
                                    if (file != null)
                                    {
                                        reader = new PdfReader(file);
                                        n      = reader.NumberOfPages;
                                        for (int page = 1; page <= n; page++)
                                        {
                                            copy.AddPage(copy.GetImportedPage(reader, page));
                                        }
                                        copy.FreeReader(reader);
                                    }
                                }
                            }

                            this.OutputFile = ms.ToArray();
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new ConversionEngineException("Error when merging Pdf files.", null, "pdf", this, ex);
                    }
                }
            }
        }
Пример #26
0
        public static void Merge(string file, string OutFile, ref SetupStationaryFields.addresscollection aic)
        {
            using (FileStream stream = new FileStream(OutFile, FileMode.Create))
            {
                using (Document doc = new Document())
                {
                    using (PdfCopy pdf = new PdfCopy(doc, stream))
                    {
                        doc.Open();

                        PdfReader       reader = null;
                        PdfImportedPage page   = null;

                        //fixed typo
                        int ii    = 0;
                        int count = 0;

                        foreach (SetupStationaryFields.addressitem ai in aic)
                        {
                            if ((!ai.ommitted))
                            {
                                reader = new PdfReader(file);
                                PdfReader.unethicalreading = true;
                                count = reader.NumberOfPages;
                                for (int i = 0; i <= reader.NumberOfPages - 1; i++)
                                {
                                    page = pdf.GetImportedPage(reader, i + 1);
                                    pdf.AddPage(page);
                                }

                                pdf.FreeReader(reader);
                                reader.Close();



                                ai.startpage = ((ii) * count) + 1;
                                ai.endpage   = (ii * count) + count;
                                ii           = ii + 1;
                            }
                        }
                    }
                }
                stream.Close();
            }
        }
Пример #27
0
        // <summary>
        // This method combines pdf forms with xml data
        // </summary>
        // <param name="m_FormName">pdf form file path</param>
        // <param name="oData">xml dataset</param>
        // <returns>memory stream containing the pdf data</returns>
        private MemoryStream GeneratePDF(string m_FormName, XmlDocument oData)
        {
            PdfReader    pdfTemplate;
            PdfStamper   stamper;
            PdfReader    tempPDF;
            Document     doc;
            MemoryStream msTemp;
            PdfWriter    pCopy;
            MemoryStream msOutput = new MemoryStream();

            pdfTemplate = new PdfReader(m_FormName);

            doc   = new Document();
            pCopy = new PdfCopy(doc, msOutput);

            pCopy.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, new PdfBoolean(true));
            pCopy.AddViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);

            doc.Open();

            for (int i = 1; i < pdfTemplate.NumberOfPages + 1; i++)
            {
                msTemp      = new MemoryStream();
                pdfTemplate = new PdfReader(m_FormName);

                stamper = new PdfStamper(pdfTemplate, msTemp);

                // map xml values to pdf form controls (element name = control name)
                foreach (XmlElement oElem in oData.SelectNodes("/Users/User"))
                {
                    stamper.AcroFields.SetField(oElem.Name, oElem.InnerText);
                }

                stamper.FormFlattening = true;
                stamper.Close();
                tempPDF = new PdfReader(msTemp.ToArray());
                ((PdfCopy)pCopy).AddPage(pCopy.GetImportedPage(tempPDF, i));
                pCopy.FreeReader(tempPDF);
            }

            doc.Close();

            return(msOutput);
        }
Пример #28
0
        public byte[] PDF_Merger(List <string> li, string PrintedName)
        {
            List <byte[]> sourceFiles = FileReadIn(li);
            Document      document    = new Document();

            using (MemoryStream ms = new MemoryStream())
            {
                PdfCopy copy = new PdfCopy(document, ms);
                document.Open();
                int documentPageCounter = 0;

                // Iterate through all pdf documents
                for (int fileCounter = 0; fileCounter < sourceFiles.Count; fileCounter++)
                {
                    // Create pdf reader
                    PdfReader reader        = new PdfReader(sourceFiles[fileCounter]);
                    int       numberOfPages = reader.NumberOfPages;

                    // Iterate through all pages
                    for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
                    {
                        documentPageCounter++;
                        PdfImportedPage   importedPage = copy.GetImportedPage(reader, currentPageIndex);
                        PdfCopy.PageStamp pageStamp    = copy.CreatePageStamp(importedPage);
                        pageStamp.AlterContents();
                        copy.AddPage(importedPage);
                    }
                    copy.FreeReader(reader);
                    reader.Close();
                }

                document.Close();
                if (PrintedName == "")
                {
                    PrintedName = "PM Merger Document ";
                }
                DateTime thisDay = DateTime.Today;
                System.IO.Directory.CreateDirectory(FolderUrl + "\\Merged Documents");
                System.IO.File.WriteAllBytes(FolderUrl + "\\Merged Documents\\" + PrintedName + " ( " + thisDay.ToString("yyyy. MM. dd.") + " ).pdf", ms.GetBuffer());
                Process.Start(FolderUrl + "\\Merged Documents");

                return(ms.GetBuffer());
            }
        }
Пример #29
0
        public string ProductQuoteToSmallPdf(ProductQuote productQuote, string productQuoteSmallPdfTemplate)
        {
            string fileTemplate   = Path.Combine(CommonHelper.MapPath("~/Documents/Templates"), productQuoteSmallPdfTemplate);
            string fileNameExport = string.Format("{0}_{1}_{2}.pdf", productQuote.ProductQuoteCode, "Rev08", Guid.NewGuid().ToString().Substring(0, 8));
            string fileExport     = Path.Combine(CommonHelper.MapPath("~/Documents/Export"), fileNameExport);


            PdfReader  reader = new PdfReader(fileTemplate);
            FileStream fs     = new FileStream(fileExport, FileMode.Create, FileAccess.Write);

            iTextSharp.text.Rectangle size = reader.GetPageSizeWithRotation(1);
            Document document = new Document(size);

            PdfCopy copy = new PdfCopy(document, fs);

            document.Open();

            PdfImportedPage page = null;

            for (int i = 1; i <= reader.NumberOfPages; i++)
            {
                page = copy.GetImportedPage(reader, i);

                //En la primer pagina ponemos los datos
                if (i == 1)
                {
                    PdfCopy.PageStamp pageStamp = copy.CreatePageStamp(page);
                    StampDataIntoSmallPdf(pageStamp, productQuote);
                    pageStamp.AlterContents();
                }

                PdfCopy.PageStamp pageStampFooter = copy.CreatePageStamp(page);
                StampFooterDataIntoPdf(pageStampFooter, productQuote.ProductQuoteSmallPDFFooter);
                pageStampFooter.AlterContents();

                copy.AddPage(page);
            }

            copy.FreeReader(reader);
            document.Close();
            reader.Close();

            return(fileNameExport);
        }
Пример #30
0
        // ---------------------------------------------------------------------------
        public void Write(Stream stream)
        {
            MovieLinks1   ml  = new MovieLinks1();
            MovieHistory  mh  = new MovieHistory();
            List <byte[]> pdf = new List <byte[]>()
            {
                Utility.PdfBytes(ml),
                Utility.PdfBytes(mh)
            };

            string[] names = { ml.ToString(), mh.ToString() };
            using (ZipFile zip = new ZipFile())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    // step 1
                    using (Document document = new Document())
                    {
                        // step 2
                        using (PdfCopy copy = new PdfCopy(document, ms))
                        {
                            // step 3
                            document.Open();
                            // step 4
                            for (int i = 0; i < pdf.Count; ++i)
                            {
                                zip.AddEntry(Utility.ResultFileName(names[i] + ".pdf"), pdf[i]);
                                PdfReader reader = new PdfReader(pdf[i]);
                                // loop over the pages in that document
                                int n = reader.NumberOfPages;
                                for (int page = 0; page < n;)
                                {
                                    copy.AddPage(copy.GetImportedPage(reader, ++page));
                                }
                                copy.FreeReader(reader);
                                reader.Close();
                            }
                        }
                    }
                    zip.AddEntry(RESULT, ms.ToArray());
                }
                zip.Save(stream);
            }
        }