精华内容
下载资源
问答
  • java导出word(带图片)
    2021-02-12 12:57:58

    1 public classCreateWordDemo {2 public void createDocContext(String file) throwsDocumentException,IOException {3 //设置纸张大小

    4 Document document = newDocument(PageSize.A4);5 //建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, new FileOutputStream(file));

    6 document.open();7 //设置中文字体

    8 BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);9 //标题字体风格

    10 Font titleFont = new Font(bfChinese, 12, Font.BOLD);11 //正文字体风格

    12 Font contextFont = new Font(bfChinese, 10, Font.NORMAL);13 Paragraph title = new Paragraph("标题");14 //设置标题格式对齐方式

    15 title.setAlignment(Element.ALIGN_CENTER);16 title.setFont(titleFont);17 document.add(title);18 String contextString = "iText是一个能够快速产生PDF文件的java类库。"

    19 + " \n"//换行 + "iText的java类对于那些要产生包含文本,"

    20 + "表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。"

    21 + "使用iText与PDF能够使你正确的控制Servlet的输出。";22 Paragraph context = newParagraph(contextString);23 //正文格式左对齐

    24 context.setAlignment(Element.ALIGN_LEFT);25 context.setFont(contextFont);26 //离上一段落(标题)空的行数

    27 context.setSpacingBefore(5);28 //设置第一行空的列数

    29 context.setFirstLineIndent(20);30 document.add(context);31 //利用类FontFactory结合Font和Color可以设置各种各样字体样式

    32

    33 Paragraph underline = new Paragraph("下划线的实现", FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.UNDERLINE, new Color(0, 0, 255)));34 document.add(underline);35 //设置 Table 表格

    36 Table aTable = new Table(3);37 int width[] = { 25, 25, 50};38 aTable.setWidths(width);//设置每列所占比例

    39 aTable.setWidth(90); //占页面宽度 90%

    40 aTable.setAlignment(Element.ALIGN_CENTER);//居中显示

    41 aTable.setAlignment(Element.ALIGN_MIDDLE);//纵向居中显示

    42 aTable.setAutoFillEmptyCells(true); //自动填满

    43 aTable.setBorderWidth(1); //边框宽度

    44 aTable.setBorderColor(new Color(0, 125, 255)); //边框颜色

    45 aTable.setPadding(2);//衬距,看效果就知道什么意思了

    46 aTable.setSpacing(3);//即单元格之间的间距

    47 aTable.setBorder(2);//边框//设置表头

    48

    49 Cell haderCell = new Cell("表格表头");50 haderCell.setHeader(true);51 haderCell.setColspan(3);52 aTable.addCell(haderCell);53 aTable.endHeaders();54 Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.GREEN);55 Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据", fontChinese)); cell.setVerticalAlignment(Element.ALIGN_TOP);56 cell.setBorderColor(new Color(255, 0, 0));57 cell.setRowspan(2);58 aTable.addCell(cell);59 aTable.addCell(new Cell("#1"));60 aTable.addCell(new Cell("#2"));61 aTable.addCell(new Cell("#3"));62 aTable.addCell(new Cell("#4"));63 Cell cell3 = new Cell(new Phrase("一行三列数据", fontChinese));64 cell3.setColspan(3);65 cell3.setVerticalAlignment(Element.ALIGN_CENTER);66 aTable.addCell(cell3);67 document.add(aTable);68 document.add(new Paragraph("\n"));69 //添加图片 Image.getInstance即可以放路径又可以放二进制字节流

    70 Image img = Image.getInstance("d:\\img01800.jpg");71 img.setAbsolutePosition(0, 0);72 img.setAlignment(Image.RIGHT);//设置图片显示位置

    73 img.scaleAbsolute(60, 60);//直接设定显示尺寸74 //img.scalePercent(50);//表示显示的大小为原尺寸的50%75 //img.scalePercent(25, 12);//图像高宽的显示比例76 //img.setRotation(30);//图像旋转一定角度

    77 document.add(img);78 document.close();79 }80

    81 public static voidmain(String[] args) {82 CreateWordDemo word = newCreateWordDemo();83 String file = "d:/demo1.doc";84 try{85 word.createDocContext(file);86 } catch(DocumentException e) {87 e.printStackTrace();88 } catch(IOException e) {89 e.printStackTrace();90 }91 }92 }

    更多相关内容
  • 1、poi版本3.13 2、可进行表格替换。复制、图片导出 3、可直接运行
  • 亲测可用,jquery导出word 支持html,图片等格式。注:导出内容若包含图片图片必须给个唯一的id
  • freemarker模板导出word循环图片表格详细教程 内含源码和详细教程,分不同格式的模版 亲测,详细案例,详细教程在使用必看里面。
  • 一个示例测试页面导出页面内容为word文件,使用chrome浏览器以及wps打开测试目前未发现问题;内部包含了修改后的jquery-word的js文件
  • java通过freemarker模板导出word图片,希望对你有用,本代码只支持doc格式,如果不满足你的需求,请担待着点!谢谢您能给予好评,非常感谢。
  • java:多个图片导出word文档里显示,用于打印图片导出
  • java freemarker导出word -包含多张图片导出
  • /***写入图片*@paramdocument*@parampicName*@paramwidth*@paramheight*@paramalignment*/privatevoidWriteImage(CustomXWPFDocumentdocument,StringpicName,intwidth,intheight,ParagraphAlignmen...

    /**

    * 写入图片

    * @param document

    * @param picName

    * @param width

    * @param height

    * @param alignment

    */

    private void WriteImage(CustomXWPFDocument document, String picName, int width, int height, ParagraphAlignment alignment) {

    try {

    CustomXWPFDocument document= new CustomXWPFDocument();

    XWPFParagraph imgPara = document.createParagraph();

    imgPara.setAlignment(alignment);

    int format = XWPFDocument.PICTURE_TYPE_PNG;

    if(picName.endsWith(".emf")) format = XWPFDocument.PICTURE_TYPE_EMF;

    else if(picName.endsWith(".wmf")) format = XWPFDocument.PICTURE_TYPE_WMF;

    else if(picName.endsWith(".pict")) format = XWPFDocument.PICTURE_TYPE_PICT;

    else if(picName.endsWith(".jpeg") || picName.endsWith(".jpg")) format = XWPFDocument.PICTURE_TYPE_JPEG;

    else if(picName.endsWith(".png")) format = XWPFDocument.PICTURE_TYPE_PNG;

    else if(picName.endsWith(".dib")) format = XWPFDocument.PICTURE_TYPE_DIB;

    else if(picName.endsWith(".gif")) format = XWPFDocument.PICTURE_TYPE_GIF;

    else if(picName.endsWith(".tiff")) format = XWPFDocument.PICTURE_TYPE_TIFF;

    else if(picName.endsWith(".eps")) format = XWPFDocument.PICTURE_TYPE_EPS;

    else if(picName.endsWith(".bmp")) format = XWPFDocument.PICTURE_TYPE_BMP;

    else if(picName.endsWith(".wpg")) format = XWPFDocument.PICTURE_TYPE_WPG;

    XWPFRun stdMarkRun = imgPara.createRun();

    stdMarkRun.addBreak();

    String blipId = imgPara.getDocument().addPictureData(new FileInputStream(new File(picName)),format);

    document.createPicture(blipId,document.getNextPicNameNumber(format),width,height, imgPara);

    }catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    *创建自定义Java类继承自XWPFDocument

    */

    class CustomXWPFDocument extends XWPFDocument {

    public CustomXWPFDocument() {

    super();

    }

    public CustomXWPFDocument(InputStream in) throws IOException {

    super(in);

    }

    public CustomXWPFDocument(OPCPackage pkg) throws IOException {

    super(pkg);

    }

    public void createPicture(String blipId, int id, int width, int height,

    XWPFParagraph paragraph) {

    final int EMU = 9525;

    width *= EMU;

    height *= EMU;

    // String blipId =

    // getAllPictures().get(id).getPackageRelationship().getId();

    if (paragraph == null) {

    paragraph = createParagraph();

    }

    CTInline inline = paragraph.createRun().getCTR().addNewDrawing()

    .addNewInline();

    String picXml = ""

    + ""

    + "   "

    + "      "

    + "         " + "            

    + id

    + "\" name=\"img_"

    + id

    + "\"/>"

    + "            "

    + "         

    "

    + "         "

    + "            

    + blipId

    + "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"

    + "            "

    + "               "

    + "            "

    + "         "

    + "         "

    + "            "

    + "               "

    + "               

    + width

    + "\" cy=\""

    + height

    + "\"/>"

    + "            "

    + "            "

    + "               "

    + "            "

    + "         "

    + "      "

    + "   " + "";

    // CTGraphicalObjectData graphicData =

    // inline.addNewGraphic().addNewGraphicData();

    XmlToken xmlToken = null;

    try {

    xmlToken = XmlToken.Factory.parse(picXml);

    } catch (XmlException xe) {

    xe.printStackTrace();

    }

    inline.set(xmlToken);

    // graphicData.set(xmlToken);

    inline.setDistT(0);

    inline.setDistB(0);

    inline.setDistL(0);

    inline.setDistR(0);

    CTPositiveSize2D extent = inline.addNewExtent();

    extent.setCx(width);

    extent.setCy(height);

    CTNonVisualDrawingProps docPr = inline.addNewDocPr();

    docPr.setId(id);

    docPr.setName("docx_img_ " + id);

    docPr.setDescr("docx Picture");

    }

    public void createPictureCxCy(String blipId, int id, long cx, long cy) {

    CTInline inline = createParagraph().createRun().getCTR()

    .addNewDrawing().addNewInline();

    String picXml = ""

    + ""

    + "   "

    + "      "

    + "         " + "            

    + id

    + "\" name=\"Generated\"/>"

    + "            "

    + "         

    "

    + "         "

    + "            

    + blipId

    + "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"

    + "            "

    + "               "

    + "            "

    + "         "

    + "         "

    + "            "

    + "               "

    + "               

    + cx

    + "\" cy=\""

    + cy

    + "\"/>"

    + "            "

    + "            "

    + "               "

    + "            "

    + "         "

    + "      "

    + "   " + "";

    // CTGraphicalObjectData graphicData =

    // inline.addNewGraphic().addNewGraphicData();

    XmlToken xmlToken = null;

    try {

    xmlToken = XmlToken.Factory.parse(picXml);

    } catch (XmlException xe) {

    xe.printStackTrace();

    }

    inline.set(xmlToken);

    // graphicData.set(xmlToken);

    inline.setDistT(0);

    inline.setDistB(0);

    inline.setDistL(0);

    inline.setDistR(0);

    CTPositiveSize2D extent = inline.addNewExtent();

    extent.setCx(cx);

    extent.setCy(cy);

    CTNonVisualDrawingProps docPr = inline.addNewDocPr();

    docPr.setId(id);

    docPr.setName("docx_img_ " + id);

    docPr.setDescr("docx Picture");

    }

    }

    展开全文
  • poi导出word例子(图片
  • java语言,后台导出图片word文档中,这是一种简易的写法,基本上一眼即可看懂。亲测有效。如果有需要的,可以下载进行参考。
  • word导出图片的几种方式

    热门讨论 2013-05-24 23:15:35
    word导出图片的几种方式,对不知道如何导出word图片的朋友有帮助
  • 这是看了网上几篇关于PHP导出word文档的文章之后,本人改进一下的方法,可以导出图片的,以下是demo。$row = M('Article')->where(array('id'=>5))->find();//这里我用的是Thinkphp框架,意思查询的是...

    这是看了网上几篇关于PHP导出word文档的文章之后,本人改进一下的方法,可以导出带图片的,以下是demo。

    $row = M('Article')->where(array('id'=>5))->find();//这里我用的是Thinkphp框架,意思查询的是Article表中id=5的文章信息

    $content = str_replace("src="/", "src="http://www.XXX.com/", $row['content']);//给是相对路径的图片加上域名变成绝对路径,导出来的word就会显示图片了

    $filename = 'ID['.$row['id'].']'.$row['title'];

    $filename = iconv('utf-8', 'gb2312', $filename);

    header('pragma:public');

    header('Content-type:application/vnd.ms-word;charset=utf-8;name="'.$filename.'".doc');

    header("Content-Disposition:attachment;filename=$filename.doc");//attachment新窗口打印inline本窗口打印

    $html = '

    xmlns:w="urn:schemas-microsoft-com:office:word"

    xmlns="http://www.w3.org/TR/REC-html40">';//这句不能少,否则不能识别图片

    echo $html.$content.'';

    这是在火狐下的测试结果:

    b3b2e5e3ea673db271157566eba92704.png

    8ca149f0d6e12e2d4af9469574da6d8b.png

    前台html代码:

    870095395f7ec0f821ebc11fb8c8717d.png

    前台js代码:

    d9e55e10aa1e989e63148e82cf6b5b7a.png

    后台PHP代码:

    ac24336584aaf0c4708d71521b04f6d6.png

    运行之后:

    bffcf64f305544dd2a5f222fa0fd8cc0.png

    最后保存下来,打开看看,有图片显示:

    da75d4c6023a013353e05d47b2b568ff.png

    不喜勿喷,欢迎大家有更好的方法分享!

    展开全文
  • vue导出word图片

    2021-04-15 11:35:35
    npm install docxtemplater-image-module-free --save // 这个是图片处理的 npm install jszip-utils --save npm install pizzip --save npm install file-saver --save import Docxtemplater from 'docxtemplater'...
    1. 下载依赖,引入依赖
    npm install  docxtemplater jszip --save
    npm install  docxtemplater-image-module-free --save // 这个是图片处理的
    npm install  jszip-utils --save
    npm install  pizzip --save
    npm install  file-saver --save
    
    import Docxtemplater from 'docxtemplater'
    import ImageModule from 'docxtemplater-image-module-free'
    import PizZip from 'pizzip'
    import JSZipUtils from 'jszip-utils'
    import { saveAs } from 'file-saver'
    
    1. 添加画布,并给画布添加内容
     <div style="width:375px;height:570px">
          <canvas id="roadModel5" width="375" height="570"></canvas>
        </div>
    
        created_page () {
          this.show = true
    
          this.$nextTick(() => {
            var canvas = document.getElementById('roadModel5')
    
            var context = canvas.getContext('2d')
    
            var imgbg = new Image()
    
            imgbg.src = img
    
            var imgcode = new Image()
    
            imgcode.src = img
    
            imgbg.onload = function () {
              // console.log(imgbg.complete)
              if (imgbg.complete) {
                context.drawImage(imgbg, 0, 0, 375, 570)
    
                context.fillText('Hello World', 10, 50)
    
                imgcode.onload = function () {
                  if (imgbg.complete) {
                    context.drawImage(imgcode, 100, 200, 50, 50)
                  }
                }
              }
            }
          })
        },
    
    1. 添加word文档模板
      在这里插入图片描述

    2. 添加导出图片方法

        <div @click="exportDocx">
          点击下载图片
        </div>
    
        exportDocx () {
          // 这个是导出的方法
          let docxUrl = this.getStaticPath('/static/img.docx')
          JSZipUtils.getBinaryContent(docxUrl, (err, content) => {
            if (err) {
              throw err
            }
            let interModelCanvas = document.getElementById(this.interModelCanvasId)
            if (interModelCanvas) {
              // 路口模型图片
              this.acsInfo.interImg = interModelCanvas.toDataURL()
            }
            interModelCanvas = undefined
            let opts = {
              centered: false,
              getImage (tagValue, tagName) {
                return new Promise((resolve, reject) => {
                  JSZipUtils.getBinaryContent(tagValue, (error, content) => {
                    if (error) {
                      return reject(error)
                    }
                    return resolve(content)
                  })
                })
              },
              getSize (img, tagValue, tagName) {
                return [375, 570]
              }
            }
            const imageModule = new ImageModule(opts)
            const zip = new PizZip(content)
            const doc = new Docxtemplater()
              .loadZip(zip)
              .attachModule(imageModule)
              .compile()
            doc
              .resolveData({
                // 如果包含异步数据,用resolveData,在回调之后再处理,如果都是同步数据,直接用setData就可以
                name: this.acsInfo.name,
                exportImg: this.acsInfo.interImg,
                table: this.table
              })
              .then(() => {
                try {
                  doc.render()
                } catch (err) {
                  throw err
                }
                const out = doc.getZip().generate({
                  type: 'blob',
                  mimeType:
                    'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
                })
                saveAs(out, this.acsInfo.name + '导出图片模板' + '.doc') // 注意这里加下后缀,因为有些地方导出文件类型的文件,不能识别类型
              })
          })
        }
    

    直接上完整代码

    <template>
      <div id="docxExport">
        <div @click="exportDocx">
          点击下载图片
        </div>
        <div style="width:375px;height:570px">
          <canvas id="roadModel5" width="375" height="570"></canvas>
        </div>
      </div>
    </template>
    <script>
    import Docxtemplater from 'docxtemplater'
    import ImageModule from 'docxtemplater-image-module-free'
    import PizZip from 'pizzip'
    import JSZipUtils from 'jszip-utils'
    import { saveAs } from 'file-saver'
    //导出的图片自己本地找一张图片即可
    import img from '@/assets/img/export.jpg'
    export default {
      name: 'exportDocTemplate',
      data () {
        return {
          interModelCanvasId: 'roadModel5', // 路口模型对应的id
          acsInfo: {
            name: '导出图片',
            interImg: null
          },
        }
      },
      created () {
        this.created_page()
      },
      methods: {
        // 画布上面画图
        created_page () {
          this.show = true
    
          this.$nextTick(() => {
            var canvas = document.getElementById('roadModel5')
    
            var context = canvas.getContext('2d')
    
            var imgbg = new Image()
    
            imgbg.src = img
    
            var imgcode = new Image()
    
            imgcode.src = img
    
            imgbg.onload = function () {
              // console.log(imgbg.complete)
              if (imgbg.complete) {
                context.drawImage(imgbg, 0, 0, 375, 570)
    
                context.fillText('Hello World', 10, 50)
    
                imgcode.onload = function () {
                  if (imgbg.complete) {
                    context.drawImage(imgcode, 100, 200, 50, 50)
                  }
                }
              }
            }
          })
        },
        // 获取文件路径
        getStaticPath (appendPath) {
          // 模板文件放在静态目录下,需要从静态目录下获取路径
          const origin = location.origin
          const pathNameArr = location.pathname.split('\/')
          const linkPath = pathNameArr.slice(0, pathNameArr.length - 2).join('\/')
          const configFile = `${origin}${linkPath}${appendPath}`
          return configFile
        },
        // 导出图片表格
        exportDocx () {
          // 这个是导出的方法
          let docxUrl = this.getStaticPath('/static/img.docx')
          JSZipUtils.getBinaryContent(docxUrl, (err, content) => {
            if (err) {
              throw err
            }
            let interModelCanvas = document.getElementById(this.interModelCanvasId)
            if (interModelCanvas) {
              // 路口模型图片
              this.acsInfo.interImg = interModelCanvas.toDataURL()
            }
            interModelCanvas = undefined
            let opts = {
              centered: false,
              getImage (tagValue, tagName) {
                return new Promise((resolve, reject) => {
                  JSZipUtils.getBinaryContent(tagValue, (error, content) => {
                    if (error) {
                      return reject(error)
                    }
                    return resolve(content)
                  })
                })
              },
              getSize (img, tagValue, tagName) {
                return [375, 570]
              }
            }
            const imageModule = new ImageModule(opts)
            const zip = new PizZip(content)
            const doc = new Docxtemplater()
              .loadZip(zip)
              .attachModule(imageModule)
              .compile()
            doc
              .resolveData({
                // 如果包含异步数据,用resolveData,在回调之后再处理,如果都是同步数据,直接用setData就可以
                name: this.acsInfo.name,
                exportImg: this.acsInfo.interImg
              })
              .then(() => {
                try {
                  doc.render()
                } catch (err) {
                  throw err
                }
                const out = doc.getZip().generate({
                  type: 'blob',
                  mimeType:
                    'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
                })
                saveAs(out, this.acsInfo.name + '导出图片模板' + '.doc') // 注意这里加下后缀,因为有些地方导出文件类型的文件,不能识别类型
              })
          })
        }
      }
    }
    </script>
    <style>
    #docxExport {
    }
    </style>
    
    
    展开全文
  • 大家好 今天教大家如何批量导出WORD文档中的图片 有的时候我们Word文档里的图片太多比如超过20张以上 一个一个复制再导出来太麻烦了 但是单个图片导出来有的同学就不会 跟别说导出一大堆图片了 单个图片导出方法 ...
  • 在线生成合同信息,一个 word 文件里面有些信息需要通过数据库读取计算出并填写到 word 文档中最终显示在线 pdf 预览功能,接下来我交大家如果实现该需求 2、接下来实现如何替换文档内容 我们新建一个 aa.docx 的...
  • 有这样的需要,客户需要把表单信息导出,上级签字,这个涉及多行记录,需要导出word表格 找了很多方法,没有实现,现在将实现的方法分享出来 只有两个工具类,自带导出测试方法,根据自己需要修改图片和模板路径...
  • 导出word word模板 放在vue的 static 里面 return中的数据 引入的包 npm i jszip@^2.6.1 npm i file-saver@^2.0.2 npm i docxtemplater@^3.17.6 npm i jszip-utils@^0.1.0 导入 import docxtemplater from '...
  • VBA-Word图片导出(四种方法).txt
  • 主要介绍了Java实现用Freemarker完美导出word文档(带图片),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 网络上的根据模板填充Word我都看过一些, 它们的功能在数据换行的时候用的是run对象的.addCarriageReturn()方法,或者是直接用\n实现换行。这些都不符合我的需求, 因为我要的是分段,而不是换行。换行的word导致另一...
  • freemaeker导出word,(双循环带图片,模板,源码),运行环境jdk7,ftl详细注解
  • 1、【Java】使用freemarker模板技术导出word main方法测试 package com.havenliu.document; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; public class ...
  • java导出图片word

    2021-02-12 13:24:40
    prefix="s" uri="/...注:此处代码最好原封不动的,不要给它换行或者调换代码位置,因为如果此处甚至一换行都有可能到时候导出word提示有错误,我之前特意试过,至于原因自己也不知道2.后台代码将将图片转成b...
  • 多种方法图片+描述导出word,删除图片,注释完整,可按自己需求就行修改
  • Java导出word 图片重复

    2022-02-18 15:38:59
    Java导出word 遍历图片重复
  • 本小程序功能:将word文档中的图片导出,按图名命名存在相应的文件夹中。 仅适用word文档,图片和图名按“图片一行,紧接着图名一行”的嵌入式排版方式,且图名为“图”或“Fig”开头。如果是其他排版(如文字环绕式...
  • vue 导出word文档(包括图片

    千次阅读 2022-04-24 13:39:28
    vue 导出word文档(包括图片
  • 第一步:新建一个word,需要替换的内容用${replace}来做标记,图片的话直接将需要附带上的图先贴上去, 第二步: 然后保存为xml类型文件, 然后编辑器打开, 然后将图片内容 用 ${replace} 做标记 , 第三步:然后保存为 ftl...
  • Word导出图片 功能点 1.导出指定排版的文章 2.导出带样式的文字 3.导出图片 4.导出表格 使用方法 首先讲一下在代码中怎么使用 首先导入第三方库: import Docxtemplaterfrom 'docxtemplater' import PizZipfrom '...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,085
精华内容 9,634
关键字:

word导出图片

友情链接: SG6000-CloudEdge-VM.zip