導航:首頁 > 文字圖片 > nodeword圖片

nodeword圖片

發布時間:2023-03-04 11:10:55

A. vue如何將html插入到word模板的指定位置

在Word指定位置插入富文本域值(html文本)
遇到此問題,首先想到的就是各種網路。結果度娘了一會並沒有發現有用的有效的解決方法,哎,看來還得靠自己啊。

首先整理了下手頭上的資源,一是HtmlAgilityPack,專門解析Html文本用的;二是我有ASPOSE.Word。

再整理下思路:在Word中插入Html,首先有一點是肯定的,Word跟Html都是Document結構,這點應該是沒啥懷疑的。如此的話就感覺好辦多了,無非就是Document上插入幾個節點,在Html插入節點的方式完全可以運用到此地方。

那麼第一種解決方法就是:首先把Word轉換為Html,然後在指定位置插入當前要插入的Html代碼,然後再保存成Word格式的文檔。

第二種方式就是:把Html解析出有效的文本,利用Word增加段落的方式添加從Html中解析出來的文本。

HtmlAgilityPack.HtmlDocument hd = new HtmlAgilityPack.HtmlDocument();
hd.LoadHtml(txtContent.Value);

hd.DocumentNode.Elements("p");

通過此方式就可以獲取到富文本域裡面的所有文本信息。但是此種方式獲取到的節點在ASPOSE類裡面不識別。

再繼續折騰吧,回到ASPOSE上面。找幫助文檔,尋網路。

Document doc = new Document(Server.MapPath("~/tem_body.doc"));
DocumentBuilder docBuilder = new DocumentBuilder(doc);
docBuilder.InsertHtml(txtContent.Value);

doc.Save(Server.MapPath("~/") + "/TestWord121.doc");

打開保存後的文件,My God,這樣就可以了。再試試帶圖片的,也很不錯,圖片也可以正常在Word裡面正常顯示。看來此插件確實很強大啊,不過到目前還並沒有解決我的問題。就是插入的位置問題。目前它是插入的頭部,即Body的Paragraph 0 處。

接下來就是解決如何把HTML文本插入到指定位置,想了想得首先知道要插入的位置,度娘了一會發現了東東。DocumentExplorer,它可以查看Word文檔裡面的Doc結構。

速度找了一個,打開後就可以清晰地看到Word文檔:

這樣的話就知道自己要插入的位置在那個地方。最簡單的就是設置好模板,找到要插入的位置節點。

Document temdoc = new Document(Server.MapPath("~/tem.doc"));
Document doc = new Document();
DocumentBuilder docBuilder = new DocumentBuilder(doc);
docBuilder.InsertHtml(txtContent.Value);
docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
temdoc.AppendDocument(doc, ImportFormatMode.KeepSourceFormatting);

DocumentBuilder temdocBuilder = new DocumentBuilder(temdoc);

var temParas = temdocBuilder.Document.Sections[1].Body.Paragraphs;
//int intIndexer = 0;
foreach (Paragraph para in temParas)
{

// 這裡面隨便指定了一個位置,在Paragraphs的第六個節點處
temdocBuilder.Document.Sections[0].Body.InsertAfter(para.Clone(true), temdocBuilder.Document.Sections[0].Body.Paragraphs[5 + intIndexer - 1].NextSibling);
intIndexer++;
}
temdocBuilder.Document.Sections.RemoveAt(1);

temdoc.Save(Server.MapPath("~/") + "/TestWord1212.doc");

再次保存後打開測試Word文檔,符合自己的預期,解決了把HTML文本插入到Word文檔的指定位置。再試試帶圖片的,結果發現Word文檔裡面有沒有圖片,回頭想想,之前是可以正常保存且顯示圖片的,現在不顯示圖片而只顯示一個叉叉,看來是因為圖片路勁出問題了。

B. 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文件。

閱讀全文

與nodeword圖片相關的資料

熱點內容
動畫圖片簡約可愛 瀏覽:212
抖音男生傷感文案圖片大全 瀏覽:823
關於男女朋友文字控圖片白底黑字 瀏覽:806
女生開濾鏡之後對比圖片 瀏覽:227
微信如何查對方已撤回的圖片 瀏覽:595
王澤女生圖片 瀏覽:765
動畫片女孩圖片大全大圖 瀏覽:223
動漫gl圖片 瀏覽:141
男孩卡通圖片簡單 瀏覽:52
仙俠風圖片背景怎麼弄好看 瀏覽:471
如何經營一段感情圖片 瀏覽:208
電影截圖傷感文字圖片 瀏覽:52
在線自定義文字圖片 瀏覽:999
高冷短發女生圖片 瀏覽:285
綠衣服敬禮圖片 瀏覽:686
陳數電視劇中的鎖骨發型圖片 瀏覽:586
吊帶花長裙怎麼搭配圖片 瀏覽:622
如何把3張圖片在word上排版列印 瀏覽:383
傷感女生壁紙圖片二次元 瀏覽:701
古裝美女頭像唯美圖片 瀏覽:953