106 строки
4.1 KiB
C#
106 строки
4.1 KiB
C#
#region Copyright Syncfusion Inc. 2001-2022.
|
|
// Copyright Syncfusion Inc. 2001-2022. 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 Syncfusion.Pdf;
|
|
using Syncfusion.Pdf.Graphics;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
|
|
|
|
namespace WebSampleBrowser.Pdf
|
|
{
|
|
public partial class ComplexScript : 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 Events
|
|
/// <summary>
|
|
/// Creates PDF document
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Button1_Click(object sender, EventArgs e)
|
|
{
|
|
string inputText = @"เอกสาร PDF มีการใช้อย่างแพร่หลายเป็นเวลาหลายปีและนับสิบ ๆ แถมฟรี ผู้อ่าน
|
|
PDF เชิงพาณิชย์บรรณาธิการและห้องสมุดพร้อมใช้งาน อย่างไรก็ตามแม้จะมี
|
|
ความนิยมนี้ก็ยังคงยากที่จะหาคำแนะนำกระชับรูปแบบ PDF พื้นเมือง
|
|
การทำความเข้าใจการทำงานภายในของ PDF ทำให้สามารถสร้างได้แบบไดนามิก
|
|
เอกสาร PDF ตัวอย่างเช่นเว็บเซิร์ฟเวอร์สามารถดึงข้อมูลจากฐานข้อมูล
|
|
ใช้เพื่อกำหนดใบกำกับสินค้าและให้บริการกับลูกค้าได้ทันที";
|
|
|
|
//Create a new PdfDocument.
|
|
PdfDocument document = new PdfDocument();
|
|
|
|
//Add a new page to the document.
|
|
PdfPage page = document.Pages.Add();
|
|
|
|
//Create font.
|
|
PdfFont font = new PdfTrueTypeFont(new Font("Tahoma", 14), true);
|
|
|
|
//Create brush.
|
|
PdfBrush brush = new PdfSolidBrush(Color.Black);
|
|
|
|
//Get page client size.
|
|
SizeF clipBounds = page.Graphics.ClientSize;
|
|
|
|
RectangleF rect = new RectangleF(0, 0, clipBounds.Width, clipBounds.Height);
|
|
|
|
//Create a new instance of the PdfStringFormat.
|
|
PdfStringFormat format = new PdfStringFormat();
|
|
|
|
//Set the property for complex text layout.
|
|
format.ComplexScript = true;
|
|
|
|
//Draw the text.
|
|
page.Graphics.DrawString(inputText, font, brush, rect, format);
|
|
|
|
//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
|
|
|
|
# region Helpher Methods
|
|
/// <summary>
|
|
/// Data folder path is resolved from requested page physical path
|
|
/// </summary>
|
|
/// <param name="fileName"></param>
|
|
/// <returns></returns>
|
|
protected string ResolveApplicationDataPath(string fileName)
|
|
{
|
|
string dataPath = new System.IO.DirectoryInfo(Server.MapPath("~\\App_Data") + "\\PDF").FullName;
|
|
return string.Format("{0}\\{1}", dataPath, fileName);
|
|
}
|
|
# endregion
|
|
}
|
|
} |