读书人

iTextSharp转pdf

发布时间: 2013-01-11 11:57:35 作者: rapoo

【分享】iTextSharp转pdf
前面发了一篇文件转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();
}
}

}



[解决办法]
支 持
[解决办法]
进来摸一下LZ屁股,摸完走人~~
[解决办法]
十分感谢
[解决办法]
支持,学习~~
[解决办法]
学习。。。收藏。。。
[解决办法]
学习..
[解决办法]
学习下,谢谢分享
[解决办法]
不错,收藏了! 阿捷
[解决办法]
收藏 接分= =
[解决办法]
现在正需要实现这个功能

不知道转换比较大的Excel文件怎么样?
[解决办法]
mark,赞分享

读书人网 >C#

热点推荐