C#写PDF文件类库PDF File Writer介绍

.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

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

时间: 2024-11-05 19:41:41

C#写PDF文件类库PDF File Writer介绍的相关文章

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

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

pdf文件怎么修改内容知识介绍

今天给大家带来的知识介绍是PDF文件怎么修改内容,PDF文件有跨平台.不受操作系统影响等特性,这些特性可以达到节约时间.人力.设备的目的.但是不少职场新人却因为无法掌握pdf软件而苦恼.操作软件:迅捷PDF编辑器 工具下载地址:https://www.xunjiepdf.com/editor 1.想要编辑PDF文件,首先我们需要下载一款能够修改PDF文件的PDF编辑器,这里小编使用的是迅捷PDF编辑器. 2.当我们用能够修改pdf文件的工具将pdf文件载入后,我们选择点击编辑内容被框线选择的区域

【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转化为PDF文件. iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了. 1.包的引用 1 import java.io.FileNotFoundException; 2 import java.i

如何拆分PDF文件、PDF在线图文拆分教程!

如果在工作中碰到的PDF文件内容过多不方便查阅的话怎么办?最好的方法就是将文件拆分成多个文件,分开进行查看,但是怎么拆分PDF文件呢?下面小编就为大家详细的介绍一下! 1.首先需要下载软件在电脑上,在网上搜索迅捷pdf编辑器的下载资源,找到后就可以进行下载了,下载完成后就可以将软件自定义安装在电脑上了. 2.接着打开软件,点击打开页面左上角"打开"按钮,这样就可以在新弹出的窗口上将需要进行拆分的pdf文件添加进来了. 3.文件添加完成后点击界面工具栏上的"文档"按钮

怎么修改PDF文件、PDF格式文件怎么修改!

PDF格式文件虽然使用起来是非常的方便简单,但是这种文件却非常的难编辑,这是为什么呢.原因是PDF文件的格式比较特殊,编辑这种文件需要使用到专业的软件,下面我们就一起来学习了解一下怎么修改PDF这种文件吧! 迅捷PDF编辑器可以对PDF文件进行图片替换.文字修改.绘画标注.页面旋转.输出与打印等.是PDF编辑器果较好的一款PDF编辑器工具,并且安装运行不需要繁琐的设置过程. 1.网上搜索,找到相关资源下载迅捷pdf编辑器,安装后打开至主界面. 2.通过点击栏目上方工具栏中的"文件-打开"

如何压缩pdf文件 把pdf文件变小

许多文档资料在进行传输时都是用PDF格式,虽然PDF文件本身就是易传输的文档,但是有些文件资料,尤其图片内容较多文档,动则几十兆甚至上百兆,这在传输文件时极不方便.而且文件过大,在打开文件时可能会使系统卡死.所以在传递一些文档资料的时候都会将其压缩一下,这样可以有利于文件的传输已经打开查看. PDF压缩不是指将文件弄成.RAR或.ZIP之类的压缩文件,而是在不改变文件格式的情况下,将文件所占存储变小.因此这需要用PDF压缩器,而不是普通的压缩软件.使用工具:PDF压缩软件操作步骤: 打开PDF压

如何编辑PDF文件?PDF编辑的基础教程

如何编辑PDF呢?其实大多数人都不知道该如何下手,部分人会选择将PDF文件转换成Word然后进行编辑,其实这种方法比较麻烦,大大拉低了我们的工作效率.如果想要提高工作效率更加快速的编辑PDF文件,就可以选择迅捷PDF编辑器来完成,下面我们就一起来揭晓PDF文件编辑的奥秘!使用软件:PDF编辑器http://bianji.xjpdf.com/软件介绍:迅捷PDF编辑器是一款专业的pdf编辑软件.支持对PDF文件内容进行添加.修改.绘图.标注等操作.是pdf编辑器中功能较全.效果较好的一款中文版PD

winform 按顺序连续打印多个PDF文件

原文:winform 按顺序连续打印多个PDF文件 关于PDF打印的问题,前面有篇文章(点这里查看)也叙述过,今天来谈谈另外一种方法 其实方法很简单,因为需要把多个PDF文档按顺序连续打印,为此我们为什么不把要打印的pdf文档按顺序合并成一个PDF打印呢?如此就简单多了哦. 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方便以后查找 开始正文 1.为了方便,打印方法就不另寻他路了,和前面一致,具体如下: Process proc = new Process

给pdf文件添加防伪水印logo(附工程源码下载)

pdf添加水印logo这种需求场景确实很少,有些时候一些销售单据生成pdf添加一个水印logo,做一个简单的防伪效果,虽然实际上并没有太大作用,但是产品经理说要,巴拉巴拉--省略一万字. 下面将源码分享给猿友们,有用就looklook,没用就转移视线吧. 一.效果展示 没加水印的pdf: 添加水印后的pdf: 这里截图效果可能不是很明显,有需要的猿友可以直接下载下面的源码压缩包,里面有添加水印后的pdf文件. 二.源码下载 http://download.csdn.net/detail/u013