- 浏览: 769311 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (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 1591http://www.360doc.com/content/1 ... -
jenkins
2013-04-15 10:54 798http://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 944C# List和String互相转换 (2011-06- ... -
.net mysql-connector-net
2012-10-19 11:10 978引用DLL引用 mysql-connector-net包中的M ... -
c# 操作mysql
2012-10-19 10:21 900using System;using System.Confi ... -
c# DataTable.copy .clone
2012-10-17 18:17 4091C# DataTable.Copy()和.Clone()的使用 ... -
C#中避免相同MDI子窗口重复打开的方法(转)
2012-10-17 13:40 1106方法一: 直接检测 ... -
C# 中使用JSON - DataContractJsonSerializer
2012-10-11 14:47 666http://www.cnblogs.com/coderzh/ ... -
论坛id
2012-07-09 11:29 0bbs.chinaunix.net ---unixfanss ... -
Intel-VT 技术详解
2012-07-06 14:41 1576Intel-VT 技术详解 ... -
号码段
2012-06-29 11:24 907中国3G号码段:中国联通185,186;中国移动188,187 ... -
【转】使用xmanager4.0 远程桌面管理redhat 5.5
2012-05-11 15:47 1889Xmanager是一个远程连接工具,里面最常用的有Xbrows ... -
.NET WHERE子句用途
2012-05-04 14:52 1491where 子句用于指定类型约束,这些约束可以作为泛型声明 ... -
c#泛型
2012-05-04 14:51 1023http://hjf1223.cnblogs.com/arch ... -
Windows Server 2008 R2:创建和加入域
2012-04-23 09:27 2406转自:http://www.ithov.com/s ... -
输出到控制台
2012-03-26 17:20 857c#:Console.Out.WriteLine(" ...
相关推荐
使用C#对itextsharp进行使用,本样例将两个图片创建到了PDF文件。并在程序中对PDF文件进行了静默打印,不要求用户安装pdf阅读器,
用itextsharp输出PDF文档,支持用XML定义文档,可定义多个数据源,简单的表达式
iTextSharp转换为pdf,不依赖于office的COM组件,解决的转pdf中中文字符不显示的问题。
iTextSharp 是用来生成 PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 HTML 打印的效果很不理想。最后,他发现,使用 PDF ...
C# itextsharp.dll创建生成PDF文档源码实例
基于ItextSharp的开源PDF加密Demo,亲测可用
itextsharp操作html转pdf,简单示例,中文也能正常转换。
C#利用iTextSharp 5.5 对PDF文件进行电子盖章,可读取USB电子证书,项目用VS2017打开,需要.net 2.0支持; 项目运行后盖章时弹出对话框,可选择本机上所有证书,包括USB电子证书。
利用iTextSharp第三方开源代码,很方便的生成pdf文件,包括图片、格式排版。-Use iTextSharp third-party open-source, it is convenient to generate the pdf files, including images, format, layout.
iTextSharp开源PDF出处理工具 希望对大家有帮助 哈哈哈哈
利用iTextSharp组件创建、操作PDF,简单、方便、快捷
C#版本Itextsharp根据模板导出pdf报表
通过使用itextsharp插件生成pdf文件
PDF 读写类库, 不需要安装注册, 直接引用就可以使用了.
iTextSharp的中文使用说明,包括:第一部分 iText的简单应用(创建、区域、图形、表格),第二部分 其他文档格式(XML、RTF),第三部分 iText的高级应用(字体、位置、模板、转向)等。
ITextSharp教程用C#制作PDF复杂表格表单(报名表,包括照片)。步骤、源代码。非常详细。
itextsharp和Spire pdf打水印例子 带dll
使用iTextSharp.pdf进行数字签名的demo,网上资料较少,我搜索的一个demo,然后进行 了二次修改
iTextSharp使用手册pdf中文版 第一章 创建一个 Document 利用 iText 五步创建一个 PDF文件: helloword 。 第一步,创建一个 iTextSharp.text.Document 对象的实例: Document document = new Document(); 第二步,...
在.NET平台中操作生成PDF的类库有很多如常见的有iTextSharp、PDFsharp、Aspose.PDF等,今天我们分享一个用于生成PDF文档的现代开源.NET库:QuestPDF,本文将介绍QuestPDF并使用它快速实现发票PDF文档生成功能。...