public static void Run() { // ExStart:AddTOC // The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments(); // Load an existing PDF files Document doc = new Document(dataDir + "AddTOC.pdf"); // Get access to first page of PDF file Page tocPage = doc.Pages.Insert(1); // Create object to represent TOC information TocInfo tocInfo = new TocInfo(); TextFragment title = new TextFragment("Table Of Contents"); title.TextState.FontSize = 20; title.TextState.FontStyle = FontStyles.Bold; // Set the title for TOC tocInfo.Title = title; tocPage.TocInfo = tocInfo; // Create string objects which will be used as TOC elements string[] titles = new string[4]; titles[0] = "First page"; titles[1] = "Second page"; titles[2] = "Third page"; titles[3] = "Fourth page"; for (int i = 0; i < 2; i++) { // Create Heading object Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); TextSegment segment2 = new TextSegment(); heading2.TocPage = tocPage; heading2.Segments.Add(segment2); // Specify the destination page for heading object heading2.DestinationPage = doc.Pages[i + 2]; // Destination page heading2.Top = doc.Pages[i + 2].Rect.Height; // Destination coordinate segment2.Text = titles[i]; // Add heading to page containing TOC tocPage.Paragraphs.Add(heading2); } dataDir = dataDir + "TOC_out.pdf"; // Save the updated document doc.Save(dataDir); // ExEnd:AddTOC Console.WriteLine("\nTOC added successfully to an existing PDF.\nFile saved at " + dataDir); }
public static void Main(string[] args) { // The path to the documents directory. string dataDir = Path.GetFullPath("../../../Data/"); // Load an existing PDF files Document doc = new Document(dataDir + "input.pdf"); // Get access to first page of PDF file Page tocPage = doc.Pages.Insert(1); // Create object to represent TOC information TocInfo tocInfo = new TocInfo(); TextFragment title = new TextFragment("Table Of Contents"); title.TextState.FontSize = 20; title.TextState.FontStyle = FontStyles.Bold; // Set the title for TOC tocInfo.Title = title; tocPage.TocInfo = tocInfo; // Create string objects which will be used as TOC elements string[] titles = new string[4]; titles[0] = "First page"; titles[1] = "Second page"; titles[2] = "Third page"; titles[3] = "Fourth page"; for (int i = 0; i < 2; i++) { // Create Heading object Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); TextSegment segment2 = new TextSegment(); heading2.TocPage = tocPage; heading2.Segments.Add(segment2); // Specify the destination page for heading object heading2.DestinationPage = doc.Pages[i + 2]; // Destination page heading2.Top = doc.Pages[i + 2].Rect.Height; // Destination coordinate segment2.Text = titles[i]; // Add heading to page containing TOC tocPage.Paragraphs.Add(heading2); } // Save the updated document doc.Save(dataDir + "TOC_Output.pdf"); }
private void btnCreateTOC_Click(object sender, EventArgs e) { try { if (lstTitles.Items.Count > 0) { Document doc = new Document(txtPDF.Text); Page tocPage = doc.Pages.Insert(1); // Create object to represent TOC information TocInfo tocInfo = new TocInfo(); TextFragment title = new TextFragment("Table Of Contents"); title.TextState.FontSize = 20; title.TextState.FontStyle = FontStyles.Bold; // Set the title for TOC tocInfo.Title = title; tocPage.TocInfo = tocInfo; foreach (var item in lstTitles.Items) { TextFragmentAbsorber absorber = new TextFragmentAbsorber(item.ToString()); doc.Pages.Accept(absorber); Page targetPage = doc.Pages[absorber.TextFragments[1].Page.Number]; // Create Heading object Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); TextSegment segment2 = new TextSegment(); heading2.TocPage = tocPage; heading2.Segments.Add(segment2); // Specify the destination page for heading object heading2.DestinationPage = targetPage; // Destination page heading2.Top = targetPage.Rect.Height; // Destination coordinate segment2.Text = item.ToString(); // Add heading to page containing TOC tocPage.Paragraphs.Add(heading2); } doc.Save("Toc_out.pdf"); MessageBox.Show("PDF with TOC has been created.", "Success"); } else { MessageBox.Show("Please extract titles from PDF document first.", "Titles are not extracted"); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }
public static void Run() { // ExStart:ApplyNumberStyle // The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Headings(); Document pdfDoc = new Document(); pdfDoc.PageInfo.Width = 612.0; pdfDoc.PageInfo.Height = 792.0; pdfDoc.PageInfo.Margin = new Aspose.Pdf.MarginInfo(); pdfDoc.PageInfo.Margin.Left = 72; pdfDoc.PageInfo.Margin.Right = 72; pdfDoc.PageInfo.Margin.Top = 72; pdfDoc.PageInfo.Margin.Bottom = 72; Aspose.Pdf.Page pdfPage = pdfDoc.Pages.Add(); pdfPage.PageInfo.Width = 612.0; pdfPage.PageInfo.Height = 792.0; pdfPage.PageInfo.Margin = new Aspose.Pdf.MarginInfo(); pdfPage.PageInfo.Margin.Left = 72; pdfPage.PageInfo.Margin.Right = 72; pdfPage.PageInfo.Margin.Top = 72; pdfPage.PageInfo.Margin.Bottom = 72; Aspose.Pdf.FloatingBox floatBox = new Aspose.Pdf.FloatingBox(); floatBox.Margin = pdfPage.PageInfo.Margin; pdfPage.Paragraphs.Add(floatBox); TextFragment textFragment = new TextFragment(); TextSegment segment = new TextSegment(); Aspose.Pdf.Heading heading = new Aspose.Pdf.Heading(1); heading.IsInList = true; heading.StartNumber = 1; heading.Text = "List 1"; heading.Style = NumberingStyle.NumeralsRomanLowercase; heading.IsAutoSequence = true; floatBox.Paragraphs.Add(heading); Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); heading2.IsInList = true; heading2.StartNumber = 13; heading2.Text = "List 2"; heading2.Style = NumberingStyle.NumeralsRomanLowercase; heading2.IsAutoSequence = true; floatBox.Paragraphs.Add(heading2); Aspose.Pdf.Heading heading3 = new Aspose.Pdf.Heading(2); heading3.IsInList = true; heading3.StartNumber = 1; heading3.Text = "the value, as of the effective date of the plan, of property to be distributed under the plan onaccount of each allowed"; heading3.Style = NumberingStyle.LettersLowercase; heading3.IsAutoSequence = true; floatBox.Paragraphs.Add(heading3); dataDir = dataDir + "ApplyNumberStyle_out.pdf"; pdfDoc.Save(dataDir); // ExEnd:ApplyNumberStyle Console.WriteLine("\nNumber style applied successfully in headings.\nFile saved at " + dataDir); }
private void button1_Click(object sender, EventArgs e) { CreatePDFWithTable(); return; // ExStart:ApplyNumberStyle // The path to the documents directory. string dataDir = @"..\pdfpages\sample.pdf"; Document pdfDoc = new Document(dataDir); pdfDoc.PageInfo.Width = 612.0; pdfDoc.PageInfo.Height = 792.0; pdfDoc.PageInfo.Margin = new Aspose.Pdf.MarginInfo(); pdfDoc.PageInfo.Margin.Left = 72; pdfDoc.PageInfo.Margin.Right = 72; pdfDoc.PageInfo.Margin.Top = 72; pdfDoc.PageInfo.Margin.Bottom = 72; Aspose.Pdf.Page pdfPage = pdfDoc.Pages.Add(); pdfPage.PageInfo.Width = 612.0; pdfPage.PageInfo.Height = 792.0; pdfPage.PageInfo.Margin = new Aspose.Pdf.MarginInfo(); pdfPage.PageInfo.Margin.Left = 72; pdfPage.PageInfo.Margin.Right = 72; pdfPage.PageInfo.Margin.Top = 2; pdfPage.PageInfo.Margin.Bottom = 72; Aspose.Pdf.FloatingBox floatBox = new Aspose.Pdf.FloatingBox(); floatBox.Margin = pdfPage.PageInfo.Margin; pdfPage.Paragraphs.Add(floatBox); TextFragment textFragment = new TextFragment(); TextSegment segment = new TextSegment(); Aspose.Pdf.Heading heading = new Aspose.Pdf.Heading(1); heading.IsInList = true; heading.StartNumber = 1; heading.Text = "List 1"; heading.Style = NumberingStyle.NumeralsRomanLowercase; heading.IsAutoSequence = true; floatBox.Paragraphs.Add(heading); Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); heading2.IsInList = true; heading2.StartNumber = 13; heading2.Text = "List 2"; heading2.Style = NumberingStyle.NumeralsRomanLowercase; heading2.IsAutoSequence = true; floatBox.Paragraphs.Add(heading2); Aspose.Pdf.Heading heading3 = new Aspose.Pdf.Heading(2); heading3.IsInList = true; heading3.StartNumber = 1; heading3.Text = "the value, as of the effective date of the plan, of property to be distributed under the plan onaccount of each allowed"; heading3.Style = NumberingStyle.LettersLowercase; heading3.IsAutoSequence = true; floatBox.Paragraphs.Add(heading3); dataDir = dataDir + "9992.pdf"; pdfDoc.Save(dataDir); // ExEnd:ApplyNumberStyle Console.WriteLine("\nNumber style applied successfully in headings.\nFile saved at " + dataDir); }
protected void btnMergeAllFiles_Click(object sender, EventArgs e) { try { //delete file if already exists... if (File.Exists(Server.MapPath("~/Uploads/Catalog.pdf"))) { File.Delete(Server.MapPath("~/Uploads/Catalog.pdf")); } // create new document to save the catalog... Document doc = new Document(); //get all the applications in the directory string[] pdfFiles = Directory.GetFiles(Server.MapPath("~/Uploads"), "*.pdf") .Select(path => Path.GetFileName(path)) .ToArray(); if (pdfFiles.Count() == 0) { msg.Text = "<div class='alert alert-danger'><button data-dismiss='alert' class='close' type='button'>×</button>There is currently no application available.</div>"; return; } else { foreach (string val in pdfFiles) { //get the pdf document.. Document application = new Document(Server.MapPath("~/Uploads/" + val)); //merge the pages in catalog document... doc.Pages.Add(application.Pages); } //====================================== Adding Table of Content Starts ========================================= //add TOC page... Aspose.Pdf.Page tocPage = doc.Pages.Insert(1); //add watermark on table of content AddWaterMark(tocPage); // Create object to represent TOC information TocInfo tocInfo = new TocInfo(); TextFragment title = new TextFragment("Table Of Contents"); title.TextState.FontSize = 20; title.TextState.FontStyle = FontStyles.Bold; // Set the title for TOC tocInfo.Title = title; tocPage.TocInfo = tocInfo; for (int i = 0; i < pdfFiles.Count(); i++) { // Create Heading object Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); TextSegment segment2 = new TextSegment(); heading2.TocPage = tocPage; heading2.Segments.Add(segment2); // Specify the destination page for heading object heading2.DestinationPage = doc.Pages[i + 2]; // Destination page heading2.Top = doc.Pages[i + 2].Rect.Height; // Destination coordinate segment2.Text = "Application Form No. " + (i + 1).ToString(); // Add heading to page containing TOC tocPage.Paragraphs.Add(heading2); } //===================================== TOC Ends ========================================== //save the final catalog file... string catalogpath = Server.MapPath("~/Catalogs/Catalog.pdf"); doc.Save(catalogpath); msg.Text = "<div class='alert alert-success'><button data-dismiss='alert' class='close' type='button'>×</button>Applications have been saved in catalog.</div>"; //show success message } } catch (Exception exp) { msg.Text = "<div class='alert alert-danger'><button data-dismiss='alert' class='close' type='button'>×</button>Exception Occured:" + exp.Message + "</div>"; } }
private void btnCreatePDF_Click(object sender, EventArgs e) { try { if (lstTitles.Items.Count > 0) { Dictionary <string, List <int> > titles = new Dictionary <string, List <int> >(); List <string> ts = new List <string>(); Document doc = new Document(txtPDF.Text); foreach (Page page in doc.Pages) { TextFragmentAbsorber absorber = new TextFragmentAbsorber(); page.Accept(absorber); if (titles.Where(x => x.Key == absorber.TextFragments[1].Text).ToList().Count > 0) { titles[absorber.TextFragments[1].Text].Add(absorber.TextFragments[1].Page.Number); ts.Remove(absorber.TextFragments[1].Text); } else { titles.Add(absorber.TextFragments[1].Text, new List <int>() { absorber.TextFragments[1].Page.Number }); ts.Add(absorber.TextFragments[1].Text); } } // Get chapters which are more than 1 page var pages = titles.Where(x => x.Value.Count > 1).Select(x => x.Value).ToList(); List <int> ps = new List <int>(); if (pages.Count > 0) { foreach (var page in pages) { Document newDoc = new Document(); foreach (var p in page) { newDoc.Pages.Add(doc.Pages[p]); ps.Add(p); } newDoc.Save("newPDF_" + DateTime.Now.Millisecond + ".pdf"); } // Delete extracted pages from existing PDF doc.Pages.Delete(ps.ToArray()); doc.Save("tmp.pdf"); } // Create TOC for remaining pages doc = new Document("tmp.pdf"); Page tocPage = doc.Pages.Insert(1); // Create object to represent TOC information TocInfo tocInfo = new TocInfo(); TextFragment title = new TextFragment("Table Of Contents"); title.TextState.FontSize = 20; title.TextState.FontStyle = FontStyles.Bold; // Set the title for TOC tocInfo.Title = title; tocPage.TocInfo = tocInfo; foreach (var s in ts) { TextFragmentAbsorber absorber = new TextFragmentAbsorber(s); doc.Pages.Accept(absorber); Page targetPage = doc.Pages[absorber.TextFragments[1].Page.Number]; // Create Heading object Aspose.Pdf.Heading heading2 = new Aspose.Pdf.Heading(1); TextSegment segment2 = new TextSegment(); heading2.TocPage = tocPage; heading2.Segments.Add(segment2); // Specify the destination page for heading object heading2.DestinationPage = targetPage; // Destination page heading2.Top = targetPage.Rect.Height; // Destination coordinate segment2.Text = s; // Add heading to page containing TOC tocPage.Paragraphs.Add(heading2); } doc.Save("Toc_" + DateTime.Now.Millisecond + ".pdf"); File.Delete("tmp.pdf"); MessageBox.Show("PDF with TOC has been created.", "Success"); } else { MessageBox.Show("Please extract titles from PDF document first.", "Titles are not extracted"); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }