導航:首頁 > 文字圖片 > java讀取word文件圖片

java讀取word文件圖片

發布時間:2022-12-27 09:47:10

A. java 中用poi讀取word和用docx4j讀取word

不知道你是具體讀取Word裡面的什麼元素,下面以讀取文字和圖片為例吧,兩個代碼示例,你參考看看:

  1. 讀取文本

import com.spire.doc.Document;

import java.io.FileWriter;

import java.io.IOException;

public class ExtractText {

public static void main(String[] args) throws IOException {

//載入Word文檔
Document document = new Document();
document.loadFromFile("C:\Users\Administrator\Desktop\sample.docx");

//獲取文檔中的文本保存為String
String text=document.getText();

//將String寫入Txt文件
writeStringToTxt(text,"ExtractedText.txt");
}

public static void writeStringToTxt(String content, String txtFileName) throws IOException {

FileWriter fWriter= new FileWriter(txtFileName,true);
try {
fWriter.write(content);
}catch(IOException ex){
ex.printStackTrace();
}finally{
try{
fWriter.flush();
fWriter.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

}


2. 讀取圖片


import com.spire.doc.Document;

import com.spire.doc.documents.DocumentObjectType;

import com.spire.doc.fields.DocPicture;

import com.spire.doc.interfaces.ICompositeObject;

import com.spire.doc.interfaces.IDocumentObject;

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

import java.util.Queue;

public class ExtractImages {

public static void main(String[] args) throws IOException {

//載入Word文檔

Document document = new Document();

document.loadFromFile("C:\Users\Administrator\Desktop\sample.docx");

//創建Queue對象

Queue nodes = new LinkedList();

nodes.add(document);

//創建List對象

List images = new ArrayList();

//遍歷文檔中的子對象

while (nodes.size() > 0) {

ICompositeObject node = nodes.poll();

for (int i = 0; i < node.getChildObjects().getCount(); i++) {

IDocumentObject child = node.getChildObjects().get(i);

if (child instanceof ICompositeObject) {

nodes.add((ICompositeObject) child);

//獲取圖片並添加到List

if (child.getDocumentObjectType() == DocumentObjectType.Picture) {

DocPicture picture = (DocPicture) child;

images.add(picture.getImage());

}

}

}

}

//將圖片保存為PNG格式文件

for (int i = 0; i < images.size(); i++) {

File file = new File(String.format("output/圖片-%d.png", i));

ImageIO.write(images.get(i), "PNG", file);

}

}

}

注意這里使用的jar包是spire.doc.jar,需要在java程序中先導入jar文件。

B. JAVA編輯WORD文件插入圖片

試試這個代碼,需要添加spire.doc jar依賴

importcom.spire.doc.Document;
importcom.spire.doc.FileFormat;
importcom.spire.doc.Section;
importcom.spire.doc.documents.*;
importcom.spire.doc.fields.DocPicture;

publicclassInsertImage{

publicstaticvoidmain(String[]args){

//實例化Document對象
Documentdoc=newDocument();
//載入文檔
doc.loadFromFile("C:\Users\Administrator\Desktop\test.docx");
//獲取第一個section
Sectionsection=doc.getSections().get(0);
//添加一個段落
Paragraphpara=section.addParagraph();
//添加圖片到段落
DocPicturepicture=para.appendPicture("C:\Users\Administrator\Desktop\Cartoon.png");
//設置文字環繞方式(居於文字上方)
picture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text);
//指定圖片的相對位置
picture.setHorizontalOrigin(HorizontalOrigin.Page);
picture.setHorizontalPosition(250f);
picture.setVerticalOrigin(VerticalOrigin.Top_Margin_Area);
picture.setVerticalPosition(150f);
//設置圖片大小
picture.setWidth(80f);
picture.setHeight(80f);
//保存到文檔
doc.saveToFile("output/InsertImage.docx",FileFormat.Docx);
}
}

生成的Word:

C. 用java怎麼將word文檔轉成圖片格式

使用 java 操作 openoffice 實現格式轉換 辛苦了幾天。 不敢獨享成果

首先,要安裝 openoffice (廢話- -)
創建JAVA項目的時候 需要至少以下4個包

juh.jar,jurt.jar,ridl.jar,unoil.jar
以下是路徑
..\OpenOffice.org 2.3\program\classes

我只實現了我要的功能,就是把一種文件格式轉成另一種

Java代碼
package testh;

import java.io.*;
import com.sun.star.uno.UnoRuntime;

public class testcls {

public static void readdoc(String paths, String savepaths)
{
File d = new File(paths);
//取得當前文件夾下所有文件和目錄的列表
File lists[] = d.listFiles();
String pathss = new String("");

//對當前目錄下面所有文件進行檢索
for(int i = 0; i < lists.length; i ++)
{
if(lists[i].isFile())
{
String filename = lists[i].getName();
String filetype = new String("");
//取得文件類型
filetype = filename.substring((filename.length() - 3), filename.length());

//判斷是否為doc文件
if(filetype.equals("doc"))
{
System.out.println("當前正在檢索....");
//列印當前目錄路徑
System.out.println(paths);
//列印doc文件名
String fname=filename.substring(0, (filename.length() - 4));
System.out.println("檢索到文件"+fname);
try
{
//指定文件路徑和名稱
String path = savepaths+fname+".html";
File outfilename = new File(path);

/** *//**
* 檢查文件是否存在.
* @throws IOException
*
*/

if (!outfilename.exists()) {
System.err.println("目標路徑無同名文件,開始轉換");

System.out.print("正在轉換文件:"+fname);
Dump(paths,fname,savepaths);

}
else
{
System.out.print("文件已存在,放棄創建,請處理存在文件後再運行...\n");
continue;
}

RandomAccessFile mm = null;

}
catch(Exception e)
{
e.printStackTrace();
}
}

}

}

}

public static void Dump(String FilePath,String FileName,String OutPath)
{
com.sun.star.uno.XComponentContext xContext = null;

try {
// get the remote office component context
xContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
System.out.println("Connected to a running office ...");

// get the remote office service manager
com.sun.star.lang.XMultiComponentFactory xMCF =
xContext.getServiceManager();

Object oDesktop = xMCF.createInstanceWithContext(
"com.sun.star.frame.Desktop", xContext);

com.sun.star.frame.XComponentLoader xCompLoader =
(com.sun.star.frame.XComponentLoader)
UnoRuntime.queryInterface(
com.sun.star.frame.XComponentLoader.class, oDesktop);

java.io.File sourceFile = new java.io.File(FilePath+FileName+".doc");//讀取的文件
StringBuffer sLoadUrl = new StringBuffer("file:///");
sLoadUrl.append(sourceFile.getCanonicalPath().replace('\\', '/'));

sourceFile = new java.io.File(OutPath+FileName+".html");//輸出的文件
System.out.print(OutPath+" "+FileName);
StringBuffer sSaveUrl = new StringBuffer("file:///");
sSaveUrl.append(sourceFile.getCanonicalPath().replace('\\', '/'));

com.sun.star.beans.PropertyValue[] propertyValue =
new com.sun.star.beans.PropertyValue[1];
propertyValue[0] = new com.sun.star.beans.PropertyValue();
propertyValue[0].Name = "Hidden";
propertyValue[0].Value = new Boolean(true);

Object oDocToStore = xCompLoader.loadComponentFromURL(
sLoadUrl.toString(), "_blank", 0, propertyValue );
com.sun.star.frame.XStorable xStorable =
(com.sun.star.frame.XStorable)UnoRuntime.queryInterface(
com.sun.star.frame.XStorable.class, oDocToStore );

propertyValue = new com.sun.star.beans.PropertyValue[ 2 ];
propertyValue[0] = new com.sun.star.beans.PropertyValue();
propertyValue[0].Name = "Overwrite";
propertyValue[0].Value = new Boolean(true);
propertyValue[1] = new com.sun.star.beans.PropertyValue();
propertyValue[1].Name = "FilterName";
propertyValue[1].Value = "HTML (StarWriter)";//你一定發現了,把這里改成其他參數,可以保存為不同的文件 MS Word 97,writer_pdf_Export
xStorable.storeAsURL( sSaveUrl.toString(), propertyValue );

System.out.println("\nDocument \"" + sLoadUrl + "\" saved under \"" +
sSaveUrl + "\"\n");

com.sun.star.util.XCloseable xCloseable = (com.sun.star.util.XCloseable)
UnoRuntime.queryInterface(com.sun.star.util.XCloseable.class,
oDocToStore );

if (xCloseable != null ) {
xCloseable.close(false);
} else
{
com.sun.star.lang.XComponent xComp = (com.sun.star.lang.XComponent)
UnoRuntime.queryInterface(
com.sun.star.lang.XComponent.class, oDocToStore );
xComp.dispose();
}
System.out.println("document closed!");
}
catch( Exception e ) {
e.printStackTrace(System.err);
System.exit(1);
}
}

public static void main(String args[]) throws Exception
{
String paths = new String("c:\\a\\");
String savepaths = new String ("f:\\");
readdoc(paths,savepaths);

}

}

D. 我想要實現的功能是用java讀取word中的自定義圖片

建議使用PageOffice很簡單就能實現這些。

E. 用Java從word中提取出圖片

因為太長了, 我放我空間了
思路是2003以後, word就可存為xml, 二進制數據按base64編碼
然後可以按解析xml文檔方式獲取圖片數據
然後對它進行解碼--

F. java:一個文件夾里裡面有很多圖片有很多word文件有我要如何讀取word文件名,該如何做

可以用過濾器,也可以循環自己判斷,如FourQueue 寫的那樣。
下邊是過濾器的例子。
------------------------------------------------------------------------------------
import java.io.File;
import java.io.FilenameFilter;

public class FileDoc {

public static void main(String[] args) {
File root = new File("D:\\test");
File[] files = root.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
if (name.toLowerCase().endsWith("doc")) {
// 2003 word
return true;
}
if (name.toLowerCase().endsWith("docx")) {
// 2007 word
return true;
}
return false;
}
});

for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getPath());
}
}

}

G. 有關Java POI問題:從資料庫讀取word excel 或者是html文件,如何讀取文件內容,創建包含內容的圖片文件

你可以把word文件用二進制的方式保存到資料庫,再把他讀取出來,
WordExtractor extractor = new WordExtractor();
String str = extractor.extractText(in);
這個in 你可以把讀取出來的二進制轉為ByteArrayInputStream 對象。

H. java中如何讀取word中的某一張圖片及讀取word中的公式有沒有人做過類似的功能啊在線等。

有操作office的包,不過我只操作過Excel,沒試過Word
你在Google搜 「java Excel」或「java office」即可找到。

I. 用java程序如何讀取word裡面的圖片

試試jacob,這個操作word的功能還是蠻多的。

閱讀全文

與java讀取word文件圖片相關的資料

熱點內容
我能怎麼辦搞笑圖片 瀏覽:262
啦啦操衣服圖片 瀏覽:368
如何將幾張圖片放在word同一頁 瀏覽:547
傘兵一號准備就緒文字圖片 瀏覽:138
素描畫圖片簡單又好畫的少女 瀏覽:387
微博空白圖片怎麼發 瀏覽:406
名車豎版高清壁紙圖片 瀏覽:560
互懟的小可愛圖片 瀏覽:972
短頭發穿衣服好看圖片 瀏覽:98
好看簡單的背景圖片 瀏覽:699
卡通女孩長發背影圖片 瀏覽:679
文字手機壁紙高清圖片 瀏覽:659
動漫道姑圖片 瀏覽:525
美女的配圖片大全 瀏覽:503
女生光腿絲巾圖片 瀏覽:460
龍女的卡通畫圖片大全可愛 瀏覽:537
傳琪越野價格和圖片 瀏覽:203
穿貓衣服的情侶圖片 瀏覽:923
胖子男生圖片 瀏覽:191
兩棵樹簡筆畫簡單又好看圖片 瀏覽:684