Ejemplo n.º 1
0
        public virtual void CopyFields1Test()
        {
            Document pdfDocument = new Document();

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

            copier.SetMergeFields();

            pdfDocument.Open();

            PdfReader readerMain         = new PdfReader(RESOURCES + "fieldsOn3-sPage.pdf");
            PdfReader secondSourceReader = new PdfReader(RESOURCES + "fieldsOn2-sPage.pdf");
            PdfReader thirdReader        = new PdfReader(RESOURCES + "appearances1.pdf");

            copier.AddDocument(readerMain);
            copier.CopyDocumentFields(secondSourceReader);
            copier.AddDocument(thirdReader);

            copier.Close();
            readerMain.Close();
            secondSourceReader.Close();
            thirdReader.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent("PdfCopyTest/copyFields.pdf", RESOURCES + "cmp_copyFields.pdf", "PdfCopyTest/", "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Ejemplo n.º 2
0
    public static void CombineMultiplePDFs(string[] fileNames, string outFile)
    {
        // step 1: creation of a document-object
        Document document = new Document();

        // step 2: we create a writer that listens to the document
        PdfCopy writer = new PdfCopy(document, new FileStream(outFile, FileMode.Create));

        if (writer == null)
        {
            return;
        }

        // step 3: we open the document
        document.Open();

        foreach (string fileName in fileNames)
        {
            // we create a reader for a certain document
            PdfReader reader = new PdfReader(fileName);
            reader.ConsolidateNamedDestinations();

            // step 4: we add content
            for (int i = 1; i <= reader.NumberOfPages; i++)
            {
                PdfImportedPage page = writer.GetImportedPage(reader, i);
                writer.AddPage(page);
            }

            PRAcroForm form = reader.AcroForm;
            if (form != null)
            {
                writer.CopyDocumentFields(reader);
            }

            reader.Close();
        }

        // step 5: we close the document and writer
        writer.Close();
        document.Close();
    }
Ejemplo n.º 3
0
        public static string CombineMultiplePDFs(List <Documentos> fileNames, string outFile, string NombreCarpeta, string NombreArchivo)
        {
            try
            {
                Document document = new Document();
                PdfCopy  writer   = new PdfCopy(document, new FileStream(outFile, FileMode.Create));
                if (writer == null)
                {
                    return(string.Empty);
                }
                document.Open();
                foreach (Documentos documentt in fileNames)
                {
                    var ext = Path.GetExtension(documentt.Url);

                    switch (ext.ToLower())
                    {
                    case ".pdf":
                        PdfReader reader = new PdfReader(documentt.Url);
                        reader.ConsolidateNamedDestinations();

                        // step 4: we add content
                        for (int i = 1; i <= reader.NumberOfPages; i++)
                        {
                            PdfImportedPage page = writer.GetImportedPage(reader, i);
                            writer.AddPage(page);
                        }

                        PRAcroForm form = reader.AcroForm;
                        if (form != null)
                        {
                            writer.CopyDocumentFields(reader);
                        }

                        reader.Close();
                        break;

                    case ".png":
                    case ".jpeg":
                    case ".jpg":
                    case ".gif":
                        Document  doc         = new Document();
                        string    pdfFilePath = AppDomain.CurrentDomain.BaseDirectory + "Log\\Temp\\temp" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
                        PdfWriter writers     = PdfWriter.GetInstance(doc, new FileStream(pdfFilePath, FileMode.Create));

                        doc.Open();
                        string imageURL = documentt.Url;
                        iTextSharp.text.Image jpg;
                        try
                        {
                            jpg = iTextSharp.text.Image.GetInstance(imageURL);
                        }
                        catch (Exception)
                        {
                            continue;
                        }

                        jpg.ScalePercent(24f);
                        jpg.Alignment = Element.ALIGN_CENTER;

                        doc.Add(jpg);
                        doc.Close();

                        PdfReader readeri = new PdfReader(pdfFilePath);
                        readeri.ConsolidateNamedDestinations();

                        // step 4: we add content
                        for (int i = 1; i <= readeri.NumberOfPages; i++)
                        {
                            PdfImportedPage page = writer.GetImportedPage(readeri, i);
                            writer.AddPage(page);
                        }

                        PRAcroForm formi = readeri.AcroForm;
                        if (formi != null)
                        {
                            writer.CopyDocumentFields(readeri);
                        }

                        readeri.Close();
                        break;

                    default:
                        break;
                    }
                }
                writer.Close();
                document.Close();

                var Archivo = System.IO.File.OpenRead(outFile);


                NombreArchivo = "E-" + NombreArchivo + "-" + String.Format("{0:s}", DateTime.Now);
                NombreCarpeta = "c-" + NombreCarpeta;
                string              NombreArchivoReal = Archivo.Name;
                string[]            ArrayExtension    = NombreArchivoReal.Split('.');
                string              Extension         = ArrayExtension[ArrayExtension.Length - 1];
                CloudStorageAccount storageAccount    = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
                CloudBlobClient     blobClient        = storageAccount.CreateCloudBlobClient();
                CloudBlobContainer  container         = blobClient.GetContainerReference(NombreCarpeta);
                container.CreateIfNotExists();
                container.SetPermissions(
                    new BlobContainerPermissions {
                    PublicAccess = BlobContainerPublicAccessType.Blob
                });
                CloudBlockBlob blockBlob = container.GetBlockBlobReference(NombreArchivo + "." + Extension);
                blockBlob.DeleteIfExists();
                blockBlob.UploadFromStream(Archivo);
                Archivo.Close();
                DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "Log\\Temp");
                foreach (FileInfo file in di.GetFiles())
                {
                    file.Delete();
                }
                return(blockBlob.SnapshotQualifiedUri.AbsoluteUri);
            }
            catch (Exception ex)
            {
                throw;
            }
        }