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); } }
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(); }
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; } }