




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/1C#创建、读取PDF文档C#创建、读取PDF文档生成PDF文档我们通常可以通过文档转换的形式来得到想要的PDF,但我们也可以通过最直接的方式来创建PDF文档,由此本篇文章将介绍C#如何来创建带图、文元素的PDF文档。
同理,对于需要读取PDF文档的情况,我们也可以分情况来读取想要的文档元素(文本、图片)。
在下面的示例中将做详细介绍。
示例要点梳理:
一、创建PDF文档(可支持中文)1.写入文本(包括页边距、字体、字号等设置)2.绘入图片二、读取PDF文档1.读取文本读取全部文本读取指定区域文本2.读取图片使用工具:
FreeSpire.PDFfor.NET4.3(最新免费版)注:
在编辑代码前引用Spire.PDF.dll,dll文件可在安装路径下的Bin文件夹中获取。
一、创建PDF文档C#usingSpire.Pdf;usingSpire.Pdf.Graphics;usingSystem.Drawing;namespaceCreatePDF_PDF{classProgram{staticvoidMain(string[]args){//初始化一个PdfDocument类实例PdfDocumentdocument=newPdfDocument();//声明PdfUnitConvertor和PdfMargins类对象PdfUnitConvertorunitCvtr=newPdfUnitConvertor();PdfMarginsmargins=newPdfMargins();//设置页边距margins.Top=unitCvtr.ConvertUnits(2.54f,PdfGraphicsUnit.Centimeter,PdfGraphicsUnit.Point);margins.Bottom=margins.Top;margins.Left=unitCvtr.ConvertUnits(3.17f,PdfGraphicsUnit.Centimeter,PdfGraphicsUnit.Point);margins.Right=margins.Left;//新添加一个A4大小的页面PdfPageBasepage=document.Pages.Add(PdfPageSize.A4,margins);//自定义PdfTrueTypeFont、PdfPen实例,设置字体类型、字号和字体颜色PdfTrueTypeFontfont=newPdfTrueTypeFont(newFont(楷体,11f),true);PdfPenpen=newPdfPen(Color.Black);//调用DrawString()方法在指定位置写入文本stringtext=(《蝶恋花送春》\n楼外垂杨千万缕,欲系青春,少住春还去。
犹自风前飘柳絮,随春且看归何处?\n绿满山川闻杜宇,便作无情,莫也愁人苦。
把酒送春春不语,黄昏却下潇潇雨。
);page.Canvas.DrawString(text,font,pen,15,13);//加载图片,并调用DrawImage()方法在指定位置绘入图片PdfImageimage=PdfImage.FromFile(image1.jpg);floatwidth=image.Width*0.55f;floatheight=image.Height*0.55f;floaty=(page.Canvas.ClientSize.Width-width)/3;page.Canvas.DrawImage(image,y,60,width,height);//保存并打开文档document.SaveToFile(PDF创建.pdf);System.Diagnostics.Process.Start(PDF创建.pdf);}}}创建结果:
这里水印以参二、测试里创建PDF文印、表格、页参见以下博客C#添加PDC#创建PD、读取试文档:
文档,Spire.P页眉页脚、页客:
DF水印DF表格PDF文档DF支持直接页码等操作,档接生成PDF文这里示例代文档并同时实代码以添加文实现添加文本文本、图片为本、图片、图为例,有需形、要可1.1.1读C#usinusinusinusinname{取读取PDF文读取全部文ngSpire.PdfngSystem;ngSystem.IOngSystem.TeespaceExtraclassProgr{static{//Pddo//St//fo{}//文本本f;O;ext;actText_PDFramvoidMain(实例化PdfDofDocumentdc.LoadFromF实例化一个SringBuilder遍历文档所有reach(PdfPcontent.A将提取到的文string[]arocument类对象doc=newPdFile(sampleStringBuildercontent=有PDF页面,提PageBasepagAppend(page.文本写为.txtrgs)象,并加载PDdfDocument()e.pdf);er对象newStringB提取文本geindoc.PaExtractTextt格式并保存到DF文档);Builder();ages)t());到本地路径}读取1.2C#usinusinusinusinname{StFiSy}}取结果:
读取指定区ngSpire.PdfngSystem.IOngSystem.TengSystem.DrespaceExtraclassProgr{static{//Pdpd//Pd//stringfileNale.WriteAllstem.Diagno区域文本f;O;ext;rawing;actText1_PDFramvoidMain(创建PdfDocufDocumentpf.LoadFromF获取PDF第一fPageBasep从第一页的指ringtext=ame=获取文Text(fileNaostics.ProceFstring[]arument类实例,pdf=newPdFile(sample页page=pdf.P指定矩形区域=page.Extra文本.txt;ame,contentess.Start(获rgs)并加载PDF文dfDocument()e.pdf);Pages[0];域内提取文本actText(newt.ToString()获取文本.txt文档);RectangleF));t);(50,50,5000,170));}读取(此2.C#usinusinusinname{//StsbFiSy}}取结果此时读取的就只取读取PDF图ngSpire.PdfngSystem.CongSystem.DrespaceExtraclassProgr{static{//Pddo保存文本到.ringBuilder.AppendLinele.WriteAllstem.Diagno只是指定区域图片f;ollections.Grawing;actImages_PDramvoidMain(创建一个PdffDocumentdc.LoadFromFtxt文件,并rsb=newSe(text);Text(Extraostics.Proce域内的文本)Generic;DFstring[]arfDocument类对doc=newPdFile(sample并打开文档StringBuildeact.txt,sbess.Start(E(此时读取的rgs)对象,加载PDdfDocument()e.pdf);er();b.ToString()Extract.txt的就只是指定DF测试文档);)););区域内的文本)//声明List类对象ListImageListImage=newListImage();//遍历PDF文档所有页面for(inti=0;idoc.Pages.Count;i++){//获取文档所有页,并提取页面中的所有图片PdfPageBasepage=doc.Pages[i];Image[]images=page.ExtractImages();if(images!=nullimages.Length0){ListImage.AddRange(images);}}//将获取到的图片保存到本地路径if(ListImage.Count0){for(inti=0;iListImage.Count;i++){Imageimage=List
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年青海省安全员-B证考试题库及答案
- 2025-2030年中国电热水器产业市场发展前景与投资趋势分析报告
- 长春工业大学人文信息学院《BM安装工程计量》2023-2024学年第二学期期末试卷
- 南昌理工学院《现代控制》2023-2024学年第二学期期末试卷
- 昆明幼儿师范高等专科学校《金融学前沿动态》2023-2024学年第二学期期末试卷
- 信阳农林学院《台港暨海外华文文学研究》2023-2024学年第二学期期末试卷
- 西安体育学院《大数据机器学习》2023-2024学年第二学期期末试卷
- 潍坊工商职业学院《机器学习实验》2023-2024学年第二学期期末试卷
- 广东信息工程职业学院《UML及形式化建模》2023-2024学年第二学期期末试卷
- 山西旅游职业学院《化工原理(Ⅰ)》2023-2024学年第二学期期末试卷
- 罗森便利店QSC标准课件讲义
- 售后服务的流程图
- 读《读懂孩子》读书心得体会
- 《劳动合同法》普法宣传资料
- 二年级下册科学教案-2.3科技产品体验会 大象版
- 退役军人优待证申领表
- Q∕SY 19001-2017 风险分类分级规范
- 劳务分包项目经理岗位职责
- 幼儿绘本故事:奇怪的雨伞店
- 钢琴基础教程教案
- 糖基转移酶和糖苷酶课件(PPT 111页)
评论
0/150
提交评论