#region 下载说明书PDF
protected void lbtnDownPDF_Click(object sender, EventArgs e)
{
int pid = ConvertHelper.GetInteger(Request["PID"]);
pds = p.GetModel(pid);
#region 第一种方法
DataTable datatable = new DataTable(dt.ToString());
try
{
string Url1 = "pdfBook\\" + GetNewName() + ".pdf";
//创建一个文档对象,并设置他的初始化大小
Rectangle pSize = new Rectangle(144, 90);
//文档的背景色
pSize.BackgroundColor = Color.WHITE;
//常用页面大小 PageSize.A4;
Document document = new Document(PageSize.A4);
PdfWriter.GetInstance(document, new FileStream(Server.MapPath(Url1), FileMode.Create));
BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, new Color(0, 0, 0));
Font headerChinese = new Font(bfChinese, 15, Font.BOLD, new Color(0, 0, 0));
Font beizhufontChinese = new Font(bfChinese, 10, Font.ITALIC, new Color(255, 0, 0));
#region 页眉和页脚
/**
* HeaderFooter的第2个参数为非false时代表打印页码
* 页眉页脚中也可以加入图片,并非只能是文字
*/
HeaderFooter header = new HeaderFooter(new Phrase("陕西龙凤祥珠宝版权所有", beizhufontChinese), false);

//设置是否有边框等
// header.setBorder(Rectangle.NO_BORDER);
header.Border = Rectangle.BOTTOM_BORDER;
header.Alignment = 1;
header.BorderColor = Color.RED;
document.Header = header;

HeaderFooter footer = new HeaderFooter(new Phrase("-", beizhufontChinese), new Phrase("-", beizhufontChinese));
/**
* 0是靠左
* 1是居中
* 2是居右
*/
footer.Alignment = 1;
footer.BorderColor = Color.RED;
footer.Border = Rectangle.BOTTOM_BORDER;
document.Footer = footer;

/**
* 页眉页脚的设置一定要在open前设置好
*/
#endregion
document.Open();

//按设置的字体输出文本
string contents = replaceHtmlCode(pds.ProductName);
string details = replaceHtmlCode(pds.ProductDetail);
Paragraph heading = new Paragraph(contents, headerChinese);
heading.SpacingAfter = 18f;
heading.Alignment = 1;
//heading.IndentationLeft = 220f;
document.Add(heading);

MultiColumnText columns = new MultiColumnText();

columns.AddSimpleColumn(36f, 336f);

columns.AddSimpleColumn(360f, document.PageSize.Width - 36f);

Paragraph detail = new Paragraph(details, fontChinese);
detail.SpacingAfter = 9f;
detail.Alignment = Element.ALIGN_JUSTIFIED;
detail.IndentationLeft = 12f;//全文都缩进了
//document.Add(detail);
//输出图片到PDF文件
string Url = "../uploadpic\\" + pds.Picture;//<img src="../uploadpic/20150213/wm201521317692.jpg" />
iTextSharp.text.Image jpeg01 = iTextSharp.text.Image.GetInstance(Server.MapPath(Url));
jpeg01.IndentationLeft = 150f;
//document.Add(jpeg01);
columns.AddElement(detail);
columns.AddElement(jpeg01);
columns.AddElement(detail);
columns.AddElement(detail);
columns.AddElement(detail);
//columns.AddElement(end);
document.Add(columns);
//Paragraph end = new Paragraph("陕西龙凤祥珠宝版权所有", beizhufontChinese);
//end.IndentationLeft = 200f;
//document.Add(end);
document.Close();

#region 自动下载
// 保存文件的物理路径
string FullPath = HttpContext.Current.Server.MapPath(Url1);
// 初始化FileInfo类的实例,作为文件路径的包装
FileInfo FI = new FileInfo(FullPath);
// 判断文件是否存在
if (FI.Exists)
{
// 将文件保存到本机
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(FI.Name));
Response.AddHeader("Content-Length", FI.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Filter.Close();
Response.WriteFile(FI.FullName);
Response.End();
}
#endregion
}
catch (DocumentException de)
{
Response.Write(de.ToString());
}
#endregion

}
#endregion

c# iText 生成PDF 有文字,图片,表格,文字样式,对齐方式,页眉页脚,等等等,的更多相关文章

  1. 【PDF】java使用Itext生成pdf文档--详解

    [API接口]  一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...

  2. Java Itext 生成PDF文件

    利用Java Itext生成PDF文件并导出,实现效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io.O ...

  3. itext 生成pdf文件添加页眉页脚

    原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...

  4. JavaWeb项目生成PDF文件添加水印图片并导出

    一.前言 首先需要在Maven中添加相应的jar包依赖,若项目没用到Maven,也可自行下载相应所需的jar包(itextpdf.jar 与 itext-asian.jar),如下图所示.点此下载 M ...

  5. iText + Freemarker实现pdf的导出,支持中文、css以及图片,页眉页脚,页眉添加图片

    本文为了记录自己的实现过程,具体的实现步骤是参考博文 https://www.cnblogs.com/youzhibing/p/7692366.html 来实现的,只是在他的基础上添加了页眉页脚及页眉 ...

  6. 在linux环境下使用itext生成pdf

    转载请注明出处 https://www.cnblogs.com/majianming/p/9537173.html 项目中需要对订单生成pdf文件,在不断的尝试之后,终于生成了比较满意的pdf文档. ...

  7. 用itext生成PDF报错:Font 'STSong-Light1' with 'UniGB-UCS2-H' is not recognized.

    用itext生成PDF报错,加上try catch捕获到异常是 BaseFont bFont = BaseFont.createFont("STSong-Light1", &quo ...

  8. 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页

    itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...

  9. C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化

    转:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 1.新建Word文档 #region 新建Word文档/// &l ...

随机推荐

  1. crontab下设置ntpdate的问题

    1.在crontab里设置了ntpdate 同步时间,一段时间发现没有起作用 原来的写法是 20 00 × × × ntpdate cn.pool.ntp.org 单独拿出来执行也是没问题的,最近好好 ...

  2. 剑指Offer——不用加减乘除做加法

    题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 分析: "^"是不带进位的加法. "&"可以得到所有进位位组 ...

  3. python常见模块之序列化(json与pickle以及shelve)

    什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatte ...

  4. error: Error: No resource found for attribute ‘layout_scrollFlags’ in package‘包名’

    遇到error: Error: No resource found for attribute 'layout_scrollFlags' in package'包名' 这个问题时候刚開始自己也是感觉到 ...

  5. IIS7.5 错误代码0x8007007e HTTP 错误 500.19

    目录 问题案例 解决问题 参考资料 问题案例 今天在win2008+IIS7.5的环境中部署WCF服务后,一直出现无法打开的页面.具体错误信息如下: HTTP 错误 500.19 - Internal ...

  6. http://echarts.baidu.com/demo.html#effectScatter-map

    http://echarts.baidu.com/demo.html#effectScatter-map

  7. 在android上跑 keras 或 tensorflow 模型

    https://groups.google.com/forum/#!topic/keras-users/Yob7mIDmTFs http://talc1.loria.fr/users/cerisara ...

  8. 从原型链看DOM--Text类型

    文本节点由Text类型表示,包含的是可以按照字面解释的纯文本内容,纯文本中可以包含转义后的HTML字符但不能包含HTML代码.原型链继承关系为:textNode.__proto__->Text. ...

  9. TFTP服务器 NFS服务器 smb 、wireshark

    在嵌入式开发过程中有宿主机和目标机的角色之分 宿主机是执行编译.链接嵌入式软件的计算机:目标机是运行嵌入式软件的硬件平台 宿主机一般通过网络.USB.JTAG等方式将软件下载到目标机. 网络下载:tf ...

  10. appium 中手势密码的定位坐标

    原文地址http://www.cnblogs.com/smallTestKK/p/5408143.html 1.press方法中的坐标为绝对坐标,moveTO方法中的坐标都是相对坐标,具体来说第一个m ...