public bool MergePDFs(string dirName, FileInfo submission) { bool merged = true; var outDir = new DirectoryInfo(Path.Combine(ResultPath, dirName)); if (outDir.Exists == false) { outDir.Create(); } var outFile = Path.Combine(ResultPath, dirName, submission.Name); PdfDocument pdf = new PdfDocument(new PdfWriter(outFile)); PdfMerger merger = new PdfMerger(pdf); //Add pages from the first document PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(submission)); merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages()); //Add pages from the second pdf document PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(RubricPath)); merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages()); firstSourcePdf.Close(); secondSourcePdf.Close(); pdf.Close(); return(merged); }
static void skleitb2f(string table_name) { //склеить 2 файла string table_ = table_name; table_ = table_.Replace("AP_TC", ""); WebClient client = new WebClient(); string url = "http://ecad.giulianovars.ru/autoprice/pdf_visual.php?command=1&table=" + table_; var response = client.DownloadData(url); File.WriteAllBytes("header.pdf", response); FileInfo file = new FileInfo(table_name + ".pdf"); PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file)); PdfMerger merger = new PdfMerger(pdfDoc); FileInfo header = new FileInfo("header.pdf"); PdfDocument header_doc = new PdfDocument(new PdfReader(header)); FileInfo body = new FileInfo("body.pdf"); PdfDocument body_doc = new PdfDocument(new PdfReader(body)); merger.Merge(header_doc, 1, header_doc.GetNumberOfPages()); merger.Merge(body_doc, 1, body_doc.GetNumberOfPages()); header_doc.Close(); body_doc.Close(); pdfDoc.Close(); // GC.Collect(); }
public virtual void CreatePdf(String dest) { //Initialize PDFA document with output intent PdfADocument pdf = new PdfADocument(new PdfWriter(dest), PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent ("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(INTENT, FileMode.Open, FileAccess.Read ))); //Setting some required parameters pdf.SetTagged(); pdf.GetCatalog().SetLang(new PdfString("en-US")); pdf.GetCatalog().SetViewerPreferences(new PdfViewerPreferences().SetDisplayDocTitle(true)); PdfDocumentInfo info = pdf.GetDocumentInfo(); info.SetTitle("iText7 PDF/A-1a example"); //Create PdfMerger instance PdfMerger merger = new PdfMerger(pdf); //Add pages from the first document PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1)); merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages()); //Add pages from the second pdf document PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2)); merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages()); //Close the documents firstSourcePdf.Close(); secondSourcePdf.Close(); pdf.Close(); }
/// <summary> /// Generates the merged documents /// </summary> public void CreateMergedDocument() { // Guard clauses if (m_Document == null) { throw new System.Exception("Exception 1: Single Merge Document was null"); } if (string.IsNullOrEmpty(m_Document.OutputPath)) { throw new System.Exception("Exception 2: Output path was null or empty"); } if (string.IsNullOrEmpty(m_Document.PDF1Path)) { throw new System.Exception("Exception 3: Document 1 input path was null or empty"); } if (string.IsNullOrEmpty(m_Document.PDF2Path)) { throw new System.Exception("Exception 4: Document 2 input path was null or empty"); } if (!System.IO.File.Exists(m_Document.PDF1Path)) { throw new System.Exception("Exception 5: Input file number 1 does not exist at the location provided"); } if (!System.IO.File.Exists(m_Document.PDF2Path)) { throw new System.Exception("Exception 6: Input file number 2 does not exist at the location provided"); } // Create initial document that will contain all of the merged documents PdfDocument document = new PdfDocument(new PdfWriter(m_Document.OutputPath)); // Create merger that will perform the document merging PdfMerger merger = new PdfMerger(document); // Source document 1 PdfDocument document1 = new PdfDocument(new PdfReader(m_Document.PDF1Path)); // Source document 2 PdfDocument document2 = new PdfDocument(new PdfReader(m_Document.PDF2Path)); // Perform merge from document 1 merger.Merge(document1, 1, document1.GetNumberOfPages()); // Perform merge from document 2 merger.Merge(document2, 1, document2.GetNumberOfPages()); // Close the documents document1.Close(); document2.Close(); document.Close(); }
/// <summary> /// Append source files to the end of original file. /// </summary> /// <param name="sourceFiles">The list of source files</param> /// <param name="originalFile">Original file to append source files to the end of it</param> public void Append(string[] sourceFiles, string originalFile) { PdfDocument pdfOriginal = null; PdfDocument pdfTemp = null; PdfMerger pdfMerger = null; try { pdfOriginal = new PdfDocument(new PdfReader(originalFile)); // Step 1: Temporary file to prevent rewrite on the original file. // Destination file will be changed with the original in the last step. // In case if the destination file in an existing file pdfTemp = new PdfDocument(new PdfWriter(originalFile + "temp")); pdfMerger = new PdfMerger(pdfTemp); // Step 2: First add the original file content. pdfMerger.Merge(pdfOriginal, 1, pdfOriginal.GetNumberOfPages()); // Step 3: Then add the other source file content for (var i = 0; i < sourceFiles.Length; i++) { using (var sourceFile = new PdfDocument(new PdfReader(sourceFiles[i]))) { pdfMerger.Merge(sourceFile, 1, sourceFile.GetNumberOfPages()); // Update merge job progress. OnUpdateProgress?.Invoke(i); } } pdfTemp.Close(); pdfOriginal.Close(); pdfMerger.Close(); // Step 4: Replace the original file with the temp one. File.Delete(originalFile); File.Move(originalFile + "temp", originalFile); } catch (Exception e) { if (pdfTemp != null && !pdfTemp.IsClosed()) { pdfTemp.Close(); pdfOriginal.Close(); pdfMerger?.Close(); } File.Delete(originalFile + "temp"); throw new Exception(e.Message); } }
public static void MergePdf(string pdfSrc1, string pdfSrc2, string pdfDest) { PdfWriter writer = new PdfWriter(pdfDest); PdfDocument pdfDoc = new PdfDocument(writer); PdfMerger merger = new PdfMerger(pdfDoc); PdfDocument pdfDocSrc = new PdfDocument(new PdfReader(pdfSrc1)); merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages()); pdfDocSrc.Close(); pdfDocSrc = new PdfDocument(new PdfReader(pdfSrc2)); merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages()); pdfDocSrc.Close(); merger.Close(); }
public static void InsertPageFromPdf(string PdfSourcePath, string PdfDesPath, System.Collections.Generic.List <int> ListPage, int offset) { //PDF Merger string path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "Merged" + number++ + ".pdf"); PdfDocument pdfMergered = new PdfDocument(new PdfWriter(path)); PdfMerger pdfMerger = new PdfMerger(pdfMergered); //Source and Des PdfDocument source = new PdfDocument(new PdfReader(PdfSourcePath)); PdfDocument des = new PdfDocument(new PdfReader(PdfDesPath)); //Check offset if (offset == 0) { for (int i = 0; i < ListPage.Count; i++) { pdfMerger.Merge(source, ListPage[i] + 1, ListPage[i] + 1); } if (offset + 1 <= des.GetNumberOfPages()) { pdfMerger.Merge(des, offset + 2, des.GetNumberOfPages()); } source.Close(); des.Close(); pdfMergered.Close(); return; } pdfMerger.Merge(des, 1, offset); for (int i = 0; i < ListPage.Count; i++) { pdfMerger.Merge(source, ListPage[i] + 1, ListPage[i] + 1); } if (offset + 1 <= des.GetNumberOfPages()) { pdfMerger.Merge(des, offset + 2, des.GetNumberOfPages()); } source.Close(); des.Close(); pdfMergered.Close(); }
public void ConvertToSinglePDFPages(int level) { const String FONT = @"C:\Windows\Fonts\STKAITI.TTF"; PdfFont fontKaiti = PdfFontFactory.CreateFont(FONT, PdfEncodings.IDENTITY_H, PdfFontFactory.EmbeddingStrategy.FORCE_EMBEDDED, true); PdfReader reader = new PdfReader(@"D:\\HSKBooklet\Final Print Level " + Level.ToString() + ".pdf"); PdfDocument pdfSource = new PdfDocument(reader); Document document = new Document(pdfSource, PageSize.A4); for (int x = 1; x < pdfSource.GetNumberOfPages() + 1; x++) { PdfWriter writter = new PdfWriter(@"D:\\HSKBooklet\Pages\" + Level.ToString() + @"\Final_HSK_" + Level.ToString() + "_" + this.NumeroCuadrado(x, 3) + ".pdf"); PdfDocument pdfwritter = new PdfDocument(writter); PdfMerger merger = new PdfMerger(pdfwritter); PdfPage page = pdfSource.GetPage(x); Document pdfDestination = new Document(pdfwritter, PageSize.A4); merger.Merge(pdfSource, x, x); pdfwritter.Close(); } }
public static void SlicePDF(string outputFile, string inputFile, int[] pageStart, int[] pageEnd) { PdfDocument src = new PdfDocument(new PdfReader(inputFile)); PdfWriter writer = new PdfWriter(new FileStream(outputFile, FileMode.Create)); PdfDocument pdfDocument = new PdfDocument(writer); pdfDocument.SetTagged(); PdfMerger merger = new PdfMerger(pdfDocument); int n = Math.Min(pageStart.Length, pageEnd.Length); for (int i = 0; i < n; i++) { if (pageStart[i] < 0 || pageEnd[i] < 0) { continue; } int lastPage = pageEnd[i]; if (lastPage > src.GetNumberOfPages()) { lastPage = src.GetNumberOfPages(); } merger.Merge(src, pageStart[i], lastPage); } src.Close(); pdfDocument.Close(); }
public void AddAttached(int no, string type, string url) { document.Add(new AreaBreak(AreaBreakType.LAST_PAGE)); document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE)); Paragraph pz = new Paragraph("ANEXO " + no) .Add(new Text("\n")) .Add(new Text(type) .AddStyle(poppinsStyle) .SetFontSize(27)) .AddStyle(poppinsboldStyle) .SetFontSize(40) .SetFixedLeading(40) .SetTextAlignment(TextAlignment.CENTER); new Canvas(new PdfCanvas(pdf.GetLastPage()), new Rectangle(160, 230, 300, 200)) .Add(pz); PdfDocument pdfDocument = new PdfDocument(new PdfReader(url)); PdfMerger merger = new PdfMerger(pdf); merger.Merge(pdfDocument, 1, pdfDocument.GetNumberOfPages()); pdfDocument.Close(); }
public static byte[] Combine(IEnumerable <byte[]> pdfs) { using (var writerMemoryStream = new MemoryStream()) { using (var writer = new PdfWriter(writerMemoryStream)) { using (var mergedDocument = new iText.Kernel.Pdf.PdfDocument(writer)) { var merger = new PdfMerger(mergedDocument); foreach (var pdfBytes in pdfs) { using (var copyFromMemoryStream = new MemoryStream(pdfBytes)) { using (var reader = new iText.Kernel.Pdf.PdfReader(copyFromMemoryStream)) { //have to set unethical reading to true else will get password error reader.SetUnethicalReading(true); using (var copyFromDocument = new iText.Kernel.Pdf.PdfDocument(reader)) { //second parameter 1 is page number from where to start merge merger.Merge(copyFromDocument, 1, copyFromDocument.GetNumberOfPages()); } } } } } } return(writerMemoryStream.ToArray()); } }
public virtual void CreatePdf(String dest) { //Initialize PDF document with output intent PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfMerger merger = new PdfMerger(pdf); //Add pages from the first document PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1)); merger.Merge(firstSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 5, 7, 1)); //Add pages from the second pdf document PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2)); merger.Merge(secondSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 15)); firstSourcePdf.Close(); secondSourcePdf.Close(); pdf.Close(); }
public virtual void CreatePdf(String dest) { //Initialize PDF document with output intent PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfMerger merger = new PdfMerger(pdf); //Add pages from the first document PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1)); merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages()); //Add pages from the second pdf document PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2)); merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages()); firstSourcePdf.Close(); secondSourcePdf.Close(); pdf.Close(); }
public static void OscarCombine(string dest) { //Initialize PDF document with output intent PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfMerger merger = new PdfMerger(pdf); //Add pages from the first document PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_reminder_list.pdf")); merger.Merge(firstSourcePdf, 1, firstSourcePdf.GetNumberOfPages()); //Add pages from the second pdf document PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_noms_announcement.pdf")); merger.Merge(secondSourcePdf, 1, secondSourcePdf.GetNumberOfPages()); firstSourcePdf.Close(); secondSourcePdf.Close(); pdf.Close(); }
public static void OscarCombineXofY(string dest) { //Initialize PDF document with output intent PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfMerger merger = new PdfMerger(pdf); //Add pages from the first document PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_reminder_list.pdf")); merger.Merge(firstSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 5, 7, 1)); //Add pages from the second pdf document PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(@"data/Chapter6/88th_noms_announcement.pdf")); merger.Merge(secondSourcePdf, iText.IO.Util.JavaUtil.ArraysAsList(1, 15)); firstSourcePdf.Close(); secondSourcePdf.Close(); pdf.Close(); }
public void CanMerge2SimpleDocumentsReversed() { var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf"); var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); var result = PdfMerger.Merge(one, two); CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "I am a simple pdf.", "Write something inInkscape"); }
public void DeletePagesOnPdf(PdfDocument pdfOriginal, string destPath, IList <int> pages) { PdfDocument pdf = new PdfDocument(new PdfWriter(destPath)); PdfMerger merger = new PdfMerger(pdf); merger.Merge(pdfOriginal, pages).Close(); pdf.Close(); pdfOriginal.Close(); merger.Close(); }
protected void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); PdfDocument cover = new PdfDocument(new PdfReader(COVER)); PdfDocument resource = new PdfDocument(new PdfReader(RESOURCE)); PdfMerger merger = new PdfMerger(pdfDoc); merger.Merge(cover, 1, 1); merger.Merge(resource, 1, resource.GetNumberOfPages()); // Source documents can be closed implicitly after merging, // by passing true to the setCloseSourceDocuments(boolean) method cover.Close(); resource.Close(); // The resultant pdf doc will be closed implicitly. merger.Close(); }
private static void MergePdfsWithBookmarks(List <string> InFiles, string OutFile) { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(OutFile)); pdfDoc.InitializeOutlines(); PdfMerger merger = new PdfMerger(pdfDoc, true, true); List <PdfOutline> listItem = new List <PdfOutline>(); InFiles.ForEach(srcFile => { PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(srcFile)); int pageCount = firstSourcePdf.GetNumberOfPages(); merger.Merge(firstSourcePdf, 1, pageCount); firstSourcePdf.GetOutlines(false).GetDestination(); firstSourcePdf.Close(); if (pageCount % 2 == 1) { pdfDoc.AddNewPage(iTextPageSize.A4); } }); PdfOutline rootOutline = pdfDoc.GetOutlines(false); listItem.AddRange(rootOutline.GetAllChildren()); rootOutline.GetAllChildren().Clear(); string parentTitle = Path.GetFileNameWithoutExtension(OutFile); PdfOutline parent = rootOutline.AddOutline(parentTitle); foreach (var item in listItem) { parent.AddOutline(item); } PdfExplicitDestination destToPage3 = PdfExplicitDestination.CreateFit(pdfDoc.GetFirstPage()); string stringDest = Guid.NewGuid().ToString(); pdfDoc.AddNamedDestination(stringDest, destToPage3.GetPdfObject()); parent.AddAction(PdfAction.CreateGoTo(new PdfStringDestination(stringDest))); if (pdfDoc.GetNumberOfPages() % 2 == 1) { pdfDoc.AddNewPage(iTextPageSize.A4); } pdfDoc.Close(); }
/***********************************************/ // FUNCTION: string splitRange() // DESCRIPTION: This function will split the pdf document between the page number indicated by "low" and "high" /***********************************************/ public string splitRange(int low, int high) { // SaveFiledialog helps with opening a "Save As" window and asking the user for a location and a file name SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "PDF (*.pdf)| *.pdf"; saveFileDialog1.FilterIndex = 2; saveFileDialog1.RestoreDirectory = true; saveFileDialog1.ShowDialog(); // user selected location is now stored in saveFileDialog1.Filename if (saveFileDialog1.FileName != "") { FileInfo file = new FileInfo(saveFileDialog1.FileName); file.Directory.Create(); PdfDocument firstPdf = new PdfDocument(new PdfReader(fileToSplit)); PdfDocument pdf = new PdfDocument(new PdfWriter(saveFileDialog1.FileName)); PdfMerger merger = new PdfMerger(pdf); // These statement checks to see if the user entered the page number in a invalid order if (high > firstPdf.GetNumberOfPages() && low <= 0) { firstPdf.Close(); return("3"); } else if (low <= 0) { firstPdf.Close(); return("1"); } else if (high > firstPdf.GetNumberOfPages()) { firstPdf.Close(); return("2"); } else if (low > high) { firstPdf.Close(); return("4"); } // this is where the actual page splitting happens merger.Merge(firstPdf, low, high); pdf.Close(); firstPdf.Close(); return("0"); } return("0"); }
public static void MergePDFs(string outputPath, string[] inputPath) { bool newMode = true; if (newMode) { List <PdfDocument> documentList = new List <PdfDocument>(); foreach (string inputFile in inputPath) { documentList.Add(new PdfDocument(new PdfReader(inputFile))); } PdfWriter writer = new PdfWriter(new FileStream(outputPath, FileMode.Create)); PdfDocument pdfDocument = new PdfDocument(writer); pdfDocument.SetTagged(); PdfMerger merger = new PdfMerger(pdfDocument); foreach (PdfDocument doc in documentList) { merger.Merge(doc, 1, doc.GetNumberOfPages()); //doc.CopyPagesTo(1, doc.GetNumberOfPages(), pdfDocument); doc.Close(); } pdfDocument.Close(); } else { List <PdfDocument> documentList = new List <PdfDocument>(); foreach (string inputFile in inputPath) { documentList.Add(new PdfDocument(new PdfReader(inputFile))); } PdfWriter writer = new PdfWriter(new FileStream(outputPath, FileMode.Create)); PdfDocument pdfDocument = new PdfDocument(writer); pdfDocument.SetTagged(); PdfMerger merger = new PdfMerger(pdfDocument); foreach (PdfDocument doc in documentList) { merger.Merge(doc, 1, doc.GetNumberOfPages()); doc.Close(); } pdfDocument.Close(); } }
public static string getMergePdfwithSig(string pathPdf) { string StartupPath = Path.GetDirectoryName(pathPdf); string FileName = Path.GetFileNameWithoutExtension(pathPdf); string FileExt = Path.GetExtension(pathPdf); // string pathPdf = StartupPath + @"\dogovor_magomed.pdf"; string filePdfNew = ""; try { string fileName = StartupPath + @"\" + FileName + "_withSign" + FileExt; using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None)) { filePdfNew = StartupPath + @"\" + FileName + "_withSign" + FileExt; } } catch (IOException ioex) { filePdfNew = StartupPath + @"\" + FileName + "_withSign" + DateTime.Now.Millisecond + FileExt; } string tmpPdfSig = StartupPath + @"\sigToPdf.pdf"; clSignature sig = new clSignature(); string htmlSig = sig.getHtmlSig(pathPdf); // using (FileStream htmlSource = File.Open(StartupPath + @"\USTUPKA.html", FileMode.Open)) using (FileStream htmlSource = File.Open(htmlSig, FileMode.Open)) using (FileStream pdfDest = File.Open(tmpPdfSig, FileMode.OpenOrCreate)) { ConverterProperties converterProperties = new ConverterProperties(); converterProperties.SetCharset("windows-1251"); HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties); } PdfDocument pdfDocument = new PdfDocument(new PdfReader(pathPdf), new PdfWriter(filePdfNew)); PdfDocument pdfDocument2 = new PdfDocument(new PdfReader(tmpPdfSig)); PdfMerger merger = new PdfMerger(pdfDocument); merger.Merge(pdfDocument2, 1, pdfDocument2.GetNumberOfPages()); pdfDocument2.Close(); pdfDocument.Close(); return(filePdfNew); }
public IActionResult GetAllCharactersByIds() { var characters = _lfContext.tblCharacter.ToList(); foreach (var character in characters) { const string src = @"Assets\InputPdfs\EmptyPassport.pdf"; var des = $@"Assets\OutputPdfs\FilledPassport{character.Id}.pdf"; var oldFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), src); var newFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), des); _pdfService.CreateCharacterSheetById(character.Id, oldFile, newFile); } var folderPath = @"Assets\OutputPdfs"; var path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), folderPath); var combinedPathx = @"Assets\CombinedPdfs\Combined.pdf"; var combinedPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), combinedPathx); var d = new DirectoryInfo(path); var pdf = new PdfDocument(new PdfWriter(combinedPath)); var merger = new PdfMerger(pdf); var pages = 2; foreach (var file in d.GetFiles("*.pdf")) { var firstSourcePdf = new PdfDocument(new PdfReader(file.FullName)); var subPages = firstSourcePdf.GetNumberOfPages(); merger.Merge(firstSourcePdf, 1, subPages); firstSourcePdf.Close(); pages += subPages; } pdf.Close(); //converting Pdf file into bytes array /* * var dataBytes = System.IO.File.ReadAllBytes(oldFile); * var base64 = Convert.ToBase64String(dataBytes); * var pdfObj = new JObject { { "Pdf", base64 } }; */ var fileBytes = System.IO.File.ReadAllBytes(combinedPath); return(File(fileBytes, "application/pdf", "CharacterSheet.pdf")); }
public static void MergePdf() { PdfDocument pdf = new PdfDocument(new PdfWriter(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "output.pdf"))); PdfMerger merger = new PdfMerger(pdf); foreach (var file in Directory.GetFiles("C:\\_tmp", "*.pdf")) { var srcPdf = new PdfDocument(new PdfReader(file)); merger.Merge(srcPdf, 1, srcPdf.GetNumberOfPages()); srcPdf.Close(); } pdf.Close(); }
public static void Merge(List <string> files, String ouputPath) { var pdf = new PdfDocument(new PdfWriter(ouputPath)); var merger = new PdfMerger(pdf); foreach (var file in files) { var pdfDocument = new PdfDocument(new PdfReader(file)); merger.Merge(pdfDocument, 1, pdfDocument.GetNumberOfPages()); pdfDocument.Close(); } pdf.Close(); }
public void ObjectCountLower() { var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); var result = PdfMerger.Merge(one, two); using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) { Assert.Equal(2, document.NumberOfPages); Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count < 24, "Expected object count to be lower than 24"); } }
public void MergePdf(IEnumerable <string> files, string pdfDest) { PdfWriter writer = new PdfWriter(pdfDest); PdfDocument pdfDoc = new PdfDocument(writer); PdfMerger merger = new PdfMerger(pdfDoc); foreach (string file in files) { PdfDocument pdfDocSrc = new PdfDocument(new PdfReader(file)); merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages()); pdfDocSrc.Close(); } merger.Close(); }
public static string DeletePage(string Path, int from, int to) { //PDF Merger if (!System.IO.Directory.Exists(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeletePage"))) { System.IO.Directory.CreateDirectory(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeletePage")); } string path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeletePage", "Merged" + number++ + ".pdf"); if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } PdfDocument pdfMergered = new PdfDocument(new PdfWriter(path)); PdfMerger pdfMerger = new PdfMerger(pdfMergered); //Source and Des PdfDocument source = new PdfDocument(new PdfReader(Path)); for (int i = 1; i < from; i++) { pdfMerger.Merge(source, i, i); } for (int i = to + 1; i <= source.GetNumberOfPages(); i++) { pdfMerger.Merge(source, i, i); } source.Close(); pdfMerger.Close(); pdfMergered.Close(); return(path); }
public void NoStackoverflow() { try { var bytes = PdfMerger.Merge(IntegrationHelpers.GetDocumentPath("68-1990-01_A.pdf")); using (var document = PdfDocument.Open(bytes, ParsingOptions.LenientParsingOff)) { Assert.Equal(45, document.NumberOfPages); } } catch (StackOverflowException) { Assert.True(false); } }
public void MergePdf(string directory, string pdfDest) { PdfWriter writer = new PdfWriter(pdfDest); PdfDocument pdfDoc = new PdfDocument(writer); PdfMerger merger = new PdfMerger(pdfDoc); string[] files = Directory.GetFiles(directory, "*.pdf", SearchOption.TopDirectoryOnly); foreach (string file in files) { PdfDocument pdfDocSrc = new PdfDocument(new PdfReader(file)); merger.Merge(pdfDocSrc, 1, pdfDocSrc.GetNumberOfPages()); pdfDocSrc.Close(); } merger.Close(); }