java中怎么将word文档怎么生成图片

最近一个项目中需要把文字生成图片,目前想到的是吧文字转换成word文档(模板)再转成图片,可是转换成word文档后,转换不了图片了,缩略图也行。。求解。。... 最近一个项目中需要把文字生成图片,目前想到的是吧文字转换成word文档(模板)再转成图片,可是转换成word文档后,转换不了图片了,缩略图也行。。求解。。 展开
 我来答
似灵杉0Ey
2015-08-27 · TA获得超过313个赞
知道小有建树答主
回答量:341
采纳率:55%
帮助的人:144万
展开全部
  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();

  }

  }
  }
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
百度网友c2ac8041
2015-04-02 · TA获得超过880个赞
知道小有建树答主
回答量:468
采纳率:100%
帮助的人:259万
展开全部
new一个BufferedImage 对象,在上面画上字就可以了。简单的很,不用word.
public class MyTest{

public static void main(String[] args) throws IOException {
BufferedImage image= new BufferedImage(200, 150, BufferedImage.TYPE_INT_ARGB);
Graphics g=image.createGraphics();
g.setFont(new Font("黑体",Font.PLAIN, 20));
g.setColor(new Color(255,10,10));
g.drawString("你好我就是测试的", 10, 20);
g.dispose();
ImageIO.write(image, "png", new File("d:/test.png"));
}
}
更多追问追答
追问
这个我用了 

主要是他的模板单一,,不能满足多样的需求,,想弄一个word来弄模板,需求更改只需要改word文档模板就行了
追答
你的意思就是给一个word文档然后类似截图?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laobaitu0322
2015-04-02 · TA获得超过744个赞
知道小有建树答主
回答量:900
采纳率:33%
帮助的人:635万
展开全部
直接弄一个Graphics,把文字写在上面,再存成图片不就好了
追问
那样弄出来后没有个固定的模板,,需求一变又得改代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式