您的位置:首页 > 其它

Spire.Pdf 的各种操作总结-------------学习笔记

2016-11-29 14:57 363 查看
首先,从这下载它的免费版: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), 10, 10);
//Save pdf file.
doc.SaveToFile("MyFirstPDF.pdf");
doc.Close();


 

以上代码创建了一个单页的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 instance
PdfDocument doc = new PdfDocument();
//load html from URL
string url = "http://www.google.com";
var thread = new Thread(() =>

{

    doc.LoadFromHTML(url, false, true, true);

 

});
//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链接。

 

PDF到XPS的转换:

 

XPS,是另外一个Microsoft在2006年开发的流行文件格式。 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();
 



     

XPS到PDF的转换:
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。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: