下面的代码自己本人没有尝试过,只是用来做记录,用到时候再说!

最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码、可以成功的实现导出pdf文件。

在编码前需要在网上下载个itextsharp.dll,此程序集是必备的。楼主下载的是5.0版本,之前下了个5.4的似乎不好用。

下载之后直接添加引用。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Webpdf.aspx.cs" Inherits="Web导出pdf.Webpdf" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
输入文字测试:<input type="text" name="name" value="" runat="server" id="txtpdf"/> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
</body>
</html> //上述代码乃前台页面,两个控件即可。下面即对应的后台代码
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO; namespace Web导出pdf
{
public partial class Webpdf : System.Web.UI.Page
{
static DataTable datatable = new DataTable("testpdf");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataRow dr=null;
//建立Column例,可以指明例的类型,这里用的是默认的string
datatable.Columns.Add(new DataColumn("编号"));
datatable.Columns.Add(new DataColumn("文件名"));
for (int i = ; i < ; i++)
{
dr = datatable.NewRow();
dr[] = System.Convert.ToString(i);
dr[] = "测试导出pdf文件" + System.Convert.ToString(i);
datatable.Rows.Add(dr); } }
} protected void Button1_Click(object sender, EventArgs e)
{
try
{
Document document = new Document();
PdfWriter.GetInstance(document, new FileStream(Server.MapPath("Test.pdf"), FileMode.Create));
document.Open();
BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font fontChinese = new iTextSharp.text.Font(bfChinese, , iTextSharp.text.Font.NORMAL,new BaseColor(,,)); //所输的内容按设置的字体到PDF文件
document.Add(new Paragraph(this.txtpdf.Value.ToString(), fontChinese));
//输出图片到PDF文件
iTextSharp.text.Image jpeg01 = iTextSharp.text.Image.GetInstance(Server.MapPath("Image/001.png"));
document.Add(jpeg01); iTextSharp.text.Image jpeg02 = iTextSharp.text.Image.GetInstance(Server.MapPath("Image/userIcon-1.png"));
document.Add(jpeg02);
PdfPTable table = new PdfPTable(datatable.Columns.Count);
for (int i = ; i < datatable.Rows.Count; i++)
{
for (int j = ; j < datatable.Columns.Count; j++)
{
table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), fontChinese));
}
}
document.Add(table);
document.Close();
Response.Write("<script>alert('导出成功!');</script>");
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
}
}
复制代码 注意代码中的两个image图片,自己可在项目中随意添加对应的。如果上述代码全部写完发现不报错那么恭喜你可以成功导出。 如果出现有的类异常失败无法找到该类,那么你需要引用此文件即可。至于每个人需要导出不同的样式pdf内容就要根据需求写相对应的代码了。
导出成功PDF即存在项目文件夹中。 FROM:http://www.cnblogs.com/hmYao/p/5842958.html

pdf文件的导入导出的更多相关文章

  1. java实现文件批量导入导出实例(兼容xls,xlsx)

    1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...

  2. SSM excel文件的导入导出

    对于excel文件的导入导出,后台接收读取和建表封存都是固定死的,所以对于excel导入时,excel文件内容必须匹配后台相关对象,不然报错. excel文件导出,用<a><a/&g ...

  3. [Docker核心之容器、数据库文件的导入导出、容器镜像的导入导出]

    [Docker核心之容器.数据库文件的导入导出] 使用 Docker 容器 在 Docker 中,真正对外提供服务的还是容器,容器是对外提供服务的实例,容器的本质是进程. 运行一个容器 docker ...

  4. DB2中ixf文件的导入导出

    1. 导出数据 语法:EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名   2. 导入数据 语法:db2 IMPORT FROM <路 ...

  5. dmp文件的导入导出

    一.dmp文件的导入 方法一(需安装PLSQL) 1.运行PLSQL,在oracle登陆窗口输入用户名和密码登陆到数据库 2.运行工具>导入表,弹出导入对话框 3.单击下方选择文件按钮,在弹出对 ...

  6. java项目中Excel文件的导入导出

    package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...

  7. oracle dmp文件的导入导出

    一.命令行方式 exp 用户名/密码@库名 file=文件位置.dmp owner=用户名 imp 用户名/密码@库名 file=文件位置.dmp 注意 : 导入过程若有的表已经存在可能会报错,可以全 ...

  8. java操作office和pdf文件页面列表导出cvs,excel、pdf报表.

    在平常的开发中我们常常遇到不仅仅只是导出excel报表的情况.有时候也需要导出pdf或者CSV报 表.其实原理都差不多.刚开始本来不打算也这篇博客介绍这个的.感觉这篇博客和前面的博客有点雷同.原理基本 ...

  9. NPOI对excel文件的导入导出

    现理解:将一个Excel文件(工作簿-IWorkBook)看做是一个你要操作的对象,每个工作簿包含多个工作表(ISheet)对象,每个工作表中又包含多个行对象(IRow),每行又包含多个单元格(ICe ...

随机推荐

  1. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

  2. Dubbo学习小记

    前言 周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境. 熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是 ...

  3. handlebars自定义helper的写法

    handlebars相对来讲算一个轻量级.高性能的模板引擎,因其简单.直观.不污染HTML的特性,我个人特别喜欢.另一方面,handlebars作为一个logicless的模板,不支持特别复杂的表达式 ...

  4. .NET应用程序与数据库交互的若干问题

    我们知道,在应用程序中与数据库进行交互是一个比较耗时的过程,首先应用程序需要与应用程序建立连接,然后将请求发送到数据库,数据库执行操作,然后将结果集返回.所以在程序中,要尽量晚的与数据库建立连接,并且 ...

  5. MongoDB CRUD 操作手册

    基本操作 增加 在MongoDB中通过db.collection.insert()来增加新的数据. db.users.insert({username:"Jack",age:30} ...

  6. Azure Queue Storage 基本用法 -- Azure Storage 之 Queue

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure File Storage 基 ...

  7. ABP(现代ASP.NET样板开发框架)系列之3、ABP分层架构

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之3.ABP分层架构 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. [翻译]AKKA笔记 - ACTOR生命周期 - 基本 -5

    原文地址:http://rerun.me/2014/10/21/akka-notes-actor-lifecycle-basic/ (请注意这了讨论的生命周期并不包括 preRestart 或者pos ...

  9. ceph架构剖析

    unitedstack有云 :https://www.ustack.com/blog/ceph_infra/

  10. SQL Server 批量主分区备份(Multiple Jobs)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 案例分析(Case) 方案一(Solution One) 方案二(Solution Two) ...