网站导航
:
网学
原创论文
原创专题
网站设计
最新系统
原创论文
论文降重
发表论文
论文发表
UI设计定制
论文答辩PPT格式排版
期刊发表
论文专题
最新论文
推荐专题
热门论文
论文专题
网站首页
论文模板
设计资源
程序设计
编程文档
营销学习
设计下载
参考使用
网学资源
网络学习
学习知识
交易代码
关于网学
安全工程
自动化
保险
表演
财务管理
参考选题
论文选题-查重参考论文
参考论文大全
电气工程及其自动化
电子论文
电子信息工程
电子商务
法律
法学
工程管理
公共关系学
公共事业管理
公路工程
公路交通运输
工商管理
广告学
国际经济与贸易
汉语国际教育
汉语言文学
环境科学与工程
化学
会计学
护理学
交通运输
教育管理
教育研究生
经济学
金融
计算机科学与技术
计算机应用
酒店管理
机械电子工程
机械论文
机械设计制造及其自动化
论文查重
旅游管理
python开发
生物工程
环境工程
数字媒体技术
ios开发
工程造价
家庭教育
农学
家政学
原创检测通过
期刊发表方法
当前位置:
网学
>
设计资源
>
.Net编程
> 正文
使用HttpHandler解析并在网页中展示PDF文档内容
论文降重修改服务、格式排版等
获取论文
论文降重及排版
论文发表
相关服务
下载PDFBox类库
前言
如果我们想将服务端的PDF文档内容展示给客户端,往往会通过URL直接访问的方式。这样一来,PDF文档就会毫无保留的保存到客户端去,通过浏览器的PDF插件,客户端可以随意拷贝PDF的副本。(如下图)
本文通过HttpHandler和开源控件PDFBox来对PDF文档进行访问控制,只向客户端解析并展示PDF的内容而非PDF文件本身。
PDF解析
目前有许多PDF解析组件,国内比较常用的是iTextSharp,该控件早期从JAVA移植过来,完全支持.NET平台,在创建PDF文档方面非常灵活易用。然而在读取解析PDF时却显得力不从心,只有少数复杂难用的类可以让我们读取PDF。故不适合本案。
PDFBox在此方面表现却非常突出,同样,它也是从java平台移植过来的, 常用来作为Lucene的PDF索引器。目前,它的开源项目中已经包含了通过IKVM.NET(IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework.)封装,而支持.NET的组件。
PDFBox对PDF的读取解析非常简单,只用如下代码即可完成:
private static string parseUsingPDFBox(string filename)
{
PDDocument doc = PDDocument.load(filename);
PDFTextStripper stripper = new PDFTextStripper();
return stripper.getText(doc);
}
故我们选取PDFBox作为PDF解析器。
编写HttpHandler
接下来,我们新建一个类库项目,在其中创建PDFHandler类,实现IHttpHandler接口,用来作为.pdf文件的handler。
主要完成的步骤如下:
1. 为类库和网站添加如下引用:
PDFBox-0.7.2.dll
IKVM.GNU.Classpath.dll
并将下面两个类库也复制到网站的Bin文件夹中:
FontBox-0.1.0-dev.dll
IKVM.Runtime.dll
2. 编写PDFHandler类:
点击展开
using
System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using org.pdfbox.pdmodel;
using org.pdfbox.util;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.IO;
namespace LanceZhang.HTTP
{
public class PDFHandler:IHttpHandler
{
IHttpHandler Members
#region IHttpHandler Members
public bool IsReusable
{
get
{ return true; }
}
public void ProcessRequest(HttpContext context)
{
//获取请求的文件路径,如C:\www\a.pdf
string path = context.Request.MapPath(context.Request.Path);
//创建PDF实体和文字解析器
PDDocument doc = PDDocument.load(path);
PDFTextStripper stripper = new PDFTextStripper();
//创建一个TextBox用来显示PDF内容
TextBox tb = new TextBox();
tb.Style.Add("width","100%");
tb.Style.Add("height", "100%");
tb.TextMode = TextBoxMode.MultiLine;
tb.Text=stripper.getText(doc);
//将TextBox render出来
context.Response.Write(RenderControlAsString(tb));
}
public string RenderControlAsString(Control ctl)
{
StringWriter sw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(sw);
ctl.RenderControl(writer);
return sw.ToString();
}
#endregion
}
}
部署HttpHandler
1. 编码完成后,我们编译Handler类库项目,并添加网站对该项目的引用。
2. 要使客户端对*.pdf文件的请求被handler处理,我们还需要在web.config中配置刚刚编写好的handler:
<system.web>
<httpHandlers>
<add verb="*" path="*.pdf" type="LanceZhang.HTTP.PDFHandler,LanceZhang.HTTP"/>
</httpHandlers>
</system.web>
3. 这时,使用Visual Studio自带的ASP.NET Deployment Server已经可以成功运行程序了。然而,如果将网站部署到IIS中,我们还需要对IIS的应用程序配置做出修改,在程序映射中,使用aspnet_isapi.dll来处理.pdf文件:
OK,接下来启动IIS,浏览“CardSpace.pdf”文件,我们就可以得到下面的效果:
上一篇资讯:
基于.NET3.5WebService的JSON扩展应用
下一篇资讯:
对string类型和stringBuilder类型的研究
相关资讯
相关文章
对string类型和stringBuilder类型的研究
asp.net控件开发基础示例(3)-自定义控件事件处理
把图片保存到数据库的实现
C#实现超酷的图像效果(附源码)
C#中的泛型
相关专题
WinForm窗体之间交互的一些方法
VS中创建自定义SQLRule
三种方法在Infopath中实现数据有效性验证
如何使用和开发自定义配置节
C#获得当前文件夹内所有文件的名称,大小,类型,属
网学推荐
·
原创论文的写法
·
论文数据图表制作
·
论文排版通过检测检测
·
提供系统开发和运行服务
·
提供原创参考资料
·
档案托管服务
·
原创参考论文导航
·
查重服务维普检测低于30%
·
我们提供原创参考论文和原创的参
·
原创的论文资料参考节省时间!
·
论文格式排版 格式核对!
·
UI设计定制、界面设计
·
程序和网站等UI设计定制!
·
原创参考论文参考定制!
·
职称和论文发表,可联系业务我们
·
本科毕业设计(论文)答辩指南
·
程序制作专家
原创论文
·
财务管理
·
参考选题
·
论文选题-查重参考论文
·
参考论文大全
·
电气工程及其自动化
·
电子论文
·
电子信息工程
·
电子商务
·
工程管理
·
公共关系学
·
公共事业管理
·
公路工程
·
公路交通运输
·
工商管理
·
广告学
·
家政学
文章排行榜
·
自然框架的源代码、Demo、数据库、
·
WebService身份验证
·
不要迷失在技术的海洋中
·
.net完美操作cookies
·
取出文本中的图片地址
·
谷歌眼中的搜索未来
·
GridView显示隐藏某一列
·
谈谈关于MVP模式中V-P交互问题【附
·
ASP.NET网站预编译概述
·
详解.net内存管理
·
json教程之C#开发json解析类
·
用FCKEditor编辑器上传图片、FLASH
·
C#调用WebService时的身份验证
·
WinForm窗体之间交互的一些方法
·
VS中创建自定义SQLRule
·
三种方法在Infopath中实现数据有效
·
如何使用和开发自定义配置节
·
C#获得当前文件夹内所有文件的名称
设为首页
|
加入收藏
|
网学首页
|
原创论文
|
计算机原创
版权所有 网学网 [
Myeducs.cn
] 您电脑的分辨率是
像素
Copyright 2008-2020
myeducs.Cn
www.myeducs.Cn
All Rights Reserved
湘ICP备09003080号
常年法律顾问:王律师