導航:首頁 > 文字圖片 > poiword導出圖片

poiword導出圖片

發布時間:2023-08-04 04:40:48

怎麼使用JAVA,POI讀寫word文檔

如何使用JAVA、POI讀寫word文檔??
能不能將一個word的內容完全讀過來,放到一個新生成的word文件中去,要求能將word中的表格、圖片等保留,格式不變。最好能給個例子?網上多是很早以前的那個解決方法如下:,只能讀文本內容,且新生成的word文件打開時總是要提示選擇編碼,不太好用,希望能有新的解決方案??!!

poi操作word
1.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 s = new ByteArrayInputStream(b);

POIFSFileSystem fs = new POIFSFileSystem();
DirectoryEntry directory = fs.getRoot();

DocumentEntry de = directory.createDocument("WordDocument", s);

FileOutputStream ostream = new FileOutputStream(path);

fs.writeFilesystem(ostream);

s.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);

Ⅱ java 把office word,ppt轉化為圖片

從一個大神那裡學來的,已測試無誤
package com;

import java.awt.Dimension;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;

import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;

public class ExportPPT {

public static void main(String[] args) {
// 讀入PPT文件
File file = new File("D:\\UPH.ppt");
doPPTtoImage(file);
}

public static boolean doPPTtoImage(File file) {
boolean isppt = checkFile(file);
if (!isppt) {
System.out.println("The image you specify don't exit!");
return false;
}
try {
FileInputStream is = new FileInputStream(file);
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();
org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
TextRun[] truns = slide[i].getTextRuns();
for (int k = 0; k < truns.length; k++) {
RichTextRun[] rtruns = truns[k].getRichTextRuns();
for (int l = 0; l < rtruns.length; l++) {
rtruns[l].setFontIndex(1);
rtruns[l].setFontName("宋體");
}
}
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,
BufferedImage.TYPE_INT_RGB);

Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.BLUE);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);

// 這里設置圖片的存放路徑和圖片的格式(jpeg,png,bmp等等),注意生成文件路徑
File path = new File("D:/images");
if (!path.exists()) {
path.mkdir();
}
FileOutputStream out = new FileOutputStream(path + "/" + (i + 1)
+ ".jpg");
javax.imageio.ImageIO.write(img, "jpeg", out);
out.close();
}
System.out.println("success!!");
return true;
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
}
return false;
}

// function 檢查文件是否為PPT
public static boolean checkFile(File file) {

boolean isppt = false;
String filename = file.getName();
String suffixname = null;
if (filename != null && filename.indexOf(".") != -1) {
suffixname = filename.substring(filename.lastIndexOf("."));
if (suffixname.equals(".ppt")) {
isppt = true;
}
return isppt;
} else {
return isppt;
}
}

}

Ⅲ poi生成word後word裡面的圖片不變形

你好,你是問poi生成word後如何保證word裡面的圖片不變形嗎?
1、確保生成的圖片盡可能地與最終需要插入的Word文檔保持相同的比例。可以通過設置圖片大小或縮放來實現。
2、在將圖片插入到Word文檔之前,最好在一個圖片編輯軟體中打開並進行調整,以便將其完全適配Word頁面並按照正確的比例顯示。
3、推薦使用POI中提供的setAutoSize(true)方法自動調整頁面布局大小,這樣可以確保文本和圖片都能夠均勻分布且沒有間隔。
4、在將圖片插入到Word文檔中時,可以選擇「不鎖定縱橫比」選項搭清,以確保圖片在Word文檔中不變形。poi是基於OfficeOpenXML標准(OOXML)和Microsoft的OLE2復液擾合文檔格式(OLE2)處理各種文件知埋前格式的開源項目。

Ⅳ poi讀取word文檔,如何獲取圖片的位置

程序中列印出的i就是圖片的索引位置
if(pTable.hasPicture(cr)){

//獲取圖片路徑
picpath=this.readPicture(pTable, cr);
System.out.println("索引"+i);
currentChar=cr.text().charAt(0);
tempString+=picpath+"<br/>";

}else {

Ⅳ POI可否實現導出帶有圖片的word文件

poi jacob不太好用,樓主可以用PageOffice解決這個問題。 生成文件的時候替換模板標簽數據,插入圖片或合並多個word文檔都可以實現的。

Ⅵ 有什麼方法可以用java 將word或者Excel文件轉換成圖片文件

可以用openoffice將word轉化為pdf,再使用swftools把pdf轉換為swf

Ⅶ java 誰有poi讀取本地word然後在替換word的內容如table、圖片....的demo、然後再將word轉成pdf 在線等

對word文檔的寫操作沒做過,但POI是肯定支持的(包括word2003,2007,2010)。已經有最新的POI 3.8了。你可以參考。http://poi.apache.org/index.html

Ⅷ 請教:如何用JAVA POI 向Word文檔里插圖片 請提供下代碼 謝謝!!!

樓主你可以這樣操作,導入java.io.*。org.apache.poi.hwpf.*。org.apache.poi.hwpf.usermodel.Picture

String savePath= "c:\\temp\\";
String docFile= savePath+ "test.doc";
String imgFile= savePath+ "img.jpg";

HWPFDocument poiDoc = new HWPFDocument(new FileInputStream(docFile));
List picList=poiDoc.getPicturesTable().getAllPictures();
Picture picture=(Picture)picList.get(0);
try {
picture.writeImageContent(new FileOutputStream(imgFile));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

閱讀全文

與poiword導出圖片相關的資料

熱點內容
秀氣男生發型圖片 瀏覽:56
衣服扣子簡筆畫圖片 瀏覽:589
盛昊730價格及圖片 瀏覽:993
美女跳拉丁舞圖片 瀏覽:892
給男生送什麼花合適圖片 瀏覽:494
惡搞美女光屁股動態圖片 瀏覽:833
電郵中圖片格式怎麼固定 瀏覽:855
狐妖動漫人物圖片 瀏覽:201
如何把手機圖片導入電腦然後列印出來 瀏覽:270
蜻蜓石斛圖片大全 瀏覽:553
動漫蘿莉被褥圖片 瀏覽:54
韓版卡通女生圖片 瀏覽:749
古裝漫畫q版人物圖片簡單 瀏覽:814
簡單愛護眼睛的圖片 瀏覽:154
男生頭像迷茫圖片 瀏覽:251
暗紅色男生圖片 瀏覽:429
整容發型圖片女 瀏覽:816
新娘發型前後圖片 瀏覽:18
嵖岈山門圖片及價格 瀏覽:462
迷之愛衣服圖片大全 瀏覽:133