问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

itextsharp 可以显示pdf文件吗

发布网友 发布时间:2022-12-21 22:03

我来回答

1个回答

热心网友 时间:2024-11-30 18:59

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace DotNet.Utilities
{
/// <summary>
/// PDF文档操作类
/// </summary>
//------------------------------------调用--------------------------------------------
//PDFOperation pdf = new PDFOperation();
//pdf.Open(new FileStream(path, FileMode.Create));
//pdf.SetBaseFont(@"C:\Windows\Fonts\SIMHEI.TTF");
//pdf.AddParagraph("测试文档(生成时间:" + DateTime.Now + ")", 15, 1, 20, 0, 0);
//pdf.Close();
//-------------------------------------------------------------------------------------
public class PDFOperation
{
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
public PDFOperation()
{
rect = PageSize.A4;
document = new Document(rect);
}

/// <summary>
/// 构造函数
/// </summary>
/// <param name="type">页面大小(如"A4")</param>
public PDFOperation(string type)
{
SetPageSize(type);
document = new Document(rect);
}

/// <summary>
/// 构造函数
/// </summary>
/// <param name="type">页面大小(如"A4")</param>
/// <param name="marginLeft">内容距左边框距离</param>
/// <param name="marginRight">内容距右边框距离</param>
/// <param name="marginTop">内容距上边框距离</param>
/// <param name="marginBottom">内容距下边框距离</param>
public PDFOperation(string type, float marginLeft, float marginRight, float marginTop, float marginBottom)
{
SetPageSize(type);
document = new Document(rect, marginLeft, marginRight, marginTop, marginBottom);
}
#endregion

#region 私有字段
private Font font;
private Rectangle rect; //文档大小
private Document document;//文档对象
private BaseFont basefont;//字体
#endregion

#region 设置字体
/// <summary>
/// 设置字体
/// </summary>
public void SetBaseFont(string path)
{
basefont = BaseFont.CreateFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
}

/// <summary>
/// 设置字体
/// </summary>
/// <param name="size">字体大小</param>
public void SetFont(float size)
{
font = new Font(basefont, size);
}
#endregion

#region 设置页面大小
/// <summary>
/// 设置页面大小
/// </summary>
/// <param name="type">页面大小(如"A4")</param>
public void SetPageSize(string type)
{
switch (type.Trim())
{
case "A4":
rect = PageSize.A4;
break;
case "A8":
rect = PageSize.A8;
break;
}
}
#endregion

#region 实例化文档
/// <summary>
/// 实例化文档
/// </summary>
/// <param name="os">文档相关信息(如路径,打开方式等)</param>
public void GetInstance(Stream os)
{
PdfWriter.GetInstance(document, os);
}
#endregion

#region 打开文档对象
/// <summary>
/// 打开文档对象
/// </summary>
/// <param name="os">文档相关信息(如路径,打开方式等)</param>
public void Open(Stream os)
{
GetInstance(os);
document.Open();
}
#endregion

#region 关闭打开的文档
/// <summary>
/// 关闭打开的文档
/// </summary>
public void Close()
{
document.Close();
}
#endregion

#region 添加段落
/// <summary>
/// 添加段落
/// </summary>
/// <param name="content">内容</param>
/// <param name="fontsize">字体大小</param>
public void AddParagraph(string content, float fontsize)
{
SetFont(fontsize);
Paragraph pra = new Paragraph(content, font);
document.Add(pra);
}

/// <summary>
/// 添加段落
/// </summary>
/// <param name="content">内容</param>
/// <param name="fontsize">字体大小</param>
/// <param name="Alignment">对齐方式(1为居中,0为居左,2为居右)</param>
/// <param name="SpacingAfter">段后空行数(0为默认值)</param>
/// <param name="SpacingBefore">段前空行数(0为默认值)</param>
/// <param name="MultipliedLeading">行间距(0为默认值)</param>
public void AddParagraph(string content, float fontsize, int Alignment, float SpacingAfter, float SpacingBefore, float MultipliedLeading)
{
SetFont(fontsize);
Paragraph pra = new Paragraph(content, font);
pra.Alignment = Alignment;
if (SpacingAfter != 0)
{
pra.SpacingAfter = SpacingAfter;
}
if (SpacingBefore != 0)
{
pra.SpacingBefore = SpacingBefore;
}
if (MultipliedLeading != 0)
{
pra.MultipliedLeading = MultipliedLeading;
}
document.Add(pra);
}
#endregion

#region 添加图片
/// <summary>
/// 添加图片
/// </summary>
/// <param name="path">图片路径</param>
/// <param name="Alignment">对齐方式(1为居中,0为居左,2为居右)</param>
/// <param name="newWidth">图片宽(0为默认值,如果宽度大于页宽将按比率缩放)</param>
/// <param name="newHeight">图片高</param>
public void AddImage(string path, int Alignment, float newWidth, float newHeight)
{
Image img = Image.GetInstance(path);
img.Alignment = Alignment;
if (newWidth != 0)
{
img.ScaleAbsolute(newWidth, newHeight);
}
else
{
if (img.Width > PageSize.A4.Width)
{
img.ScaleAbsolute(rect.Width, img.Width * img.Height / rect.Height);
}
}
document.Add(img);
}
#endregion

#region 添加链接、点
/// <summary>
/// 添加链接
/// </summary>
/// <param name="Content">链接文字</param>
/// <param name="FontSize">字体大小</param>
/// <param name="Reference">链接地址</param>
public void AddAnchorReference(string Content, float FontSize, string Reference)
{
SetFont(FontSize);
Anchor auc = new Anchor(Content, font);
auc.Reference = Reference;
document.Add(auc);
}

/// <summary>
/// 添加链接点
/// </summary>
/// <param name="Content">链接文字</param>
/// <param name="FontSize">字体大小</param>
/// <param name="Name">链接点名</param>
public void AddAnchorName(string Content, float FontSize, string Name)
{
SetFont(FontSize);
Anchor auc = new Anchor(Content, font);
auc.Name = Name;
document.Add(auc);
}
#endregion
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
化学速率的理解问题 标准平衡常数Kθ公式「科普」 沼泽过滤用沙子还是石子 艾利和U10VP(1GB)主要功能 艾利和U10VP(512MB)重要参数 艾利和U10(1GB)重要参数 艾利和U10(1GB)艾利和U10(1GB)详细参数 艾利和U10(512MB)艾利和U10(512MB)详细参数 电信手机查详单能不能把上网的历史记录查出来 电信流量超支怎么查询 Powershell itextSharp PDF打中文水印 林芝65万元的房子首付多少?65万元的房子月供多少? 林芝贷款购车需要什么程序和条件 “豆蔻年华”通常泛指女子多少岁? 林芝地区哪里可以用房子抵押贷款。电话号码 周笔畅在出道至今只唱红两首歌,为何她的人气却那么高呢? 如何考红帽rhca证书的考试 腾讯会议可以看历史回放吗 周笔畅谭维维认识吗 我想问问mp3去哪里下载歌曲 周笔畅的唱功好吗?代表作有什么? 电脑开不了机哦多尅, 周笔畅励志歌曲:未来就是现在 白色拉链卫衣搭配蓝色打底衫配什么款型的和什么颜色裤子和什么款型的... 如何安装虚拟机哦 小米4 什么是合约机哦 和非合约机有什么区别 求一首日文歌,只记得高潮有三个字听起来像 机哦飞机哦飞,是个女的唱... 盎司机哦 电脑 开不了机哦 求解!! CentOS8.0系统安装讯搜(XunSearch)时出现libevent错误 iTextSharp 来生成PDF excel表格有一行打印不出来? 台风形成有哪些条件 台风形成需要有哪几个条件 奶茶店一天卖50杯一个人可以吗 谁能帮一下,想一些糖果的名字,比如说棉花糖,彩虹糖这些的,帮帮忙哈... 富德生命人寿保险股份有限公司鹤岗中心支公司怎么样? 阳光财产保险股份有限公司鹤岗中心支公司怎么样? 草莓生长环境 草莓在什么地方生长 美丽的橘子洲作文 栖花里防晒喷雾怎么样 北通蝙蝠d2手柄子夜版怎么玩GTA5 PHP网页服务器 V1.01 注册机 我按照网页上的顺序试过几次,一点注册机就出中间那个,没出现成功的界面... 注册机keygen.exe, 知道怎么使用吧?我来了。 中行中银全球智汇中银闪汇的适用对象有哪些? 闪汇是骗人的吗 中行中银全球智汇中银闪汇可以使用哪些国家的币种? 中行中银全球智汇中银闪汇的办理渠道有哪些? 中行中银全球智汇中银闪汇产品有哪些优势? 中国银行中银全球智汇中银闪汇支持币种有什么?