java 图片写入word java poi图片写入word
摘要:java中怎么将word文档怎么生成图片 public class CreateWordDemo { public void createDocContext(String file) throws...
发布日期:2020-09-14java中怎么将word文档怎么生成图片
public class CreateWordDemo { public void createDocContext(String file) throws DocumentException,IOException { // 设置纸张大小 Document document = new Document(PageSize.A4); // 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, new FileOutputStream(file)); document.open(); // 设置中文字体 BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); // 标题字体风格 Font titleFont = new Font(bfChinese, 12,Font.BOLD); // 正文字体风格 Font contextFont = new Font(bfChinese, 10,Font.NORMAL); Paragraph title = new Paragraph("标题"); // 设置标题格式对齐方式 title.setAlignment(Element.ALIGN_CENTER); title.setFont(titleFont); document.add(title); String contextString ="iText是一个能够快速产生PDF文件的java类库。
" + " \n"// 换行 +"iText的java类对于那些要产生包含文本," + "表格,图形的只读文档是很有用的。
它的类库尤其与java Servlet有很好的给合。
" +"使用iText与PDF能够使你正确的控制Servlet的输出。
"; Paragraph context = new Paragraph(contextString); // 正文格式左对齐 context.setAlignment(Element.ALIGN_LEFT); context.setFont(contextFont); // 离上一段落(标题)空的行数 context.setSpacingBefore(5); // 设置第一行空的列数 context.setFirstLineIndent(20); document.add(context); // 利用类FontFactory结合Font和Color可以设置各种各样字体样式 Paragraph underline = new Paragraph("下划线的实现",FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 18,Font.UNDERLINE, new Color(0, 0,255))); document.add(underline); // 设置 Table 表格 Table aTable = new Table(3); int width[] = { 25, 25, 50 }; aTable.setWidths(width);// 设置每列所占比例 aTable.setWidth(90); // 占页面宽度90% aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(1); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 aTable.setPadding(2);// 衬距,看效果就知道什么意思了 aTable.setSpacing(3);// 即单元格之间的间距 aTable.setBorder(2);// 边框 // 设置表头 Cell haderCell = new Cell("表格表头"); haderCell.setHeader(true); haderCell.setColspan(3); aTable.addCell(haderCell); aTable.endHeaders(); Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,Color.GREEN); Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据",fontChinese)); cell.setVerticalAlignment(Element.ALIGN_TOP); cell.setBorderColor(new Color(255, 0,0)); cell.setRowspan(2); aTable.addCell(cell); aTable.addCell(new Cell("#1")); aTable.addCell(new Cell("#2")); aTable.addCell(new Cell("#3")); aTable.addCell(new Cell("#4")); Cell cell3 = new Cell(new Phrase("一行三列数据",fontChinese)); cell3.setColspan(3); cell3.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell3); document.add(aTable); document.add(new Paragraph("\n")); // 添加图片 Image.getInstance即可以放路径又可以放二进制字节流 Image img = Image.getInstance("d:\\img01800.jpg"); img.setAbsolutePosition(0,0); img.setAlignment(Image.RIGHT);// 设置图片显示位置 img.scaleAbsolute(60, 60);// 直接设定显示尺寸 // img.scalePercent(50);//表示显示的大小为原尺寸的50% // img.scalePercent(25,12);//图像高宽的显示比例 // img.setRotation(30);//图像旋转一定角度 document.add(img); document.close(); } public static void main(String[] args) { CreateWordDemo word = new CreateWordDemo(); String file ="d:/demo1.doc"; try { word.createDocContext(file); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
JAVA编辑WORD文件插入图片
以前做过其他office的没做过微软的,不过大同小异这个你就需要在java中获取到word的某种对象,方法有很多,但是要看你用什么方式调用的office了,如果是某个牌子的中间件,那就用那个中间件的二次开发文档里面应该就有提到这些方法,如果是第三方的jar包,应该也不麻烦,通过jar包中的方法,可能要有一个word的实例创建的过程吧,然后获取到range或者textrange等这些对象(应该是这俩对象……)通过这对象然后找到插入图片的方法,然后传入位置参数(可能是两个数用逗号隔开)
java写入word表格模板(欢迎高手过来探讨)
使用Java操作word的方法有几个,列出来:IText,Apache的POI包,tm-extractors包,jacob包,java2word包。
IText包比较大,但是功能比较全。
而且比较成熟,用的人也多。
POI包是Apache的一个项目,不过现在已经停止更新了,而且我看了里面的Example,感觉调用起来很麻烦。
用过之后再也不想用了。
tm-extractors包的API比较简单,调用起来很方便,代码量也少。
jacob包我觉得是最强大的,可以操作word,excel。
因为调用的是微软底层的dll文件,需要在system32目录下放置jacob.dll,然后在classpath里面添加jacob.jar文件。
推荐使用1.9版本,之前1.8版本调用起来就算你的代码没有写错也会出现一些莫名其妙的异常。
java2word也是调用微软的底层dll文件,有安装包,也有解压包,安装包会将jacob.dll文件装在system32目录下。
之后将java2word.jar加到classpath就可以使用了。
感觉如果只是操作word文档的话,比jacob用起来要简单和舒服。
代码量也少,很清晰。
另外,使用jacob和java2word的话,会在调用WINWORD进程,如果多人并发访问服务器的word文件的话,会造成内存不足。
如何利用java在图片上添加文字
import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.FileOutputStream;import javax.swing.ImageIcon;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class d {public static void main(String[] a) {d.createStringMark("D://A.jpg", "1",Color.white, 100,"d://B.jpg");}//给jpg添加文字public static boolean createStringMark(String filePath,String markContent,Color markContentColor,float qualNum ,String outPath) { ImageIcon imgIcon=new ImageIcon(filePath); Image theImg =imgIcon.getImage(); int width=theImg.getWidth(null)==-1?200:theImg.getWidth(null); int height= theImg.getHeight(null)==-1?200:theImg.getHeight(null); System.out.println(width);System.out.println(height);System.out.println(theImg);BufferedImage bimage = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB); Graphics2D g=bimage.createGraphics(); g.setColor(markContentColor); g.setBackground(Color.red); g.drawImage(theImg, 0, 0, null ); g.setFont(new Font(null,Font.BOLD,15)); //字体、字型、字号 g.drawString(markContent,11,height/2); //画文字 g.dispose(); try { FileOutputStream out=new FileOutputStream(outPath); //先用一个特定的输出文件名 JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage); param.setQuality(qualNum, true); encoder.encode(bimage, param); out.close(); } catch(Exception e) { return false; } return true; }}
如何把文字写入图片我想把文字写在图片上,怎么做呀?
1. 进入发表文章窗口;(想要作背景的图片网络地址应该先前就知道,否则文章做一半又得去找图,多烦!) 2. 勾选“显示源代码”---至关重要! 3. 在编辑栏内添加下列代码: 4. 取消“显示源代码”的选择,你就会在编辑栏看到图片,而且光标也在图片之上(可能光标的首行不在图片的顶端,不过没有关系,尽管从光标的首行可是您的写作就行了,文字会自动顶到图片的顶端); 5. 写文章与没有图片一样,完了点击“发表文章”就行了。
6. 把
Java读取数据库打印到word文档问题求教各位大侠,java写
为什么非要写道wod文档中? 你可以写进txt文件中,然后使用wod进行编辑 如果确实需要,请看下面的例子: impot java.io.File; impot java.io.FileInputSteam; impot java.io.FileOutputSteam; impot og.apache.poi.hwpf.extacto.WodExtacto; impot og.apache.poi.hwpf.model.io.HWPFOutputSteam; pulic class Wod { ** * 读取纯文本的wod文件 *pulic Sting eadWod(Sting doc) thows Exception { Sting context = null; WodExtacto extacto = null; 纯文本的遍历器 ty { FileInputSteam in = new FileInputSteam(new File(doc)); extacto = new WodExtacto(in); context = extacto.getText(); } catch (Exception e) { e.pintStackTace(); } etun context; } ** * 对wod文档做写操作 * *pulic oolean witeWod(Sting path, Sting content) thows Exception { oolean w = false; ty { yte [] = content.getBytes(); FileOutputSteam fs = new FileOutputSteam(path); HWPFOutputSteam hos = new HWPFOutputSteam(); hos.wite(, 0, .length); hos.witeTo(fs); hos.close(); w=tue; } catch (Exception e) { e.pintStackTace(); } etun w; } pulic static void main(Sting[] ags) { ReadWod w = new ReadWod(); ty{ Sting text = w.eadDoc("D:\\wokspace\\MyUntil\\t.doc"); w.witeDoc("D:\\wokspace\\MyUntil\\d.doc", text); }catch(Exception e){ e.pintStackTace(); } } } 所需的包请各位自己上apache的官网上poi工程目录下下吧 poi-3.5-final poi-conti-3.5-final poi-ooxml-3.5-final poi-scatchpad-3.5-final
怎么使用JAVA,POI读写word文档
如何使用JAVA、POI读写word文档??能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式不变。
最好能给个例子?网上多是很早以前的那个解决方法如下:,只能读文本内容,且新生成的word文件打开时总是要提示选择编码,不太好用,希望能有新的解决方案??!!poi操作word1.1 添加poi支持:包下载地址1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。
但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。
下载地址为;下载extractors-0.4_zip这个文件2、提取Doc文件内容 public static String readDoc(String doc) throws Exception {// 创建输入流读取DOC文件 FileInputStream in = new FileInputStream(new File(doc)); WordExtractor extractor = null; String text = null;// 创建WordExtractor extractor = new WordExtractor();// 对DOC文件进行提取 text = extractor.extractText(in); return text; } public static void main(String[] args) { try{ String text = WordReader.readDoc("c:/test.doc"); System.out.println(text); }catch(Exception e){ e.printStackTrace(); } }3、写入Doc文档 import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class WordWriter { public static boolean writeDoc(String path, String content) { boolean w = false; try { // byte b[] = content.getBytes("ISO-8859-1"); byte b[] = content.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(b); POIFSFileSystem fs = new POIFSFileSystem(); DirectoryEntry directory = fs.getRoot(); DocumentEntry de = directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(path); fs.writeFilesystem(ostream); bais.close(); ostream.close(); } catch (IOException e) { e.printStackTrace(); } return w; } public static void main(String[] args) throws Exception{ String wr=WordReader.readDoc("D:\\test.doc"); boolean b = writeDoc("D:\\result.doc",wr);
在word中插入图片后,可不可以把文字写在图片的左边或右边,竖着?...
点击“插入”—“文本框”—“竖排”,用鼠标拖动即可得到文本框,其大小及位置均可自由拖动。
你可根据你的要求拖到图片的左边或右边。
注:右键点击图片,再点击“设置图片格式”—“版式”,选“四周型”或“紧密型”—“确定”后,图片也能任意拖动。
问题补充了,回答也补充一下:用文本框的话,最后的框可以通过将线条颜色设为白色来“去掉”。
具体方法是:用鼠标点一下文本框,再把鼠标光标移到文本框的外框线处,当出现上下左右箭头时用鼠标右键点击一下,在其后弹出的对话框中点一下“设置文本框格式”。
然后在“设置文本框格式”对话框中的“线条”栏里就能设置线条的颜色、线型、虚实、粗细了。
把颜色设为白色的话,这个框就看不到了。
用photoshop也行,不过难以说清楚。
如何用java写全黑图片
public static void main(String[] args) {//创建一个150x50,RGB高彩图,类型可自定BufferedImage img=new BufferedImage(150, 50, BufferedImage.TYPE_INT_RGB);//取得图形Graphics g=img.getGraphics();//设置黑色g.setColor(Color.BLACK);//填充g.fillRect(0, 0, img.getWidth(), img.getHeight());//在d盘创建个文件File file=new File("D:/test.png");try{//以png方式写入,可改成jpg其他图片ImageIO.write(img, "PNG", file);}catch (IOException e){e.printStackTrace();}//d盘上就生成了这么个黑色图片}================专为你写的啊
- 上一篇:脚本运行软件 可以运行脚本的软件
- 下一篇:软件测评与软件测试 软件测试经验与教训