用c 制作pdf文件全攻略

上传人:xins****2008 文档编号:115436490 上传时间:2019-11-13 格式:DOC 页数:34 大小:1.04MB
返回 下载 相关 举报
用c 制作pdf文件全攻略_第1页
第1页 / 共34页
用c 制作pdf文件全攻略_第2页
第2页 / 共34页
用c 制作pdf文件全攻略_第3页
第3页 / 共34页
用c 制作pdf文件全攻略_第4页
第4页 / 共34页
用c 制作pdf文件全攻略_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《用c 制作pdf文件全攻略》由会员分享,可在线阅读,更多相关《用c 制作pdf文件全攻略(34页珍藏版)》请在金锄头文库上搜索。

1、用C#制作PDF文件全攻略丽水市汽车运输集团有限公司信息中心 苟安廷目 录前 言3第一部分 iText的简单应用4第一章 创建一个Document4第一步 创建一个Document实例:5第二步 创建Writer实例6第三步 打开Document6第四步 添加内容10第五步,关闭 document11第二章 块、短句和段落11块11短句12段落12字体的延续13第三章 锚点、列表和注释14锚点14列表14注释15第四章 页眉页脚、章节、区域和绘图对象16页眉页脚16章节和区域17图形17第五章 表格18一些简单的表格18一些表格参数18大表格20内存管理20嵌套表格21表格偏移21表格的绝对位

2、置21第六章 图片21Image对象21图片的位置22缩放和旋转图片23原始图片数据23System.Drawing.Bitmap23TIFF和CCITT24图片和其他对象24第二部分 其他文档格式25第七章 XML和 (X)HTML25第八章 RTF文件25RTF包25创建一个RTF文档25不支持的特性26RTF中扩展的页眉和页脚26第三部分 iText的高级应用27第九章 字体27TrueType字体应用27TruType字体集合的应用28第十章 图象和文本的绝对位置28pdfContentByte28简单图形29文本29模板(Form xObjects)30分栏31PdfTable32颜

3、色(SpotColors)和图案(Patterns)33第十一章 本地和异地转向、目标和概要33本地转向33异地转向33第十二章 页面和表格事件34前 言PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下:StreamWriter pPDF=new StreamWriter(filePath);ArrayList xRefs=new ArrayList();float yPos =0f;long streamStart=0;long stream

4、End=0;long streamLen =0;string strPDFMessage=null;/PDF文档头信息strPDFMessage=%PDF-1.1n;ConvertToByteAndAddtoStream(strPDFMessage);xRefs.Add(mPDF.Length);strPDFMessage=1 0 objn;ConvertToByteAndAddtoStream(strPDFMessage);strPDFMessage=n;ConvertToByteAndAddtoStream(strPDFMessage);strPDFMessage=streamn;Conv

5、ertToByteAndAddtoStream(strPDFMessage);看了上面的制作办法,我眼镜都摔坏了三幅,如果用上面这样原始的办法能制作出满意的PDF文件,那一定是天才所为。后来,我从一个网站(网址:http:/ 打开VS2003;2、 单击菜单“文件”“新建”“项目”,在项目类型中选择“Visual C#项目”,在模板中选择“控制台应用程序”,输入文件名称如“MakePdf”,指定好存放路径,然后点确定按钮;3、 在“解决方案资源管理器”中右键单击“引用”,从弹出的菜单中选择“添加引用”,在“.NET”选项夹中选择“浏览”,添加前面提到的两个应用,如下图:4、 在代码窗口顶部添加

6、两个引用:using iTextSharp.text;using iTextSharp.text.pdf;至此,准备工作完毕。第一部分 iText的简单应用第一章 创建一个Document利用iText五步创建一个PDF文件:helloword。第一步,创建一个 iTextSharp.text.Document对象的实例:Document document = new Document();第二步,为该Document创建一个Writer实例:PdfWriter.getInstance(document, new FileStream(Chap0101.pdf, FileMode.Create

7、);第三步,打开当前Documentdocument.Open();第四步,为当前Document添加内容:document.Add(new Paragraph(Hello World);第五步,关闭Documentdocument.Close();完整的代码见示例代码0101。在例中,不难看出,制作一个PDF文件是非常简单的。注:如果你将例中“document.Add(new Paragraph(Hello World);”中的字符串“Hello Word”换成中文,如“这是我的第一个PDF文件”,产生的结果一定让你大失所望,因为生成的PDF文件中并没有将中文显示出来,不要担心,在第9章中要

8、专门讲解字体问题,中文显示也就迎刃而解了,如果不能正确显示中文,也就没有必要翻译本文了。下面对这几步做详细介绍。第一步 创建一个Document实例:iTextSharp.text.Document-object共有三个构造函数:public Document();public Document(Rectangle pageSize);public Document(Rectangle pageSize,int marginLeft,int marginRight,int marginTop,int marginBottom);第一个构造函数以A4页面作为参数调用第二个构造函数,第二个构造函数

9、以每边36磅页边距为参数调用第三个构造函数u 页面尺寸:你可以通过指定的颜色和大小创建你自己的页面,示例代码0102创建一个细长的浅黄色背景的页面:Rectangle pageSize = new Rectangle(144, 720);pageSize.BackgroundColor = new Color(0xFF, 0xFF, 0xDE);Document document = new Document(pageSize);通常,你不必创建这样的页面,而可以从下面页面尺寸中选择:A0-A10, LEGAL, LETTER, HALFLETTER, _11x17, LEDGER, NOTE

10、, B0-B5, ARCH_A-ARCH_E, FLSA 和 FLSE大多数情况下使用纵向页面,如果希望使用横向页面,你只须使用rotate()函数:Document document = new Document(PageSize.A4.rotate();详细代码见示例代码0103。u 页边距:当创建一个文件时,你还可以定义上、下、左、右页边距:Document document = new Document(PageSize.A5, 36, 72, 108, 180); 在示例代码0104中你可以看到该文档有一个0.5英寸的左边距和1英寸的右边距,上边距为1.5英寸,下边距为2.5英寸。说

11、明:当创建一个矩形或设置边距时,你可能希望知道该用什么度量单位:厘米、英寸或象素,事实上,默认的度量系统以排版单位磅为基础得出其他单位的近似值,如1英寸=72磅,如果你想在A4页面的PDF中创建一个矩形,你需要计算以下数据:21 厘米 / 2.54 = 8.2677 英寸8.2677英寸* 72 = 595 磅29.7 厘米 / 2.54 = 11.6929 英寸11.6929英寸* 72 = 842 磅默认边距为36磅即半英寸。如果你修改了页面尺寸,仅仅影响到下一页,如果你修改了页边距,则影响到全部,故慎用。关于页面的初始值,请参考第三步。第二步 创建Writer实例一旦创建了documen

12、t,我们可以创建该文档的多个Writer的实例,所有这些Writer实例均继承自抽象类“iTextSharp.text.DocWriter”。同时还有另外一种情况,你可以用iTextSharp.text.pdf.PdfWriter产生文档PDF文件,如果你想创建一个TeX文档,你可以使用iTextSharp.text.TeX.TeXWriter包。Writer类的构造函数是私有的,你只能通过下面的方法创建一个实例:public static xxxWriter getInstance(Document document, Stream os);(xxx 是 Pdf 或 Xml)你可以通过下面的

13、方法创建一个实例:PdfWriter writer = PdfWriter.getInstance(document, new FileStream(Chap01xx.pdf);但是你几乎永远不会用到Writer实例(除非你想创建高级PDF或者希望用一些非常特殊的函数,如ViewerPreferences 或 Encryption)。所以通过下面的办法得到实例已经足够了: PdfWriter.getInstance(document, new FileStream(Chap01xx.pdf);在第一步中创建一个文档时,第一个参数意义不大,第二个参数可以是任何一种流,到目前为止我们一直使用System.IO.FileStream将Document写入文件中,示例代码0105用到了System.IO.MemoryStream(这不是一个独立的例子,你必须在Servlet Engine中测试这些代码。第

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号