- 浏览: 793924 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (417)
- ASP.NET MVC (18)
- WEB基础 (24)
- 数据库 (69)
- iPhone (20)
- JQuery (3)
- Android (21)
- UML (8)
- C# (32)
- 移动技术 (19)
- 条码/RFID (6)
- MAC (8)
- VSS/SVN (6)
- 开卷有益 (4)
- 应用软件 (1)
- 软件工程 (1)
- java/Eclipse/tomcat (61)
- 英语学习 (2)
- 综合 (16)
- SharePoint (7)
- linux (42)
- Solaris/Unix (38)
- weblogic (12)
- c/c++ (42)
- 云 (1)
- sqlite (1)
- FTp (2)
- 项目管理 (2)
- webservice (1)
- apache (4)
- javascript (3)
- Spring/Struts/Mybatis/Hibernate (4)
- 航空业务 (1)
- 测试 (6)
- BPM (1)
最新评论
-
dashengkeji:
1a64f39292ebf4b4bed41d9d6b21ee7 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
zi_wu_xian:
PageOffice操作excel也可以设置表格的行高列宽,并 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
wanggang0321:
亲,我在pptx(office2007以上版本)转pdf的时候 ...
JODConverter]word转pdf心得分享(转) -
xiejanee:
楼主:你好!我想请问下 你在代码中用DOMDocument* ...
Xerces-C++学习之——查询修改XML文档 (转)
转自www.th7.cn第七城市
操作 PDF 文档功能的相关开源项目探索—iTextSharp 和PDFBox
《类似Windows Search的文件搜索系统 》中介绍的文件检索方法是很不错的,但它里面对PDF 中的中文检索不支持,因为里面调用的iTextSharp不能很好地支持英文,PdfReader类的GetPageContent()方法无法正常返回中文字符,经我测试,并非简单的编码问题。所以,急需能够从PDF 中提取text功能。
我首先学习iTextSharp.dll 下载:http://sourceforge.net/projects/itextsharp/ 这里面有很多输出PDF 文档的简单例子(下载iTextSharp例子 ),在学习中发现,不支持中文内容输出。在网上搜索相关内容发现,原来是缺少字体库。有两种方法解决:
1.自己指定系统的字体库,创建PDF 中使用的字体。参见:http://unruledboy.cnblogs.com/Skins/ChinaHeart/Controls/archive/2005/08/30/225984.html
Document document = new Document(PageSize.A4,50, 50, 50, 50);
try
{
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("Chap11.pdf
", FileMode.Create));
//下面是创建PDF
文档加密的
//writer.SetEncryption(PdfWriter.STRENGTH40BITS,"654321", "654321", PdfWriter.AllowCopy);
document.Open();
//指定字体库,并创建字体
BaseFont baseFont = BaseFont.CreateFont(
"C:\\WINDOWS\\FONTS\\SIMHEI.TTF",
BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 9);
//指定输出内容的字体
document.Add(new Paragraph(" This document is Top Secret! ", font
));
document.Close();
}
catch (Exception de)
{
Console.WriteLine(de.StackTrace);
}
2.从http://sourceforge.net/projects/itextsharp/ 下载扩展字体库iTextAsianCmaps.dll 和iTextAsian.dll,支持亚洲字体。
下载界面如下:
/// <summary>
/// 创建中文字体(实现中文)
/// </summary>
/// <returns></returns>
public static iTextSharp.text.Font CreateChineseFont()
{
BaseFont.AddToResourceSearch("iTextAsian.dll");
BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");
//"STSong-Light", "UniGB-UCS2-H",
BaseFont baseFT=BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFT);
return font;
}
"UniGB-UCS2-H" "UniGB-UCS2-V"是简体中文。 "STSong-Light"是字体名称。BaseFont.EMBEDDED是将字体嵌入文档内。
其次,我接下来尝试在使用iTextSharp读对象类时,指定字体库,可是很遗憾没有相应方法。请参照:http://www.cnblogs.com/diction/articles/1120984.html (提取文本不支持中文)而且,即使有也很不灵活,因为你不可能预知PDF 文档中使用的字体,PDF 文档中可能有多种字体。后来,搜索网页相关信息发现:原来iTextSharp的操作PDF 文档优势是PDF 文档的创建。
需求是学习和工作的动力
我的原始目标是找到PDF 文档内容提取为文本的方法,我转向《How to parse PDF files》 该文章完整讲述了PDF 文档提取文本的方法和整个解决过程思路,我会单独转载该文章,希望不能访问国外网的网友也能看到。PDFBox的下载http://sourceforge.net/projects/pdfbox/files/ 下载解压后里面内容很丰富,
所有需要的dll都包含在Bin文件夹里面
"PDFBox is a Java PDF Library. This project will allow access to all of the components in a PDF document. More PDF manipulation features will be added as the project matures. This ships with a utility to take a PDF document and output a text file. "
PDFBox是个JAVA开源项目,里面使用IKVM.NET开源项目http://www.ikvm.net/ 支持JAVA类库在.NET中调用。
IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework . It includes the following components:
- A Java Virtual Machine implemented in .NET
- A .NET implementation of the Java class libraries
- Tools that enable Java and .NET interoperability
对IKVM.NET的学习,对以后在.NET下使用JAVA类库很有帮助,其实IKVM.Runtime.dll 就是封装了JAVA类库的运行环境。
需要添加的DLL有:FontBox-0.1.0-dev.dll、IKVM.GNU.Classpath.dll、IKVM.Runtime.dll、PDFBox-0.7.3.dll
PDFBox使用实例代码如下:请参照:http://www.cnblogs.com/wuhenke/archive/2010/04/16/1713949.html
private static string parseUsingPDFBox(string filename)
{
PDDocument doc = PDDocument.load(filename);
PDFTextStripper stripper = new PDFTextStripper();
return stripper.getText(doc);
}
PDFBox功能很强大,有时间值得好好学习一下。
参考:
http://www.codeproject.com/kb/cpp/ExtractPDFText.aspx?df=100&forumid=47947
http://www.codeproject.com/KB/string/pdf 2text.aspx
发表评论
-
项目中业务的一致性,完整性
2013-11-28 15:17 0a.一致性:A系统和主机都保留一份座位图数据,就容易导致两 ... -
excel根据列值调整行颜色
2013-04-23 16:43 1756http://www.360doc.com/content/1 ... -
jenkins
2013-04-15 10:54 853http://www.chineselinuxunivers ... -
日常note
2013-04-10 14:09 01.有时需要打开cmd窗口,来运行诸如bat程序,但是有时候 ... -
invoke
2013-03-15 15:53 0object Object.Invoke(Delegate ... -
JQuery的WebServices调用
2013-03-14 14:12 0http://blog.sina.com.cn/s/blog_ ... -
c# list和string
2012-10-26 15:16 990C# List和String互相转换 (2011-06- ... -
.net mysql-connector-net
2012-10-19 11:10 1027引用DLL引用 mysql-connector-net包中的M ... -
c# 操作mysql
2012-10-19 10:21 945using System;using System.Confi ... -
c# DataTable.copy .clone
2012-10-17 18:17 4145C# DataTable.Copy()和.Clone()的使用 ... -
C#中避免相同MDI子窗口重复打开的方法(转)
2012-10-17 13:40 1160方法一: 直接检测 ... -
C# 中使用JSON - DataContractJsonSerializer
2012-10-11 14:47 731http://www.cnblogs.com/coderzh/ ... -
论坛id
2012-07-09 11:29 0bbs.chinaunix.net ---unixfanss ... -
Intel-VT 技术详解
2012-07-06 14:41 1632Intel-VT 技术详解 ... -
号码段
2012-06-29 11:24 960中国3G号码段:中国联通185,186;中国移动188,187 ... -
【转】使用xmanager4.0 远程桌面管理redhat 5.5
2012-05-11 15:47 1945Xmanager是一个远程连接工具,里面最常用的有Xbrows ... -
.NET WHERE子句用途
2012-05-04 14:52 1533where 子句用于指定类型约束,这些约束可以作为泛型声明 ... -
c#泛型
2012-05-04 14:51 1070http://hjf1223.cnblogs.com/arch ... -
Windows Server 2008 R2:创建和加入域
2012-04-23 09:27 2456转自:http://www.ithov.com/s ... -
输出到控制台
2012-03-26 17:20 937c#:Console.Out.WriteLine(" ...
相关推荐
接下来,PDFBOX是Apache软件基金会的一个开源项目,它提供了一系列API来处理PDF文档。PDFBOX的功能包括创建、编辑、显示PDF文档,以及将PDF转换为其他格式,如图片。在PDF转图片的过程中,PDFBOX扮演了关键角色。 ...
1. **PDF文档生成**:PDFBox提供了API,使得开发者能够创建新的PDF文档,添加页面,设置页面布局,插入文本和图像,并对文档进行排版。 2. **PDF文档解析**:可以读取已存在的PDF文档,提取文本、图像、元数据等...
本篇文章将详细介绍如何使用C#结合PDFBox库来解析PDF文档中的文字和图片。 首先,你需要将PDFBox库引入到C#项目中。这通常通过NuGet包管理器完成,搜索并安装相关的.NET包装,如PDFBox.NET。确保安装完成后,你可以...
它支持.NET Framework和.NET Core平台,涵盖了各种PDF处理场景,如创建、编辑、合并、分割、加密、解密PDF文档,以及添加水印、注释、表单等。在图片压缩方面,Spire.Pdf提供了高效的方法,可以调整图片质量,从而...
在IT领域,尤其是在软件开发中,C#是一种广泛使用的编程语言,它提供了强大的库和工具来处理各种任务,包括PDF文档的操作。PDF(Portable Document Format)是一种通用的文件格式,用于存储和分享文档,保持其原始...
以iTextSharp为例,这是一个开源的PDF库,可以创建、修改和处理PDF文档。使用iTextSharp,你可以创建新的PDF文档,添加页面,设置字体,插入文本,甚至绘制图形。例如,创建一个简单的PDF文档可以如下所示: ```...
在C#中生成PDF文档,我们可以使用开源库如iTextSharp或PDFsharp。iTextSharp适用于.NET Framework,而PDFsharp支持.NET Core。这两个库提供了创建PDF页面、添加文本、图形和图像的方法。例如,使用iTextSharp,你...
1. **pdfbox-app-1.6.0.dll**:这是主要的PDFBox应用层的DLL文件,它包含了处理PDF文档的主要功能。开发者可以通过这个库来实现读取、写入、修改PDF文档,以及其他如添加文本、图像、元数据等操作。 2. **IKVM....
- **PDFBox**:这是一个开源的Java库,可以用来读取、写入和操作PDF文档,如果你的WinForm应用是基于.NET与Java混合开发,PDFBox可以提供帮助。 - **iTextSharp**:这是.NET平台上的一个强大的PDF处理库,可以用于...
PDFBox是Apache软件基金会的一个开源项目,主要用于处理PDF文档,提供了读取、创建、修改PDF文档的功能。在.NET环境中,如果你需要与PDF交互,通常会寻找兼容的库,这个"pdfbox 1.3.1 dll .net版本"就是专门为.NET...
1. **PDFBox**:PDFBox是Apache软件基金会的一个开源项目,提供Java API用于读取、创建、修改和操作PDF文档。它支持提取文本、元数据,甚至可以处理PDF中的图像和注释。在C#环境中,可以通过 IKVM.NET 将Java库转换...
PDF文档通常是以页面为单位的,需要逐页处理。 - **转换为Word格式**:根据解析出的内容,使用Aspose.Words或Spire.PDF等库创建一个新的Word文档,并逐个添加元素。这可能涉及文本流的构建、样式应用、图像插入等...
iTextSharp是一个开源的PDF库,适用于.NET Framework和.NET Core,它提供了丰富的API来创建、修改和处理PDF文档。PDFsharp则是一个功能强大的库,用于生成、修改和合并PDF文档,同样支持.NET Framework和.NET Core。...
总结来说,这个"pdf转文本的exe文件"结合了PDFBox的PDF处理能力、百度OCR服务的高级文字识别以及iTextSharp的PDF操作功能,为用户提供了一种便捷的方式将PDF文档转换为可编辑的文本格式。这样的工具在学术研究、文档...
以iTextSharp为例,这是一个流行的PDF处理库,可以方便地创建、编辑和读取PDF文档。要生成PDF,你需要先安装iTextSharp库,然后通过创建PdfDocument对象,并添加PdfPage来构建PDF结构。在页面上添加文本和图形则可以...
iTextSharp是一个开源库,支持.NET框架,可以创建、修改和操作PDF文档。使用iTextSharp,开发者可以通过添加段落、设置字体、插入表格等方式构建PDF内容。PDFsharp则提供了更全面的功能,包括创建、合并、编辑和打印...
本篇文章将深入探讨如何使用Visual Studio 2017(VS2017)和C#编程语言将非扫描版PDF文档转换为文本。 首先,我们需要理解PDF到文本转换的基本原理。PDF文件结构复杂,包含了大量的元数据和布局信息。对于非扫描版...
2. **itextsharp.dll**:这是一个开源的PDF库,用于读取、创建、修改和解析PDF文档。iTextSharp是.NET版本的iText库,它提供了丰富的API来处理PDF文档,包括添加文本、图像、表单字段,以及对PDF进行签名和加密。你...
在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括与PDF文档相关的操作。本篇文章将详细探讨如何使用C#来生成PDF、读取PDF文本内容以及获取PDF内的图片。 首先,生成PDF是许多业务场景中的常见...