【译】在Asp.Net中操作PDF – iTextSharp

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 07:07 点击:

 

iTextSharp支持所有主流的图片格式,比如:jpg, tif, gif, bmp, png和wmf.在iTextSharp中使用Image.GetInstance()方法创建图片有很多种方式,或许最常用的方式应该是传入文件的路径和文件名到该方法中:

 

string pdfpath = Server.MapPath("PDFs");

 

string imagepath = Server.MapPath("Images");

 

Document doc = new Document();

 

try

 

{

 

  PdfWriter.GetInstance(doc, new FileStream(pdfpath + "/Images.pdf", FileMode.Create));

 

  doc.Open();

 

 

 

  doc.Add(new Paragraph("GIF"));

 

  Image gif = Image.GetInstance(imagepath + "/mikesdotnetting.gif");

 

  doc.Add(gif);

 

}

 

catch (DocumentException dex)

 

{

 

  Response.Write(dex.Message);

 

}

 

catch (IOException ioex)

 

{

 

  Response.Write(ioex.Message);

 

}

 

catch (Exception ex)

 

{

 

  Response.Write(ex.Message);

 

}

 

finally

 

{

 

  doc.Close();

 

}

 

 

    1

 

    其他可以使用的构造函数的重载可以是传入一个URL或是一个System.Drawing.Image对象(并不是iTextSharp.text.Image).

    注意:下面代码段的System.Drawing.Image.FromStream()方法使用了命名空间的别名,在前面讲述List的文章中就已经提到过,使用命名空间的别名以防止两个不同Image类冲突:\

 

 

doc.Add(new Paragraph("JPG"));

 

string url = "http://www.2cto.com :1805/PDF/Images/mikesdotnetting.jpg";

 

Image jpg = Image.GetInstance(new Uri(url));

 

doc.Add(jpg);

 

doc.Add(new Paragraph("PNG"));

 

using (FileStream fs = new FileStream(imagepath + "/mikesdotnetting.png", FileMode.Open))

 

{

 

  Image png = Image.GetInstance(sd.Image.FromStream(fs),ImageFormat.Png);

 

  doc.Add(png);

 

}

   2

 

   目前为止还不能辨别出我所提供的图片哪个是JPG,哪个是PNG,但在PDF中的结果图片分辨率并不好,在默认情况下,嵌入PDF的图片是72 dpi(每英尺的点阵数),这种分辨率如果实在PDF需要打印出来时,就非常不够了,一般来说,商业打印机需要的图片最小分辨率为300dpi.为了达到这个效果,你可以将72dpi的图片缩小至原图片的24%.实际上你是将原来300像素的图片缩小为72像素:72/300 * 100 = 24%。这时嵌入pdf的图片从大小来说一模一样,但是在文档占用方面却少了很多:

 

 

doc.Add(new Paragraph("TIF Scaled to 300dpi"));

 

Image tif = Image.GetInstance(imagepath + "/mikesdotnetting.tif");

 

tif.ScalePercent(24f);

 

doc.Add(tif);

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1