Spire.Pdf 的各种操作总结
?Spire.Pdf 的各种操作总结 ? 简介? ? 试验新产品总是给我带来许多挑战,当然这也是一个引进创新技术的好方法。在这里我要跟大家分享的是使用Spire.Pdf的过程,它是来自E-iceblue公司的轻便PDF程序库。 ? 设计情节 ? 我以前经常没事就搞搞PDF。Spire.Pdf是用C# 写的PDF组件。他们自己声称: ? 先决条件 ? 首先,从这下载它的免费版:http://freepdf.codeplex.com/ ? 安装下载的软件,结果你会得到两个dll文件(Spire.License.dll和 Spire.Pdf.dll),如下图所示在你的程序中添加他们的引用: ? ?
创建PDF并设置它的格式 ? 创建PDF和使用Spire.Pdf一样简单。这就意味着,仅仅用Spire.Pdf写几行代码就可以实现了。参照以下代码: ?
? 以上代码创建了一个单页的PDF文件 ? ? ?现在我们在同一个PDF文件中再加点料,像边框啊,水印啦,再加一些有格式设置的图片。我为了让我这篇教程看上去比较简洁,就把所有代码附在了示例中。它是一个包含了所有代码的小型windows窗口程序,你可以从这里下载。 ? 转换成其它格式并设置相应的格式: ? 基本上每个程序员都被这类的需求困扰过。从一种格式转换成另一种格式在开发模式中是一件痛苦的事情。举例来说,现在有很多程序员会问如何把HTML页面转换为PDF?Spire.Pdf对这个问题给出了简单的解决方法。不仅仅如此,SPIRE.PDF还提供了如下的转换: ? ??HTML To PDF ·???????? XPS to PDF PDF to XPS ·???????? PDF to Image ? HTML到PDF的转换: ? 我上面说的,这是几乎每个开发人员都需要的功能。用?Spire.Pdf的话,转换简直是飞一般的感觉。Spire.Pdf包含创建方法“LoadFromHTML”,它可以用URL做为参数而返回一个PDF文件。
create?PdfDocument?instanceload?html?from?URL string?url?=?http://www.google.com"; var?thread?=?new?Thread(()?=> { ????doc.LoadFromHTML(url,?false,1)">true,1)">true); ? }); set?to?single?thread thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); save?to?PDF?documentFromHTML.pdf"); ? 从上面的几行代码中,你可以观察到我尝试从URL中创建一个PDF文件,只是一行叫做LoadFromHTML的方法就可以实现神奇的转换,下面几行为保存文件。下面在转换中有趣的事情就是SPIRE.PDF将链接地址的页面自动转换为PDF链接。 ? PDF到XPS的转换: ? XPS,是另外一个Microsoft在2006年开发的流行文件格式。?Spire.Pdf也提供了将目标文件保存为XPS格式的选择。看下面代码,?Spire.Pdf仅仅是加载了PDF文件并使用SaveToFile方法将文件保存为需要的格式。 ?
Input??pdf?file String?file?=?@"G:FromHTML.pdfopen?pdf?documentnew?PdfDocument(); doc.LoadFromFile(file); convert?to?xps?file.G:PDFToXPS.xps? ??? XPS到PDF的转换: Spire.Pdf?也提供了上述方法的逆向转换,那就是从XPS到PDF的转换,有所不同的是加载文件方法的不同。这里我们使用方法LoadFromXPS就可以了。
open?xps?documentnew?PdfDocument(); doc.LoadFromXPS(file); convert?to?pdf?file.XPSToPDF.pdf");
? 在Spire.Pdf使用枚举FileFormat,我们可以有4种格式的输出文件:DOC,HTML,PDF 和XPS。 ? ?
撷取PDF –从PDF中撷取文本/图片 ? 在平常工作中,我遇到过需要单独从PDF文件中撷取图片或文本的问题。 Spire.Pdf也给出了简洁的解决方案。它做的很好的地方是,提供一个单行的代码就是调用“that”就搞定了。?
?Load?the?PDF?Document doc.LoadFromFile(G:sample.pdf"); ?Image?collection?to?hold IList<Image>?images?=?new?List<Image>(); ?Loop?thru?each?pagesforeach?(PdfPageBase?page?in?doc.Pages) { ?Check?that?page?contains?any?imagesif?(page.ExtractImages()?!=?null) { ?????foreach?(Image?image?in?page.ExtractImages()) ??????{ ?????????images.Add(image); ???????} ?} ?} close?the?document ?doc.Close(); ?save?imageint?index?=?0; in?images) { ??String?imageFileName?=?String.Format(Image-{0}.png? 在以上代码中图片被保存为png格式,输出界面如下图: ? ?
从PDF中撷取文本也是很简单。每个编程人员的职业生涯都会面对的撷取。Spire.Pdf可以用以下代码来解决: ?
?String?for?hold?the?extracted?text StringBuilder?buffer?=?new?StringBuilder(); in?doc.Pages) { ????buffer.Append(page.ExtractText()); } doc.Close(); save?text String?fileName?=?TextInPdf.txt"; File.WriteAllText(fileName,?buffer.ToString()); buffer?=?null; 上面的程序片段就将文本提取出来并生成名为TextInPdf.txt的文本文档。结论 综上所述,换句话说,它用简单有效的方法处理PDF文件。SPIRE.PDF是一个很好的解决PDF 的API。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |