您的位置:首页 > 编程语言 > C#

C#操作PDF文档--PDFBox读取pdf文档,O2S.Components.PDFRender4NET生成缩略图

2014-11-19 19:40 561 查看
一、下载PDFBox

访问网址http://sourceforge.net/projects/pdfbox/



二、引用动态链接库

解压缩下载的PDFBox,找到其中的Bin目录,需要在项目中添加引用的dll文件有:

IKVM.GNU.Classpath.dll

PDFBox-0.7.3.dll

FontBox-0.1.0-dev.dll

IKVM.Runtime.dll

将以上4个文件引用到项目中,在文件中需要引入以下2个命名空间:

using org.pdfbox.pdmodel;

using org.pdfbox.util;

三、API的使用方法

using System.IO;

using System.Text;

using org.pdfbox.pdmodel;

using org.pdfbox.util;

namespace PDFReader

{

class Program

{

public static void pdf2txt(FileInfo pdffile, FileInfo txtfile)

{

PDDocument doc = PDDocument.load(pdffile.FullName);

PDFTextStripper pdfStripper = new PDFTextStripper();

string text = pdfStripper.getText(doc);

StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));

swPdfChange.Write(text);

swPdfChange.Close();

}

static void Main(string[] args)

{

pdf2txt(new FileInfo(@"D:\1.pdf"), new FileInfo(@"D:\1.txt"));

}

}

}

二、运用O2S.Components.PDFRender4NET.dll对PDF文档生成缩略图

代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using O2S.Components.PDFRender4NET;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

namespace O2S.Components.PDFRender4NET.pdf2image

{

public static class Program

{

public enum Definition

{

One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6, Seven = 7, Eight = 8, Nine = 9, Ten = 10

}

/// <summary>

/// 将PDF文档转换为图片的方法

/// </summary>

/// <param name="pdfInputPath">PDF文件路径</param>

/// <param name="imageOutputPath">图片输出路径</param>

/// <param name="imageName">生成图片的名字</param>

/// <param name="startPageNum">从PDF文档的第几页开始转换</param>

/// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>

/// <param name="imageFormat">设置所需图片格式</param>

/// <param name="definition">设置图片的清晰度,数字越大越清晰</param>

public static void ConvertPDF2Image(string pdfInputPath, string imageOutputPath,

string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat, Definition definition)

{

PDFFile pdfFile = PDFFile.Open(pdfInputPath);

if (!Directory.Exists(imageOutputPath))

{

Directory.CreateDirectory(imageOutputPath);

}

// validate pageNum

if (startPageNum <= 0)

{

startPageNum = 1;

}

if (endPageNum > pdfFile.PageCount)

{

endPageNum = pdfFile.PageCount;

}

if (startPageNum > endPageNum)

{

int tempPageNum = startPageNum;

startPageNum = endPageNum;

endPageNum = startPageNum;

}

// start to convert each page

for (int i = startPageNum; i <= endPageNum; i++)

{

Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);

pageImage.Save(imageOutputPath + imageName + i.ToString() + "." + imageFormat.ToString(), imageFormat);

pageImage.Dispose();

}

pdfFile.Dispose();

}

public static void Main(string[] args)

{

ConvertPDF2Image("D:\\1.pdf", "D:\\", "A", 1, 5, ImageFormat.Jpeg, Definition.One);

}

}

}

本文主要参考:/article/9560251.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: