【分享】iTextSharp转pdf

liuyun1987 2010-08-28 10:35:41
前面发了一篇文件转pdf的帖子
http://topic.csdn.net/u/20100825/21/E116A4A1-5C79-4CB2-9D44-DFADEE57596A.html
那只是个雏形,调用虚拟打印机来实现,office文件转pdf时还依赖于COM组件,在服务器部署时还需要装office的一些组件,现这个版本比较完善,完全基于开源组件iTextSharp来实现把文件转pdf,现把源码放出,欢迎各位拍砖。

最新版本iTextSharp.dll(version:5.0.4),若转换的文件中有中文字符时,转pdf后可能不显示中文字符,网上的解决方案很多,也可以查看iTextSharp的文档,提供了解决方案。以下下载文件中包含iTextSharp文档和Aspose的相关文档,还有一个Demo。
http://download.csdn.net/source/2654440
贴上一段Image转pdf的代码:

class ImageToPdf : FileToPdf
{
private Document document = null;

private string sourceFilePath = "";

private System.Drawing.Imaging.ImageFormat imageFormat = null;

public ImageToPdf(Document _document, string _sourceFilePath,System.Drawing.Imaging.ImageFormat _imageFormat)
{
document = _document;

sourceFilePath = _sourceFilePath;

imageFormat = _imageFormat;
}

public override void ConvertFile()
{
System.Drawing.Image sourceImg = null;

iTextSharp.text.Image pdfImage = null;

try
{
document.Open();

sourceImg = System.Drawing.Image.FromFile(sourceFilePath);

pdfImage = iTextSharp.text.Image.GetInstance(sourceImg, imageFormat);

pdfImage.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

float height = document.Top - document.TopMargin;
//图片原始大小
pdfImage.ScaleToFit(sourceImg.Width > document.Right ? document.Right : sourceImg.Width, sourceImg.Height > height ? height : sourceImg.Height);

//pdfImage.ScaleToFit(document.Right ,height);

document.Add(pdfImage);
}
catch { }
finally {
sourceImg = null;

pdfImage = null;

document.Close();
}
}

}

...全文
1140 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯刀 2013-01-04
  • 打赏
  • 举报
回复
终于找到了!
成自自然 2011-08-19
  • 打赏
  • 举报
回复
帮顶啊
billson68 2010-09-04
  • 打赏
  • 举报
回复
請問您有將EXCEL轉PDF的範例嗎
您的DEMO 我用來轉Excel檔都會出錯
problc 2010-08-31
  • 打赏
  • 举报
回复
mark,赞分享
myufo1234 2010-08-31
  • 打赏
  • 举报
回复
现在正需要实现这个功能

不知道转换比较大的Excel文件怎么样?
liuyun1987 2010-08-30
  • 打赏
  • 举报
回复
汗。人气这么少。。。
chenchenyangll 2010-08-29
  • 打赏
  • 举报
回复
收藏 接分= =
捷哥1999 2010-08-28
  • 打赏
  • 举报
回复
不错,收藏了!
studentliudong 2010-08-28
  • 打赏
  • 举报
回复
学习下,谢谢分享
Rain_Franklin 2010-08-28
  • 打赏
  • 举报
回复
学习..
porschev 2010-08-28
  • 打赏
  • 举报
回复
学习。。。收藏。。。
mayonglong 2010-08-28
  • 打赏
  • 举报
回复
支持,学习~~
空心兜兜 2010-08-28
  • 打赏
  • 举报
回复
十分感谢
q107770540 2010-08-28
  • 打赏
  • 举报
回复
进来摸一下LZ屁股,摸完走人~~
wuyq11 2010-08-28
  • 打赏
  • 举报
回复
支 持
Peter200694013 2010-08-28
  • 打赏
  • 举报
回复
Peter200694013 2010-08-28
  • 打赏
  • 举报
回复
沙发...?

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧