.NET平台开源项目速览(16)C#写PDF文件类库PDF File Writer介绍

简介:

    1年前,我在文章:这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)中(第9个项目),给大家推荐了一个开源免费的PDF读写组件 PDFSharp,PDFSharp我2年前就看过,用过简单的例子,不过代码没有写成专门的文章。最近在查找资料的时候,又发现一款小巧的写PDF文件的C#组件:PDF File Writer。该开源组件是在codeproject,还没有托管到其他地方,所以花了点时间了解了一下,分享给大家。   

    .NET开源目录:【目录】本博客其他.NET开源项目文章目录

本文原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_PdfFileWriter.html 

1.PDF File Writer基本介绍

1.1 支持的常用功能

PDF File Writer组件可以在.NET应用程序中直接创建PDF格式的文件。最低的开发环境是.NET 4.0 + VS 2013。我们来看看该组件支持的PDF的一些功能:

  图形:支持画线、矩形、多边形、贝塞尔曲线,前景和背景颜色,模式和阴影。

  图片:支持位图图像和矢量图像

    文本:支持行文本和列文本

  条形码:支持条形码:Barcode 128, Barcode 39, Barcode interleaved 2 of 5等

  二维码:支持二维条码

       加密:支持AES-128加密算法

       Web链接:支持Web超链接

       书签:支持文档大纲

       图表:支持微软的图表,支持数据表格,支持声音,视频播放;   

1.2 使用PDF File Writer创建PDF的步骤

使用PDF File Writer在程序中创建一个PDF文件的主要步骤如下:

    Step 1: 创建PdfDocument文件对象

    Step 2: 创建资源对象,如文字(PdfFont),图像(PdfImage)等

    Step 3: 创建文件页对象PdfPage

    Step 4: 创建内容对象PdfContents

    Step 5: 在内容对象上添加文字,或者图像等内容

    重复3, 4 ,5 创建其他页

    Step 6: 使用PdfDocument对象的CreateFile方法创建PDF文

1.3 PDF File Writer创建的PDF文件效果预览

    看看使用PDF File Writer创建的PDF的效果,非常不错。这也是我偶尔碰到非常震撼,拿过来分享的重要原因。

 

2.一个简单的使用案例

我们根据官方提供的例子,可以快速入门,一起来看看基本代码。

2.1 先创建基本对象

1
2
3
4
5
6
7
8
9
10
private  PdfFont            ArialNormal;
private  PdfFont            ArialBold;
private  PdfFont            ArialItalic;
private  PdfFont            ArialBoldItalic;
private  PdfFont            TimesNormal;
private  PdfFont            Comic;
private  PdfTilingPattern WaterMark;
private  PdfDocument        Document;
private  PdfPage            Page;
private  PdfContents        Contents;

    然后创建空白文档

1
2
3
4
5
6
7
8
9
10
// Step 1:创建空文档,文档参数有类型,可以使用枚举进行选择,和返回的文件名称
Document =  new  PdfDocument(PaperType.Letter,  false , UnitOfMeasure.Inch, FileName);
//加密测试例子
//Document.SetEncryption(null, null, Permission.All & ~Permission.Print, EncryptionType.Aes128);
//创建PDF文件信息目录
PdfInfo Info = PdfInfo.CreatePdfInfo(Document);
Info.Title( "Article Example" );
Info.Author( "Uzi Granot Granotech Limited" );
Info.Keywords( "PDF, .NET, C#, Library, Document Creator" );
Info.Subject( "PDF File Writer C# Class Library (Version 1.14.1)" );

2.2 创建字体等资源

1
2
3
4
5
6
7
8
9
10
//定义不同的字体类型,如下所示
String FontName1 =  "Arial" ;
String FontName2 =  "Times New Roman" ;
 
ArialNormal = PdfFont.CreatePdfFont(Document, FontName1, FontStyle.Regular,  true );
ArialBold = PdfFont.CreatePdfFont(Document, FontName1, FontStyle.Bold,  true );
ArialItalic = PdfFont.CreatePdfFont(Document, FontName1, FontStyle.Italic,  true );
ArialBoldItalic = PdfFont.CreatePdfFont(Document, FontName1, FontStyle.Bold | FontStyle.Italic,  true );
TimesNormal = PdfFont.CreatePdfFont(Document, FontName2, FontStyle.Regular,  true );
Comic = PdfFont.CreatePdfFont(Document,  "Comic Sans MS" , FontStyle.Bold,  true );

2.3 创建文字示例

1
2
3
4
5
6
7
8
9
Contents.DrawText(Comic, 40.0, 4.25, 9.25, TextJustify.Center, 0.02, Color.FromArgb(128, 0, 255), Color.FromArgb(255, 0, 128),  "PDF FILE WRITER" );
Contents.SaveGraphicsState();
Contents.SetColorNonStroking(Color.Purple);
Contents.DrawText(Comic, 30.0, 4.25, 8.75, TextJustify.Center,  "Example" );
Contents.RestoreGraphicsState();
//Step 3:添加新页面
Page =  new  PdfPage(Document);
//Step 4:添加内容到页面
Contents =  new  PdfContents(Page);

2.4 绘制条形码

1
2
3
4
5
6
7
8
9
Contents.SaveGraphicsState();
BarcodeEAN13 Barcode1 =  new  BarcodeEAN13( "1234567890128" );
Contents.DrawBarcode(1.3, 7.05, 0.012, 0.75, Barcode1, ArialNormal, 8.0);
PdfQRCode QRCode =  new  PdfQRCode(Document,  "http://www.codeproject.com/Articles/570682/PDF-File-Writer-Csharp-Class-Library-Version" , ErrorCorrection.M);
Contents.DrawQRCode(QRCode, 6.0, 6.8, 1.2);
// 添加链接
Page.AddWebLink(6.0, 6.8, 7.2, 8.0,  "http://www.codeproject.com/Articles/570682/PDF-File-Writer-Csharp-Class-Library-Version" );
//保存
Contents.RestoreGraphicsState();

2.5 绘制图表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Contents.SaveGraphicsState();
 
//创建MS Chart图表
Chart PieChart = PdfChart.CreateChart(Document, 1.8, 1.5, 300.0);
PdfImageControl ImageControl =  new  PdfImageControl();
ImageControl.SaveAs = SaveImageAs.IndexedImage;
PdfChart PiePdfChart =  new  PdfChart(Document, PieChart, ImageControl);
 
PieChart.AntiAliasing = AntiAliasingStyles.None; 
 
//设置颜色
PieChart.BackColor = Color.FromArgb(220, 220, 255);
PieChart.Palette = ChartColorPalette.BrightPastel;
 
//默认字体
Font DefaultFont = PiePdfChart.CreateFont( "Verdana" , FontStyle.Regular, 0.05, FontSizeUnit.UserUnit);
Font TitleFont = PiePdfChart.CreateFont( "Verdana" , FontStyle.Bold, 0.07, FontSizeUnit.UserUnit);
 
// 设置标题
Title Title1 =  new  Title( "Pie Chart Example" , Docking.Top, TitleFont, Color.Purple);
PieChart.Titles.Add(Title1);
 
//图例
Legend Legend1 =  new  Legend();
PieChart.Legends.Add(Legend1);
Legend1.BackColor = Color.FromArgb(230, 230, 255);
Legend1.Docking = Docking.Bottom;
Legend1.Font = DefaultFont;
 
// 图表区域
ChartArea ChartArea1 =  new  ChartArea();
PieChart.ChartAreas.Add(ChartArea1);
 
ChartArea1.BackColor = Color.FromArgb(255, 200, 255);
 
Series Series1 =  new  Series();
PieChart.Series.Add(Series1);
Series1.ChartType = SeriesChartType.Pie;
Series1.Font = DefaultFont;
Series1.IsValueShownAsLabel =  true ;
Series1.LabelFormat =  "{0} %" ;
Series1.Points.Add(22.0);
Series1.Points[0].LegendText =  "Apple" ;
Series1.Points.Add(27.0);
Series1.Points[1].LegendText =  "Banana" ;
Series1.Points.Add(33.0);
Series1.Points[2].LegendText =  "Orange" ;
Series1.Points.Add(18.0);
Series1.Points[3].LegendText =  "Grape" ;
 
Contents.DrawChart(PiePdfChart, 5.6, 5.0);
// 保存
Contents.RestoreGraphicsState();

2.6 生成PDF

1
2
3
4
5
6
// Step 6:创建PDF
Document.CreateFile();
//打开PDF文件
Process Proc =  new  Process();
Proc.StartInfo =  new  ProcessStartInfo(FileName);
Proc.Start();

3.资源

1.Codeproject文章连接:http://www.codeproject.com/Articles/570682/PDF-File-Writer-Csharp-Class-Library-Version

2.PDF File Writer DLL下载:PdfFileWriter_dll.zip

3.PDF File Writer 帮助文档:PdfFileWriterCHM.rar

4.PDF File Writer源代码与Demo:PdfFileWriter-Code.rar 

注意:源代码中的相关素材进行了精简,否则文件比较大,长传比较大。如果有需求可以去文章链接原文下载,或者单独留下邮箱,我有空发送一下。


本文转自叶小钗 h数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_PdfFileWriter.html,如需转载请自行联系原作者

相关文章
|
1月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
3天前
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
22 5
|
11天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
57 13
|
27天前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
32 3
|
1月前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
1月前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
20天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
20天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
29天前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
|
1月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架