Hello Support,
I’m using Aspose licence version.
Here I am adding title and page no in first page of my pdf file using “row.Cells[0].Paragraphs.Add(title)” and “row.Cells[1].Paragraphs.Add(PageNo)”
I need to connect my title and page no with dotted lines.
I’m requesting you to solve my issue asap.
Here I am adding my sample code and Images.
Row row1 = table1.Rows.Add();
row1.Cells.Add();
TextFragment textFragment1 = new TextFragment();
TextFragment textFragment2 = new TextFragment();
string strLevelSeprator = string.Empty;
for (int i = 1; i < bookmark1.Level; i++)
{
strLevelSeprator += " ";
}
textFragment1.TextState.ApplyChangesFrom(new TextState("Times New Roman", 8));
//textFragment.TextState.Underline = true;
textFragment1.TextState.ForegroundColor = Color.Blue;
textFragment1.TextState.StrokingColor = Aspose.Pdf.Color.Blue;
textFragment1.TextState.DrawTextRectangleBorder = true;
textFragment1.Text = strLevelSeprator + bookmark1.Title;
int c = textFragment1.Text.Count();
if (c < 88)
{
for (int j = c; j <= 88; j++)
{
textFragment1.Text = textFragment1.Text + "-";
}
}
row1.Cells.Add("");
row1.Cells[0].Paragraphs.Add(textFragment1);
textFragment2.TextState.ApplyChangesFrom(new TextState("Times New Roman", 8));
//textFragment.TextState.Underline = true;
textFragment2.TextState.ForegroundColor = Color.Blue;
textFragment2.TextState.StrokingColor = Aspose.Pdf.Color.Blue;
textFragment2.TextState.DrawTextRectangleBorder = true;
textFragment2.Text = (bookmark1.PageNumber).ToString();
row1.Cells.Add("");
row1.Cells[1].Paragraphs.Add(textFragment2);<a class="attachment" href="/uploads/default/42146">pdf page No Conn.JPG</a> (34.7 KB)
pdf title and page no.JPG (53.8 KB)pdf page No Conn.JPG (34.7 KB)
pdf title and page no.JPG (53.8 KB)
@shivkumars
Would you kindly share your complete code snippet along with sample source PDF document. We will test the scenario in our environment and address it accordingly.
Hello Ali,
Thank you for your response.
Here I’m sending sample pdf document and source code.
Thank You.
Sample PDF Code.zip (1.2 KB)
Sample.pdf (312.0 KB)
@shivkumars
You can add a table cell between title and page number and fill it with dots as in following code snippet:
// Create PdfBookmarkEditor
Facades.PdfBookmarkEditor bookmarkEditor = new Facades.PdfBookmarkEditor();
bookmarkEditor.BindPdf(dataDir + "Sample.pdf");
Document doc = new Document(dataDir + "Sample.pdf");
// Get particular page
Page pg = doc.Pages.Insert(1);
Table table1 = new Table();
table1.ColumnWidths = "60% 30% 10%";
table1.DefaultColumnWidth = "100%";
TextFragment title = new TextFragment();
title.TextState.ApplyChangesFrom(new TextState("Times New Roman", 14));
title.TextState.FontStyle = FontStyles.Bold;
title.TextState.ForegroundColor = Color.Black;
title.TextState.StrokingColor = Aspose.Pdf.Color.Black;
title.TextState.DrawTextRectangleBorder = true;
title.Position = new Position(220, 800);
title.Text = "TABLE OF CONTENTS";
pg.Paragraphs.Add(title);
// Extract bookmarks
Aspose.Pdf.Facades.Bookmarks bookmarks1 = bookmarkEditor.ExtractBookmarks();
foreach (Aspose.Pdf.Facades.Bookmark bookmark1 in bookmarks1)
{
Row row1 = table1.Rows.Add();
TextFragment textFragment1 = new TextFragment();
TextFragment textFragment2 = new TextFragment();
int cellMargins = 0;
string strLevelSeprator = "............................................";
for (int i = 1; i < bookmark1.Level; i++)
{
cellMargins += 10;
}
//Giving title to first column
textFragment1.TextState.ApplyChangesFrom(new TextState("Times New Roman", 8));
textFragment1.TextState.ForegroundColor = Color.Blue;
textFragment1.TextState.StrokingColor = Aspose.Pdf.Color.Blue;
textFragment1.TextState.DrawTextRectangleBorder = true;
textFragment1.Text = bookmark1.Title;
row1.Cells.Add("");
row1.Cells[0].Margin = new MarginInfo(cellMargins, 0, 0, 0);
row1.Cells[0].Paragraphs.Add(textFragment1);
row1.Cells.Add(strLevelSeprator);
//Giving page number to second column
textFragment2.TextState.ApplyChangesFrom(new TextState("Times New Roman", 8));
textFragment2.TextState.ForegroundColor = Color.Blue;
textFragment2.TextState.StrokingColor = Aspose.Pdf.Color.Blue;
textFragment2.TextState.DrawTextRectangleBorder = true;
textFragment2.Text = (bookmark1.PageNumber).ToString();
row1.Cells.Add("");
row1.Cells[2].Paragraphs.Add(textFragment2);
}
pg.Paragraphs.Add(table1);
doc.Save(dataDir + "TOC-TOC-Sample.pdf");
TOC-TOC-Sample.pdf (413.8 KB)
Hello Ali,
Thank you for your code.
Unfortunately the code you sent is not producing the expected output.
Here I’m sending expected output file. Please check once.
Thank you.
Sample PDF (Dotted lines).pdf (427.0 KB)
@shivkumars
You are currently adding table in an existing PDF document to make it look like TOC and with this approach, we are afraid that expected PDF output will be quite difficult to achieve. The PDF you have shared recently has proper TOC. We suggest you to try to add TOC in existing PDF document instead of table. In case you face any issue, please feel free to let us know.