asp.Net生成PDFメソッド
5284 ワード
今日ブログ園を回って、PFDを生成する文章を発表した人がいて、自分も後で使う準備をしているときに便利に呼び出す準備をしています.
まずitextsharpサイトに行ってコントロールをダウンロードします(https://sourceforge.net/projects/itextsharp)
ダウンロードしたコントロールを自分のプロジェクトに参照します.主なbllファイルはitextsharpです.dllファイル
1、DataTableからPDFファイルを生成する
Itextsharpリファレンスの追加
using iTextSharp;using iTextSharp.text;using iTextSharp.text.pdf;using System.IO;
アプリケーションコード
2、テキストの内容に基づいてPDFファイルを生成する
3、ヘッダーのフッターを生成する(ただしiTextSharp 5.5このバージョンではこの方法がないので、親たちに探してもらう)
まずitextsharpサイトに行ってコントロールをダウンロードします(https://sourceforge.net/projects/itextsharp)
ダウンロードしたコントロールを自分のプロジェクトに参照します.主なbllファイルはitextsharpです.dllファイル
1、DataTableからPDFファイルを生成する
Itextsharpリファレンスの追加
using iTextSharp;using iTextSharp.text;using iTextSharp.text.pdf;using System.IO;
アプリケーションコード
/// <summary>
/// PDF
/// </summary>
/// <param name="Data"> </param>
/// <param name="PDFFile"> PDF </param>
/// <param name="FontPath"> </param>
/// <param name="FontSize"> </param>
/// <returns> </returns>
public static bool ConvertDataTableToPDF(DataTable datatable, string PDFFilePath, string FontPath, float FontSize)
{
//
Document document = new Document();
// PDF
// FileMode-Create , , , 。
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create));
//
document.Open();
// PDF
BaseFont baseFont = BaseFont.CreateFont(
FontPath,
BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED);
//
Font font = new Font(baseFont, FontSize);
// PDF
PdfPTable table = new PdfPTable(datatable.Columns.Count);
// table
for (int i = 0; i < datatable.Rows.Count; i++)
{
for (int j = 0; j < datatable.Columns.Count; j++)
{
table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), font));
}
}
//
document.Add(table);
//
document.Close();
//
writer.Close();
return true;
}
/// <summary>
/// Dataset
/// </summary>
/// <returns></returns>
private DataSet GetSet()
{
DataSet ds = new DataSet();
string sql = "select * from T_AjaxXML";
string Config = ConfigurationManager.ConnectionStrings["Config"].ConnectionString;
using (SqlConnection cnn = new SqlConnection(Config))
{
using (SqlCommand cmm = new SqlCommand(sql, cnn))
{
SqlDataAdapter dapter = new SqlDataAdapter(cmm);
dapter.Fill(ds);
}
}
return ds;
}
: ConvertDataTableToPDF(GetSet().Tables[0], Server.MapPath("~/Table.pdf"), "C:\\Windows\\Fonts\\simsun.ttc,1", 14);
2、テキストの内容に基づいてPDFファイルを生成する
private void CreateTxt(string txt, string filepath)
{
//
Document document = new Document();
//
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
//
document.Open();
//
document.Add(new Paragraph(txt));
//
document.Close();
}
3、ヘッダーのフッターを生成する(ただしiTextSharp 5.5このバージョンではこの方法がないので、親たちに探してもらう)
private void CreatePDFheader(string filepath, string headertxt, string footertxt)
{
//
Document document = new Document();
//
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
PdfPageEventHelper hh = new PdfPageEventHelper();
//
HeaderFooter footer = new HeaderFooter(new Phrase(footertxt), true);
footer.Border = Rectangle.NO_BORDER;
document.Footer = footer;
//
document.Open();
//
HeaderFooter header = new HeaderFooter(new Phrase(headertxt), false);
document.Header = header;
//
document.Add(new Paragraph("This is First Page"));
//
document.NewPage();
// 2
document.Add(new Paragraph("This is Second Page"));
//
document.ResetPageCount();
//
document.Close();
}