file-formats-aspnet-ej1-demos/Pdf/NamedDestination.aspx.cs

137 строки
5.2 KiB
C#

#region Copyright Syncfusion Inc. 2001-2016.
// Copyright Syncfusion Inc. 2001-2016. All rights reserved.
// Use of this code is subject to the terms of our license.
// A copy of the current license can be obtained at any time by e-mailing
// licensing@syncfusion.com. Any infringement will be prosecuted under
// applicable laws.
#endregion
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Drawing.Imaging;
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Interactive;
using System.Text;
using System.IO;
using Syncfusion.Pdf.Tables;
namespace WebSampleBrowser.Pdf
{
public partial class NamedDestination : System.Web.UI.Page
{
# region Page Load
/// <summary>
/// Handles page load
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
}
# endregion
# region Fields
PdfDocument document = null;
PdfFont font = null;
PdfBrush brush = null;
#endregion
# region Methods
public PdfBookmark AddBookmark(PdfPage page, string title, PointF point)
{
PdfGraphics graphics = page.Graphics;
//Add bookmark in PDF document
PdfBookmark bookmarks = document.Bookmarks.Add(title);
//Draw the content in the PDF page
graphics.DrawString(title, font, brush, new PointF(point.X, point.Y));
//Adding bookmark with named destination
PdfNamedDestination namedDestination = new PdfNamedDestination(title);
namedDestination.Destination = new PdfDestination(page, new PointF(point.X, point.Y));
namedDestination.Destination.Mode = PdfDestinationMode.FitToPage;
document.NamedDestinationCollection.Add(namedDestination);
bookmarks.NamedDestination = namedDestination;
return bookmarks;
}
public PdfBookmark AddSection(PdfBookmark bookmark, PdfPage page, string title, PointF point, bool isSubSection)
{
PdfGraphics graphics = page.Graphics;
//Add bookmark in PDF document
PdfBookmark bookmarks = bookmark.Add(title);
//Draw the content in the PDF page
graphics.DrawString(title, font, brush, new PointF(point.X, point.Y));
//Adding bookmark with named destination
PdfNamedDestination namedDestination = new PdfNamedDestination(title);
namedDestination.Destination = new PdfDestination(page, new PointF(point.X, point.Y));
if (isSubSection == true)
{
namedDestination.Destination.Zoom = 2f;
}
else
{
namedDestination.Destination.Zoom = 1f;
}
document.NamedDestinationCollection.Add(namedDestination);
bookmarks.NamedDestination = namedDestination;
return bookmarks;
}
#endregion
# region Events
/// <summary>
/// Creates PDF
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button(object sender, EventArgs e)
{
document = new PdfDocument();
font = new PdfStandardFont(PdfFontFamily.Helvetica, 10f);
brush = new PdfSolidBrush(Color.Black);
for (int i = 1; i <= 6; i++)
{
PdfPage pages = document.Pages.Add();
//Add bookmark in PDF document
PdfBookmark bookmark = AddBookmark(pages, "Chapter " + i, new PointF(10, 10));
//Add sections to bookmark
PdfBookmark section1 = AddSection(bookmark, pages, "Section " + i + ".1", new PointF(30, 30), false);
PdfBookmark section2 = AddSection(bookmark, pages, "Section " + i + ".2", new PointF(30, 400), false);
//Add subsections to section
PdfBookmark subsection1 = AddSection(section1, pages, "Paragraph " + i + ".1.1", new PointF(50, 50), true);
PdfBookmark subsection2 = AddSection(section1, pages, "Paragraph " + i + ".1.2", new PointF(50, 150), true);
PdfBookmark subsection3 = AddSection(section1, pages, "Paragraph " + i + ".1.3", new PointF(50, 250), true);
PdfBookmark subsection4 = AddSection(section2, pages, "Paragraph " + i + ".2.1", new PointF(50, 420), true);
PdfBookmark subsection5 = AddSection(section2, pages, "Paragraph " + i + ".2.2", new PointF(50, 560), true);
PdfBookmark subsection6 = AddSection(section2, pages, "Paragraph " + i + ".2.3", new PointF(50, 680), true);
}
//Stream the output to the browser.
if (this.CheckBox1.Checked)
{
document.Save("Sample.pdf", Response, HttpReadType.Open);
}
else
{
document.Save("Sample.pdf", Response, HttpReadType.Save);
}
}
# endregion
}
}