Spire.Pdf 的各种操作总结

简介: Spire.Pdf 的各种操作总结 简介  试验新产品总是给我带来许多挑战,当然这也是一个引进创新技术的好方法。在这里我要跟大家分享的是使用Spire.Pdf的过程,它是来自E-iceblue公司的轻便PDF程序库。

 Spire.Pdf 的各种操作总结

 

简介 

 

试验新产品总是给我带来许多挑战,当然这也是一个引进创新技术的好方法。在这里我要跟大家分享的是使用Spire.Pdf的过程,它是来自E-iceblue公司的轻便PDF程序库。

 

设计情节

 

我以前经常没事就搞搞PDFSpire.Pdf是用C# 写的PDF组件。他们自己声称:


pasting Spire.PDF for .NET  is a professional PDF component applied to creating, writing, editing, handling and reading PDF files without any external dependencies within .NET application. Using this .NET PDF library, you can implement rich capabilities to  create PDF files  from scratch or process existing PDF documents entirely through C#/VB.NET without installing Adobe Acrobat.

 

先决条件

 

首先,从这下载它的免费版:http://freepdf.codeplex.com/

 

安装下载的软件,结果你会得到两个dll文件(Spire.License.dll和 Spire.Pdf.dll),如下图所示在你的程序中添加他们的引用:

 

 

创建PDF并设置它的格式

 

创建PDF和使用Spire.Pdf一样简单。这就意味着,仅仅用Spire.Pdf写几行代码就可以实现了。参照以下代码:

 

 
// Create a pdf document.
PdfDocument doc =  new PdfDocument();
//  Create one page
PdfPageBase page = doc.Pages.Add();
// Draw the text
page.Canvas.DrawString( " Hello, I'm Created By SPIRE.PDF! ",
new PdfFont(PdfFontFamily.TimesRoman, 30f),
new PdfSolidBrush(Color.Black),  1010);
// Save pdf file.
doc.SaveToFile( " MyFirstPDF.pdf ");
doc.Close();

 

以上代码创建了一个单页的PDF文件

 

 

 现在我们在同一个PDF文件中再加点料,像边框啊,水印啦,再加一些有格式设置的图片。我为了让我这篇教程看上去比较简洁,就把所有代码附在了示例中。它是一个包含了所有代码的小型windows窗口程序,你可以从这里下载

 

转换成其它格式并设置相应的格式:

 

基本上每个程序员都被这类的需求困扰过。从一种格式转换成另一种格式在开发模式中是一件痛苦的事情。举例来说,现在有很多程序员会问如何把HTML页面转换为PDFSpire.Pdf对这个问题给出了简单的解决方法。不仅仅如此,SPIRE.PDF还提供了如下的转换:

 

  HTML To PDF

·         XPS to PDF

·         PDF to XPS

·         PDF to Image

 

HTMLPDF的转换:

 

我上面说的,这是几乎每个开发人员都需要的功能。用 Spire.Pdf的话,转换简直是飞一般的感觉。Spire.Pdf包含创建方法“LoadFromHTML”,它可以用URL做为参数而返回一个PDF文件。

// create PdfDocument instance
PdfDocument doc =  new PdfDocument();
// load html from URL
string url =  " http://www.google.com ";
var thread =  new Thread(() =>
{
    doc.LoadFromHTML(url,  falsetruetrue);
 
});
// set to single thread
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
// save to PDF document
doc.SaveToFile( " FromHTML.pdf ", FileFormat.PDF);
doc.Close();
System.Diagnostics.Process.Start( " FromHTML.pdf ");

 

从上面的几行代码中,你可以观察到我尝试从URL中创建一个PDF文件,只是一行叫做LoadFromHTML的方法就可以实现神奇的转换,下面几行为保存文件。下面在转换中有趣的事情就是SPIRE.PDF将链接地址的页面自动转换为PDF链接。

 

PDFXPS的转换:

 

XPS,是另外一个Microsoft2006年开发的流行文件格式。 Spire.Pdf也提供了将目标文件保存为XPS格式的选择。看下面代码, Spire.Pdf仅仅是加载了PDF文件并使用SaveToFile方法将文件保存为需要的格式。

 

// Input  pdf file
String file =  @" G:\FromHTML.pdf ";
// open pdf document
PdfDocument doc =  new PdfDocument();
doc.LoadFromFile(file);
// convert to xps file.
doc.SaveToFile( @" G:\PDFToXPS.xps ", FileFormat.XPS);
doc.Close();

 

     

XPSPDF的转换:

Spire.Pdf   也提供了上述方法的逆向转换,那就是从 XPS PDF 的转换,有所不同的是加载文件方法的不同。这里我们使用方法 LoadFromXPS 就可以了。


// open xps document
PdfDocument doc =  new PdfDocument();
doc.LoadFromXPS(file);
// convert to pdf file.
doc.SaveToFile( " XPSToPDF.pdf ");

 

Spire.Pdf使用枚举FileFormat,我们可以有4种格式的输出文件:DOC, HTML, PDF XPS

 

 


撷取PDF –PDF中撷取文本/图片

 

在平常工作中,我遇到过需要单独从PDF文件中撷取图片或文本的问题。

Spire.Pdf 也给出了简洁的解决方案。 做的很好的地方是,提供一个单行的代码就是调用“ that ”就搞定了。

 

// Create a pdf document.
PdfDocument doc =  new PdfDocument();
//  Load the PDF Document
doc.LoadFromFile( @" G:\sample.pdf ");
//  Image collection to hold
IList<Image> images =  new List<Image>();
//  Loop thru each pages
foreach (PdfPageBase page  in doc.Pages)
{
//  Check that page contains any images
if (page.ExtractImages() !=  null)
{
      foreach (Image image  in page.ExtractImages())
      {
         images.Add(image);
       }
 }
 }
// close the document
 doc.Close();
  // save image
int index =  0;
foreach (Image image  in images)
{
  String imageFileName = String.Format( " Image-{0}.png ", index++);
  image.Save(imageFileName, ImageFormat.Png);
}

 

在以上代码中图片被保存为png格式,输出界面如下图:

 

 

PDF中撷取文本也是很简单。每个编程人员的职业生涯都会面对的撷取。Spire.Pdf可以用以下代码来解决:

 

// Create a pdf document.
PdfDocument doc =  new PdfDocument();
//  Load the PDF Document
doc.LoadFromFile( @" G:\sample.pdf ");
//  String for hold the extracted text
StringBuilder buffer =  new StringBuilder();
foreach (PdfPageBase page  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。

目录
相关文章
|
6月前
|
前端开发
开发过程中遇到过的docx、pptx、xlsx、pdf文件预览多种方式
开发过程中遇到过的docx、pptx、xlsx、pdf文件预览多种方式
105 0
|
6月前
|
Web App开发 JavaScript 前端开发
网页VUE纯前端在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式
随着互联网技术的不断发展,越来越多的企业开始采用在线办公模式,微软Office Word 是最好用的文档编辑工具,然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的,如果可以实现Web在线预览编辑OffIce,肯定会还带来了更高效、便捷的办公体验,为我们的工作带来了更多可能性。
1357 0
|
前端开发 C#
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
|
3月前
|
开发框架 前端开发 JavaScript
利用Spire.Pdf实现PDF添加印章的操作
利用Spire.Pdf实现PDF添加印章的操作
|
6月前
|
Linux 数据安全/隐私保护 iOS开发
使用pdf2docx轻松将PDF转换成docx
使用pdf2docx轻松将PDF转换成docx
334 0
spire.doc渲染pdf时富文本处理
spire.doc渲染pdf时富文本处理
79 0
|
数据安全/隐私保护
PDF处理控件Spire.PDF常见问题解答
为方便使用者快速掌握和了解Spire.PDF,本文列举了PDF理控件Spire.pdf常见问题及解答欢迎下载最新版体验!
|
XML Java 数据格式
基于iTextSharp的PDF文档操作
  公司是跨境电商,需要和各种物流打交道,需要把东西交给物流,让他们发到世界各地。其中需要物流公司提供一个运单号,来追踪货物到达哪里?!   最近在和DHL物流公司(应该是个大公司)对接,取运单号的方式是调用对方提供的API,简单说,就是我们传一些发货地址和客户信息,要发的货物等,对方返回一个运单号和物流面单(就是我们淘宝快递上的面单)。
1616 0