用ITextSharp.dl如何读取复杂的bookmarks

问题描述

privatevoidbutton1_Click(objectsender,EventArgse){strings="";PdfReaderpdfr=newPdfReader("d:\sj.pdf");IList<Dictionary<string,object>>list=SimpleBookmark.GetBookmark(pdfr,pdfr.Catalog,true);foreach(Dictionary<string,object>iinlist){stringtitle=(string)i["Title"];string[]pagenum=((string)i["Page"]).Split('');s+=title.Substring(0,title.Length-1)+""+pagenum[0]+"n";}richTextBox1.Text=s;}

ITextSharp.dll当中的SimpleBookmark只能读取简单的bookmarks比如这种bookmark1bookmark2bookmark3bookmark4bookmark5bookmark6如果复杂一点,比如这种,就不行,不知道到有没有解决办法??bookmark1bookmark2bookmark3bookmark4bookmark5bookmark6

解决方案

本帖最后由 hqwjohn 于 2014-12-12 01:25:47 编辑
解决方案二:
c#使用itextsharp读取pdf文件的文本内容publicstringReadPdfFile(stringfileName){StringBuildertext=newStringBuilder();if(File.Exists(fileName)){PdfReaderpdfReader=newPdfReader(fileName);for(intpage=1;page<=pdfReader.NumberOfPages;page++){ITextExtractionStrategystrategy=newSimpleTextExtractionStrategy();stringcurrentText=PdfTextExtractor.GetTextFromPage(pdfReader,page,strategy);currentText=Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(currentText)));text.Append(currentText);}pdfReader.Close();}returntext.ToString();}
解决方案三:
感谢你的回复,但是你的回答似乎没有针对我提的问题
解决方案四:
usingMicrosoft.VisualBasic;usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Diagnostics;usingiTextSharp.text;usingiTextSharp.text.pdf;publicclassForm1{privatevoidButton1_Click(System.Objectsender,System.EventArgse){PdfReaderobjReader=default(PdfReader);Label1.Text="";objReader=newPdfReader("D:\梅英精選集.pdf");//讀取書籤Label1.Text+="書籤:"+ShowBookMark(SimpleBookmark.GetBookmark(objReader),0)+Constants.vbNewLine;objReader.Close();}publicstringShowBookMark(IList<Dictionary<string,object>>objBookMark,intintLevel){Dictionary<string,object>objItem;stringstrBookMark;stringstrSpace;strBookMark="";strSpace="          ";//空白字串用來取得內縮字元foreach(Dictionary<string,object>objItem_loopVariableinobjBookMark){objItem=objItem_loopVariable;strBookMark+=strSpace.Substring(0,intLevel)+objItem["Title"]+objItem["Page"].split("")(0)+Constants.vbNewLine;if(objItem.ContainsKey("Kids"))strBookMark+=ShowBookMark(objItem["Kids"],intLevel+1);//如果有子項目則遞迴呼叫ShowBookMark顯示書籤}returnstrBookMark;}}

时间: 2024-10-31 17:09:48

用ITextSharp.dl如何读取复杂的bookmarks的相关文章

PDF乱码求助

问题描述 PDF使用普通的复制黏贴到文本为乱码,使用Acrobat中的复制包含格式到文本中可以.对PDF进行一番后,认为这样应该是内嵌了字体,但是字体编码格式在我复制的时候无法解析或者类似的原因.现在使用iTextSharp和PDFbox读取文本内容都是乱码.http://www.thinksaas.cn/group/topic/327249/其中找到了一篇java版的PDFBox使用的解决方案.但是由于网上流传较多的是.7版本的PDFBox,高版本使用会出现错误,不会用.现在想问一下,读取PD

itextsharp读取pdf byte[]

问题描述 .Net,用itextsharp读取pdf文件后生成byte[],再Encoding.Getstring()得到字符串,如下:qBT0612TdETQq0.0375w2J0j10M[]0d36576m756576l75672.04l3672.04l36576lhWn0.80.80.8rg42576m750576l749.25575.25l42.75575.25lhf*42576m42.75575.25l42.75414.45l42413.7lhf*749.25414.45m42.754

通过 iTextSharp 实现PDF 审核盖章

最近需要做一个PDF自动审核盖章的工作,其实就是读取PDF,然后再最后一页加入一个审核章印图 片上去.看起来很简单,不过在开发过程中,还是遇到了一些问题,在这里记录一下. 主要遇到的问题是页面的旋转 和 内容的旋转 的分开的,需要分别操作. 准备工作需要下载 iTextSharp.dll 然后加入引用 using iTextSharp.text; using iTextSharp.text.pdf; string path = @"D:\28727_LOG001_FOLIOLE COMPANY

J2EE读取配置文件诡异现象

问题描述 配置文件中有关于图片路径的设置配置文件内容:headimg/CBush.jpg,www.baidu.com,百度,blongheadimg/bush.jpg,www.javaworld.com.tw/roller/caterpillar,BLOG,部落格headimg/CBush.jpg,twitter.com/catarpillar,WLGTwitter,Twitter读取文件内容代码:BufferedReader reader = null;ServletContext conte

用javascript读取xml文件读取节点数据_javascript技巧

下面代码是读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> <script type="text/javascript"> var objLength = null; var xmlHttp; var strurl = ""; function ajaxrequst() { if (window.ActiveXObject) { xmlHttp = new ActiveXO

【译】在Asp.Net中操作PDF – iTextSharp - 使用链接和书签

原文 [译]在Asp.Net中操作PDF – iTextSharp - 使用链接和书签      用户和PDF文档的交互可以通过锚(链接)和书签进行,接着我前面iTextSharp的系列文章,本篇文章主要讲通过iTextSharp创建的PDF中链接和书签的基础知识,你或许想复习一下之前的文章,如果你还没有阅读过之前的文章,那么:      在ASP.NET中创建PDF-iTextSharp起步      在Asp.Net中操作PDF - iTextSharp - 使用字体      在Asp.N

C#中怎么读取Struct(结构体)文件!!!!???大虾帮帮我啊。。。。。

问题描述 做项目需要读取一个.DAT文件,这个文件是别人给的,里面记录了一些调试需要用到的参数,是用结构体(Struct)写成的,用的是C++写的.....现在我拿到了这个.dat文件的结构,里面大致形式为(嵌套的结构体):structA{...structB{....structC{.....}}}好像用C++读取很容易,但我目前的软件都是用C#写的,只能在C#里面读了,这个要怎么读啊?网上找了一些资料,看上去好复杂,哪位大虾能详细的讲一下啊,谢谢!!!!还有,我曾经想过是否可以用C++写一个

使用ItextSharp产PDF完整操作

原文 使用ItextSharp产PDF完整操作  记得上回有写到用C#操作Excel(.net 4.0) 很多朋友说推荐用NPOI,的确,用微软自带的操作execl会有很大的问题.客户的主机不愿意安装excel, 这时我才意识到用自带组件完全是不行的,我本来准备改用NPOI组件,但是这时客户提出为了安全(数据安全),改用后台产PDF. 这就有了本文中ITextSharp的用法 本文介绍了基本全套的用法,包括页眉,页首,表格的用法,但是还是有很多问题没有处理好,只是把我已经ok的地方拿出来给一些需

JQuery读取XML文档并显示数据例子

1.这里得注意$.ajax的属性DataType:'XML' 2.Java中得Out.println中response.setContentType("text/xml");也必须是XML格式的 3.解析XML文档与解析DOM一样,也可以用find().children()等函数来解析和用each()方法来进行遍历,另外也可以用text()和attr()方法来获取节点文本和属性. 1.直接读取xml文档  代码如下 复制代码 <?xml version="1.0&quo