当前位置: 首页 > wzjs >正文

网站的个人网盘怎么做做婚庆策划的网站

网站的个人网盘怎么做,做婚庆策划的网站,wordpress后台密码,网站开发 竞拍网站一、概述 在实际开发场景中,我们经常需要自动生成包含文本和图片的 Word 文档。本示例借助 Apache POI 库,实现了向 Word 文档中插入文本和图片的功能。代码会循环插入多次文本和同一张图片,并且对图片进行等比缩放处理,以保证图片…

一、概述

        在实际开发场景中,我们经常需要自动生成包含文本和图片的 Word 文档。本示例借助 Apache POI 库,实现了向 Word 文档中插入文本和图片的功能。代码会循环插入多次文本和同一张图片,并且对图片进行等比缩放处理,以保证图片在文档中合理显示。

二、环境准备

        在开始编写代码之前,需要确保项目中已经添加了 poi-ooxml 依赖。如果你使用的是 Maven 项目,可以在 pom.xml 文件中添加以下依赖:

<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.0.0</version>
</dependency>

三、代码详细解释

package cn.com.weisoft;import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;public class Main {public static void main(String[] args) {//创建一个document对象,相当于新建一个word文档(后缀名为.docx)。XWPFDocument document = new XWPFDocument();//创建一个段落对象。XWPFParagraph paragraph = document.createParagraph();//创建一个run。run具体是什么,我也不知道。但是run是这里面的最小单元了。XWPFRun run = paragraph.createRun();//插入图片try {String imgpath = "/Users/admin/Downloads/6.jpg";for(int i=1;i<10;i++) {int[] wh = getImageWidthAndHeight(imgpath);int[] afwh = transWidthAndHeight(wh);run.setText(i+"、Hello World");run.addBreak();run.setText("https://www.escdns.com");run.addBreak();run.addPicture(Files.newInputStream(Paths.get(imgpath)),XWPFDocument.PICTURE_TYPE_PNG,imgpath,Units.toEMU(afwh[0]),Units.toEMU(afwh[1]));}//创建一个输出流 即是该文档的保存位置OutputStream outputStream = Files.newOutputStream(Paths.get("/Users/admin/Downloads/1.docx"));document.write(outputStream);outputStream.close();} catch (Exception ex) {System.out.println(ex.getMessage());}}//取得图片宽度和高度public static int[] getImageWidthAndHeight(String imgPath) {int[] wh = new int[]{0, 0};if (imgPath.isEmpty()) {return wh;}// 读取图片文件try {File imageFile = new File(imgPath);BufferedImage bufferedImage = ImageIO.read(imageFile);if (bufferedImage != null) {wh[0] = bufferedImage.getWidth();wh[1] = bufferedImage.getHeight();}} catch (Exception ex) {ex.printStackTrace();}return wh;}//等比缩放public static int[] transWidthAndHeight(int[] wh) {int w = 410;int h = 0;int rh = w * wh[1] / wh[0];int[] r = new int[]{w, rh};return r;}
}

四、功能说明:

4.1、包导入

    org.apache.poi.util.Units:用于单位转换,在插入图片时会将像素单位转换为 EMU(English Metric Unit)单位。

    org.apache.poi.xwpf.usermodel 下的类:用于操作 Word 文档,如创建文档、段落、运行对象等。

    javax.imageio.ImageIO 和 java.awt.image.BufferedImage:用于读取图片文件并获取图片的宽度和高度。

    java.io.Filejava.io.OutputStreamjava.nio.file.Files 和 java.nio.file.Paths:用于文件操作,包括读取图片文件和创建 Word 文档输出流。

4.2、main 方法

XWPFDocument document = new XWPFDocument();

创建一个新的 .docx 格式的 Word 文档对象。

4.3、创建段落和运行对象

XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();

创建一个段落对象,然后在段落中创建一个运行对象。运行对象是操作文本和图片的最小单元,可以在其中设置文本、插入图片等。

4.4、循环插入文本和图片

for(int i=1;i<10;i++) {int[] wh = getImageWidthAndHeight(imgpath);int[] afwh = transWidthAndHeight(wh);run.setText(i+"、Hello World");run.addBreak();run.setText("https://www.escdns.com");run.addBreak();run.addPicture(Files.newInputStream(Paths.get(imgpath)),XWPFDocument.PICTURE_TYPE_PNG,imgpath,Units.toEMU(afwh[0]),Units.toEMU(afwh[1]));
}

循环 9 次,每次插入编号、“Hello World” 文本、网址和一张图片。在插入图片前,先调用 getImageWidthAndHeight 方法获取图片的原始宽度和高度,再调用 transWidthAndHeight 方法进行等比缩放。

4.5、保存文档

OutputStream outputStream = Files.newOutputStream(Paths.get("/Users/admin/Downloads/1.docx"));
document.write(outputStream);
outputStream.close();

创建一个输出流,将文档内容写入指定的文件路径,最后关闭输出流。

getImageWidthAndHeight 方法

public static int[] getImageWidthAndHeight(String imgPath) {int[] wh = new int[]{0, 0};if (imgPath.isEmpty()) {return wh;}try {File imageFile = new File(imgPath);BufferedImage bufferedImage = ImageIO.read(imageFile);if (bufferedImage != null) {wh[0] = bufferedImage.getWidth();wh[1] = bufferedImage.getHeight();}} catch (Exception ex) {ex.printStackTrace();}return wh;
}

        该方法用于获取指定路径图片的宽度和高度。如果图片路径为空,则返回 [0, 0]。读取图片文件时,如果出现异常会打印异常信息。

transWidthAndHeight 方法

public static int[] transWidthAndHeight(int[] wh) {int w = 410;int h = 0;int rh = w * wh[1] / wh[0];int[] r = new int[]{w, rh};return r;
}

        该方法用于对图片进行等比缩放。将图片的宽度固定为 410 像素,根据原始图片的宽高比计算出缩放后的高度。

五、注意事项

5.1、文件路径

        代码中的图片路径和文档保存路径是硬编码的,需要根据实际情况进行修改。确保路径存在且程序有读写权限。

5.2、图片格式

        代码中指定图片类型为 XWPFDocument.PICTURE_TYPE_PNG,如果实际图片是其他格式(如 JPEG),需要相应修改。

5.3、异常处理

        代码中使用了 try-catch 块捕获异常,但只是简单地打印异常信息。在实际开发中,可以根据具体需求进行更详细的异常处理。

通过以上内容便可轻轻松松完成wod导出.是不是超级简单.有任何问题欢迎留言哦!!!

重点!重点!重点!

遇到问题不用怕不如来我的知识库找找看,也许有意想不到的收获!!!

易网时代-易库资源-易库教程:.NET开发、Java开发、PHP开发、SqlServer技术、MySQL技术-开发资料大全-易网时代-易库资源-易库教程 (escdns.com)

http://www.dtcms.com/wzjs/546698.html

相关文章:

  • 网站建设7个基本流程图阿里邮箱企业版app下载
  • 天津网站建设哪个好个人网上注册公司流程图
  • 网站报名怎么做做网站没有手机端
  • wordpress怎么导入demo文件夹seo收费低
  • 南通网站建设兼职四位分享码2023
  • 建设食品网站如何定位如何很好的进行网站的内部推广
  • 网站开发高级工程师专业牧风的在wordpress
  • 怎么给网站添加关键词长沙软件培训机构排名前十
  • 做拍福利爱福利视频网站fw网页制作教程
  • 大理做网站哪家好一般网站模块
  • 哈尔滨专门做网站新媒体营销的方式
  • 网上商城可行性分析报告东营网站seo服务
  • 怎么架构网站2022年楼市最新消息
  • 万网网站备案北京网站优化实战
  • 重庆营销网站建设公司排名旅游网站设计内容
  • 生肖竞猜网站建设人社部能力建设中心网站
  • h5网站开发中心培训方案怎么做
  • 东莞专业做网站为客户做网站的方案
  • 太原制作微信网站网上接装修工程哪家平台好
  • 如何自建网站入口中国建设银行网站荆门网点查询系统
  • 厦门市同安区建设局网站用手机免费制作app软件有哪些
  • 哪里有卖自己做的网站脚本语言在网站开发中
  • 3合1网站建设公司网站建设优化经验
  • 密云做网站的对网站建设展望
  • 做招聘海报的网站廊坊哪里有做网站的
  • 建设一个门户网站需要多久docker查看wordpress
  • 大兴网站建设报价360线上推广
  • 海南省交通建设局网站首页天眼
  • 网站做动态虚线网站建设对付客户
  • 行业网站建设的开发方案桂林网站建设兼职