如何把图片放入到页面的合适位置

有时候我们需要批量的向一个文档中插入图片,比如说,我们使用OpexXML操作Word文件,或者使用ITextSharp操作PDF文件。

这里以ITextSharp操作PDF为例,现在有100张图片,插入到PDF中,每个图片占据一页。这里有个问题,因为这些图片的长度,像素等都是不确定的,我们怎么才能把图片摆在一个页面比较合适的位置上?我们可以考虑把图片放到页面的中间,也就是图片的对角线中心与页面的对角线中心重合。但是长度怎么办?有的图片长度可是完全超出了页面的宽带。所以,这时我们就要判断比较图片宽度与页面宽度,如果图片大,我们就缩小百分之九十,再比较,如果还大,继续缩小,直到图片宽度小于页面宽度为止。对于高度也是如此。

 //获取图片对象实例
 		    Image image = Image.GetInstance(path);
                    float percentage = 1;
		    //这里都是图片最原始的宽度与高度
                    float resizedWidht = image.Width;
                    float resizedHeight = image.Height;

		    //这时判断图片宽度是否大于页面宽度减去也边距,如果是,那么缩小,如果还大,继续缩小,
		    //这样这个缩小的百分比percentage会越来越小
                    while (resizedWidht > (doc.PageSize.Width - doc.LeftMargin - doc.RightMargin) * 0.8)
                    {
                        percentage = percentage * 0.9f;
                        resizedHeight = image.Height * percentage;
                        resizedWidht = image.Width * percentage;
                    }
                    //There is a 0.8 here. If the height of the image is too close to the page size height,
                    //the image will seem so big
                    while (resizedHeight > (doc.PageSize.Height - doc.TopMargin - doc.BottomMargin) * 0.8)
                    {
                        percentage = percentage * 0.9f;
                        resizedHeight = image.Height * percentage;
                        resizedWidht = image.Width * percentage;
                    }

		     //这里用计算出来的百分比来缩小图片
                    image.ScalePercent(percentage * 100);
		     //让图片的中心点与页面的中心店进行重合
                    image.SetAbsolutePosition(doc.PageSize.Width/2 - resizedWidht / 2, doc.PageSize.Height / 2 - resizedHeight / 2);
                    doc.Add(image);

如何把图片放入到页面的合适位置

时间: 2024-10-22 16:42:40

如何把图片放入到页面的合适位置的相关文章

Xcode中将图片放入Images.xcassets和直接拖入的区别

将图片放入Images.xcassets 在mainBundle里面Xcode会生成一个Assets.car文件,将我们放在Images.xcassets的图片打包在里面.(程序会变大(?)) 无论是通过imageNamed:来加载图片,还是直接在Storyboard的UIImageView里面设置图片,并且无论图片是jpg格式还是png格式,都不需要写后缀名. 放在Images.xcassets的图片不能通过imagesWithContentsOfFile:来加载.(因为这个方法相当于是去ma

生成的随机验证码图片放入input text中

css:  56px是图片的width,57px(图片长度+input的border) #img{  position:absolute; width:56px;margin-left: calc(100% - -57px); bottom:0} html:javascript:GetCodes()是刷新验证码的方法 <div class="field"> <input type="text" id="Verfication"

取装备名字放入变量中

GetUserItemName 的 命令的意思是:取指定位置的装备名字 放入某个变量格式: GetUserItemName 位置(0-12) S变量(0-99)说明: S变量是人物私有变量(0-99)例子: 把武器的名字放如S10变量中#IF#ACTGetUserItemName 1 10SendMsg 5 武器的名字: <$STR(S10)>查看提下你的 QF里 在哪使用了 GetUserItemName 然后看看 此版本的大体意思是什么 然后再替换脚本命令!! 原文地址:https://w

php批量上传图片并把图片名放入数据库

    前几天工作中要做这样一个功能,有八百多个系统 生成的会员:给这八百多个系统会员上传图片:然后把图片名放入数据库. 第一步: 第一步肯定是首先把图片上传到对应的图片目录下,直接用框架中已经有的上传类: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!--?php                try {                     $upload=new Upload();       

.Net中把图片等文件放入DLL中,并在程序中引用

[摘要] 有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵. 本文就讲述了如何把文件(比如图片,WORD文档等等) 隐藏到DLL中,然后在程序中可以自己根据需要导出图片进行处理. 注:本站原创,转载请注明本站网址:http://www.beinet.cn/blog/ [全文] 第1步:我们要生成一个资源文件,先把要隐藏的文件放入到这个资源文件中 (资源文件大致可以存放三种数据资源:字节数组.各种对象和字符串) 首

flex 实现图片播放 方案二 把临时3张图片预加载放入内存

该方案,是预加载:前一张,当前,下一张图片,一共3张图片放入内存中.这样对内存的消耗可以非常小,加载之后的图片就释放内存. 下面示例一个是类ImagePlayers,一个是index.mxml package { import flash.display.BitmapData; import flash.display.Loader; import flash.events.Event; import flash.events.TimerEvent; import flash.net.URLRe

读取mysql中的特定列值放入页面的下拉框中

1.使用的技术:JSP,Spring JDBC(Mapper) 2.代码 2.1 接口 public interface IMeetingRoomDao { public List<Mrcap> selectCap(); public List<Mrfloor> selectFloor(); } 2.2 实现类 @Override public List<Mrcap> selectCap() { List<Mrcap> caplist = new Array

从数据库读取图片路径后在页面上显示出来

从数据库读取图片路径后在页面上显示出来 代码: 1 //直接将代码放到php文件里 2 $con = mysqli_connect("localhost", "123", "123", "123");//连接数据库 3 $sql = "SELECT * FROM table";//读取表 4 $result = $con->query($sql); 5 while ($row = $result-&g

android将多个drawable放入数组取出

为一组view设置相对应的一组图片资源时用到数组. 1.在string.xml中定义.pic1234是已放入drawable文件夹下的图片. <string-array name="main_tab_images">        <item>@drawable/pic1</item>        <item>@drawable/pic2</item>        <item>@drawable/pic3<