请教:如何用JAVA POI 向Word文档里插图片 请提供下代码 谢谢!!!

请教:如何用JAVA POI 向Word文档里插图片 请提供下代码 谢谢!!!,第1张

楼主你可以这样 *** 作,导入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()

}

ueditor实现word文档的导入和下载功能的方法:

1、UEditor没有提供word的导入功能,只能说是粘贴复制。

2、方案:用poi来提供word导入,思路是将word转换为html输出,再用UEditor提供的setContent()方法将html的内容添加到编辑器中。

方案缺点,一是poi对word文本的格式获取必须按setContent()可接受的方式进行;二是我暂时没发现poi可以提供获取段落格式(对齐方式、缩进量)的方法。

代码如下:package demo

import java.io.BufferedWriter

import java.io.ByteArrayOutputStream

import java.io.File

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

import java.io.OutputStreamWriter

import java.util.List

import javax.xml.parsers.DocumentBuilderFactory

import javax.xml.parsers.ParserConfigurationException

import javax.xml.transform.OutputKeys

import javax.xml.transform.Transformer

import javax.xml.transform.TransformerException

import javax.xml.transform.TransformerFactory

import javax.xml.transform.dom.DOMSource

import javax.xml.transform.stream.StreamResult

import org.apache.poi.hwpf.HWPFDocument

import org.apache.poi.hwpf.converter.PicturesManager

import org.apache.poi.hwpf.converter.WordToHtmlConverter

import org.apache.poi.hwpf.usermodel.Picture

import org.apache.poi.hwpf.usermodel.PictureType

import org.w3c.dom.Document

public class Word2Html {

public static void main(String argv[]) {

String htmlContent = new String()

try {

htmlContent = convert2Html("D://test//1.doc","D://test//1.html")

} catch (Exception e) {

e.printStackTrace()

}

System.out.println(htmlContent)

}

/**

* 将内容写入指定路径下的<a href="https://www.baidu.com/s?wd=html%E6%96%87%E4%BB%B6&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9Pj9hrARdrAR1PhnLmWmL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHnvrjDkP1mzPWRLrj6knj64rf" target="_blank" class="baidu-highlight">html文件</a>

* @param content

* @param path

*/

public static void writeFile(String content, String path) {

FileOutputStream fos = null

BufferedWriter bw = null

try {

File file = new File(path)

fos = new FileOutputStream(file)

bw = new BufferedWriter(new OutputStreamWriter(fos,"UTF-8"))

bw.write(content)

} catch (FileNotFoundException fnfe) {

fnfe.printStackTrace()

} catch (IOException ioe) {

ioe.printStackTrace()

} finally {

try {

if (bw != null)

bw.close()

if (fos != null)

fos.close()

} catch (IOException ie) {

}

}

}

/**

* 转换为html

* @param fileName

* @param outPutFile

* @throws TransformerException

* @throws IOException

* @throws ParserConfigurationException

*/

public static String convert2Html(String fileName, String outPutFile)

throws TransformerException, IOException, ParserConfigurationException {

HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(fileName)) //WordToHtmlUtils.loadDoc(new FileInputStream(inputFile))

WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument())

wordToHtmlConverter.setPicturesManager(new PicturesManager()

{

/**

* 按建议名称保存图片

*/

public String savePicture( byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches )

{

return "D:/test/"+suggestedName

}

} )

wordToHtmlConverter.processDocument(wordDocument)

//save pictures

List pics = wordDocument.getPicturesTable().getAllPictures()

if( pics!=null ){

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

Picture pic = (Picture)pics.get(i)

System.out.println()

try {

pic.writeImageContent(new FileOutputStream("D:/test/" + pic.suggestFullFileName()))

} catch (FileNotFoundException e) {

e.printStackTrace()

}

}

}

Document htmlDocument = wordToHtmlConverter.getDocument()

ByteArrayOutputStream out = new ByteArrayOutputStream()

DOMSource domSource = new DOMSource(htmlDocument)

StreamResult streamResult = new StreamResult(out)

TransformerFactory tf = TransformerFactory.newInstance()

Transformer serializer = tf.newTransformer()

serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8")

serializer.setOutputProperty(OutputKeys.INDENT, "yes")

serializer.setOutputProperty(OutputKeys.METHOD, "html")

serializer.transform(domSource, streamResult)

out.close()

writeFile(new String(out.toByteArray()), outPutFile)

return new String(out.toByteArray())

}

}

PDF文档转换成Word文档及其它

一 、怎样从多页的PDF文档里抽取若干页成为JPG格式图片最方便的要数使用Adobe Acrobat,点击Adobe Acrobat里的“导出”工具按钮,并选择“JPG”,PDF文档的所有页面就自动转换成一个个JPG格式文件。如果你有Photoshop软件,可以这样 *** 作,在Photoshop里打开PDF文档,Photoshop会让你选择打开那个页面,选定页面后打开,再另存为JPG格式图片文件。这个方法的缺点是一次只能抽取一页,需要重复 *** 作,效率比较低。二、怎样将PDF文档转换成Word文档在adobe acrobat里将要转换的PDF文档打开, *** 作菜单“文件”→“另存为”,将保存类型选为“Microsoft word”就能转换成Word文档。或者点击Adobe Acrobat里的“导出”工具按钮,导出文件类型选择“Word”,结果是一样的。一款名字为e-PDF To Word Converter的软件专门用来将PDF文档转换成Word文档,网上有汉化特别版可供下载。http://www.pdftoword.com/网站提供在线转换服务,只需要将待转换的PDF文档上传到这个网站,网站就会将载转换成的Word文档发到你的电子信箱里。特别要说明的是,如果是通过扫描纸质文件生成的PDF文档,转换成Word文档以后得到的每一页都是插在Word文档里的图片,无法进行编辑。即便是由Word等其它可以编辑的电子文档生成的PDF文档,转换成Word文档以后,文字也是分布在一个个图文框里,如果版面稍复杂一些,文字还有可能重叠在一起,重新编辑的工作量还很大。三、怎样从PDF文档里导出文字假如PDF文档是由Word等其它可以编辑的电子文档生成的,用adobe reader或adobe acrobat的“选择工具”选中文字后按“Ctrl”+“C”键,就可以将文字复制到剪贴板里,随便你粘贴到那里。adobe reader在安装后的默认状态下,“选择工具”是看不见的,需要 *** 作菜单“工具”→“自定义工具栏”,在“选择工具”前打上钩,将它显现出来。若要将整篇PDF文档的文字都导出来,在adobe reader里只要 *** 作菜单“文件”→“另存为文本”,导出的文字就存到了一个文本文件里了。在adobe acrobat里则是 *** 作菜单“文件”→“另存为”,保存类型选择“纯文本”,或者点击“导出”工具按钮,导出文件类型选择“更多格式”→“纯文本”。四、使用OCR文本识别技术导出文字如果PDF文档是通过扫描纸质文件生成的,就不能够用上述简单的方法导出文字了,但也可以借助OCR文本识别技术来导出文字。在adobe acrobat里可以 *** 作菜单“文档”→“OCR文本识别”→“使用OCR识别文本”,经过识别以后,就可以用“选择工具”选中文字进行复制了。adobe reader没有自带OCR文本识别功能,但可以这样 *** 作, *** 作菜单“文件”→“打印”,打印机名称选择“Microsoft Office Document Image Writer”,这是一个随Microsoft Office 2003一起安装到计算机里的虚拟打印机,它将PDF文档打印到后缀为“mdi”的文件里,并自动打开,在打开的“mdi”文件里依次 *** 作菜单“工具”→“使用OCR识别文本”和“工具”→“将文本发送到word”就可以将文字导出到一个Word文档里。OCR文本识别技术的识别率取决于创建PDF文档时的扫描精度,那些字迹模糊不清的文档,能够正确识别出的文字也不会太多。五、怎样复制出PDF文档里的插图用adobe reader或adobe acrobat打开PDF以后用“选择工具”选中插图后按“Ctrl”+“C”键,就可以将插图复制到剪贴板里。在adobe acrobat里 *** 作菜单“高级”→“文档处理”→“导出所有图像”,就能够一次将文档里的所有图片全部导出成一个个图像文件。六、怎样复制PDF文挡里的表格用adobe acrobat打开PDF以后用“选择工具”选中PDF文挡里的表格,右击鼠标,在d出的菜单里点选“复制为表”,在Excel里 *** 作菜单“选择性粘贴”,在对话框里选择“csv”后点击“确定”,PDF文挡里的表格就复制到Excel里了。也可以选中PDF文挡里的表格,右击鼠标,在d出的菜单里点选“在Excel里打开”,表格就自动变成了Excel表。如果需要将表格粘贴到Word文挡,应当采用“选择性粘贴”以“无格式文本”进行粘贴,粘贴之后选中这些数据,再 *** 作菜单“表格”→“转换”→“文本转换表格”。如果PDF文档是通过扫描纸质文件生成的,就不能复制成表格,只可以将表格复制成图片。以上将PDF文档转换成Word文档以及从PDF文档里导出文字或图像的方法,取决于该文档没有加密对文档进行限制,如果文档已经加密进行了限制,只有在解密了以后才有可能进行。

七、怎样去除word等软件里的Adobe Acrobat菜单栏安装了Adobe Acrobat以后,在Word、Excel、AutoCAD软件的菜单里会多出几个Adobe Acrobat的菜单栏,其实这是Adobe Acrobat和这些应用软件的无缝结合,利用这些菜单可以方便地将这些应用软件创建的文档转换成PDF格式的文档,并能对转换的有关参数进行控制和调整。但是由于这些菜单占据了位置,不少使用者希望将它们去除。去除的方法很简单,在“控制面板”里进入“添加和删除程序”,找到 Adobe Acrobat后点击“更改”,在“程序维护”对话框里选“修改”,到下一步的“自定义安装”里将Office、AutoCAD去掉即可。安装Adobe Acrobat的时候如果选择“自定义安装”,就可以在安装过程里提前将Office、AutoCAD等剔除,就不会在Word、Excel、AutoCAD等软件里添加Adobe Acrobat菜单栏了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11376836.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存