[ASP.NET]以iTextSharp手绘表格并产生PDF下载

简介: 原文 [ASP.NET]以iTextSharp手繪表格並產生PDF下載 大家使用iTextSharp的機緣都不太一樣, 由於單位Crystal Report的License數量有限主管要我去找一個免費產生PDF方法, 避免Crystal Report的License使用過多, 於是乎就找上了iTextSharp.

原文 [ASP.NET]以iTextSharp手繪表格並產生PDF下載

大家使用iTextSharp的機緣都不太一樣, 由於單位Crystal Report的License數量有限主管要我去找一個免費產生PDF方法, 避免Crystal Report的License使用過多, 於是乎就找上了iTextSharp.

 Crystal Report 與 iTextSharp比較表

  Crystal Report iTextSharp
視覺化界面 YES NO
轉換成PDF YES YES
費用 YES NO
 
第一次總是特別辛苦的, 為了畫出一張收據, 沒有視覺化界面的幫忙, 透過大腦的想像, 終於完成了任務, 但是對於使用Crystal Report的老手們, 應該相當不習慣, 因為看不見畫的東西, 對他們是不方便的, 但可以省錢, 我想老闆不會說不, 最後我把我學習的成果做成一個範例.
 
請記得先去網站下載iTextSharp.dll這個檔案加入參考 
01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Web;
05 using System.Web.UI;
06 using System.Web.UI.WebControls;
07 using System.IO;
08 using iTextSharp.text;
09 using iTextSharp.text.pdf;
10  
11 public partial class _Default : System.Web.UI.Page
12 {
13     protected void Page_Load(object sender, EventArgs e)
14     {
15         //文件初始化
16         Document Doc= new Document();
17  
18         MemoryStream Memory= new MemoryStream();
19  
20         PdfWriter PdfWriter = PdfWriter.GetInstance(Doc, Memory);
21  
22         //字型設定
23         string FontPath = Server.MapPath("kaiu.ttf");
24  
25         BaseFont bfChinese = BaseFont.CreateFont(FontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
26  
27         Font ChFont = new Font(bfChinese, 9);
28  
29         //文件開啟
30         Doc.Open();
31  
32         //設定表格需要幾攔幾列 (如果不設列,可能會在使用RowSpan或ColSpan發生錯誤)
33         iTextSharp.text.Table Tb = new iTextSharp.text.Table(4,5);
34         //設定表格的Padding
35         Tb.Padding = 4;
36         //自動填滿欄位(如果沒有填滿欄位,不會畫出欄位的線條)      
37         Tb.AutoFillEmptyCells = true;
38  
39         //抬頭
40         Paragraph Title = new Paragraph("iTextSharp畫表格測試", ChFont);
41         //內容水平置中
42         Title.SetAlignment("center");
43  
44         //Cell內容
45         iTextSharp.text.Cell Tc;
46         Tc= new iTextSharp.text.Cell(new Phrase("點部落",ChFont));
47         //內容水平置中
48         Tc.HorizontalAlignment = Element.ALIGN_CENTER;
49         //內容高度置中 (Top,Middle感覺不到有沒有移動)
50         Tc.VerticalAlignment = Element.ALIGN_TOP;
51         Tc.Rowspan = 2;
52         Tc.Colspan = 2;
53          
54         //將Cell加入表格
55         Tb.AddCell(Tc);
56  
57         Tc = new iTextSharp.text.Cell(new Phrase("www.dotblogs.com.tw", ChFont));
58         //內容水平置中
59         Tc.HorizontalAlignment = Element.ALIGN_CENTER;
60         //內容高度置中(Top,Middle感覺不到有沒有移動)
61         Tc.VerticalAlignment = Element.ALIGN_TOP;
62         Tc.Rowspan = 2;
63         Tc.Colspan = 2;
64  
65         Tb.AddCell(Tc);
66        
67         //加入抬頭
68         Doc.Add(Title);
69         //把表格加入文件
70         Doc.Add(Tb);
71  
72         //開啟新的一頁
73         Doc.NewPage();
74  
75         //加入抬頭
76         Doc.Add(Title);
77         //把表格加入文件
78         Doc.Add(Tb);
79  
80         //文件關閉
81         Doc.Close();
82  
83  
84         //檔案下載
85         Response.Clear();
86         Response.AddHeader("Content-Disposition", "attachment; filename=pdfExample.pdf");
87         Response.ContentType = "application/octet-stream";
88  
89         Response.OutputStream.Write(Memory.GetBuffer(), 0, Memory.GetBuffer().Length);
90         Response.OutputStream.Flush();
91         Response.OutputStream.Close();
92         Response.Flush();
93         Response.End();
94  
95     }
96 }
目录
相关文章
|
2月前
|
存储 缓存 Python
如何使用Python抓取PDF文件并自动下载到本地
如何使用Python抓取PDF文件并自动下载到本地
34 0
|
4月前
|
SQL 开发框架 前端开发
分享24个上传下载 和32个社区论坛ASP.NET源码,总有一款适合您
分享24个上传下载 和32个社区论坛ASP.NET源码,总有一款适合您
21 0
|
14天前
|
存储 移动开发 前端开发
对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
26 0
|
2月前
|
前端开发
前端实现生成pdf文件并下载
前端实现生成pdf文件并下载
39 1
|
7月前
|
Windows
​史上最详细的Windows10系统离线安装.NET Framework 3.5的方法(附离线安装包下载)
​史上最详细的Windows10系统离线安装.NET Framework 3.5的方法(附离线安装包下载)
609 0
|
3月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
37 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
3月前
|
安全 C# 开发者
.NET开源的一键自动化下载、安装、激活Microsoft Office利器
.NET开源的一键自动化下载、安装、激活Microsoft Office利器
|
8月前
|
Apache
基于commons-net实现ftp创建文件夹、上传、下载功能.
基于commons-net实现ftp创建文件夹、上传、下载功能.
106 0
|
4月前
|
存储
如何解决网页中的pdf文件无法下载?pdf打印显示空白怎么办?
如何解决网页中的pdf文件无法下载?pdf打印显示空白怎么办?
186 0
|
4月前
|
移动开发 JavaScript
echarts生成图表并下载为PDF文件(附带js源码地址)
echarts生成图表并下载为PDF文件(附带js源码地址)
40 0