700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > pdf转换html java 使用JAVA怎么将PDF转换为HTML文档

pdf转换html java 使用JAVA怎么将PDF转换为HTML文档

时间:2023-01-31 20:44:38

相关推荐

pdf转换html java 使用JAVA怎么将PDF转换为HTML文档

使用JAVA怎么将PDF转换为HTML文档

发布时间:-05-25 18:26:18

来源:亿速云

阅读:85

作者:Leah

使用JAVA怎么将PDF转换为HTML文档?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

引入Maven依赖

org.apache.pdfbox

pdfbox

2.0.12

工具实现类packagecom.frame.utils;

importorg.apache.pdfbox.pdmodel.PDDocument;

importorg.apache.pdfbox.rendering.PDFRenderer;

importorg.slf4j.Logger;

importorg.slf4j.LoggerFactory;

importsun.misc.BASE64Decoder;

importsun.misc.BASE64Encoder;

importjavax.imageio.ImageIO;

importjava.awt.*;

importjava.awt.image.BufferedImage;

importjava.io.*;

publicclassPdfConvertHtmlUtil{

/**

*日志对象

*/

privatestaticLoggerlogger=LoggerFactory.getLogger(PdfConvertHtmlUtil.class);

/**

*PDF文档流转Png

*@parampdfFileInputStream

*@returnBufferedImage

*/

publicstaticBufferedImagepdfStreamToPng(InputStreampdfFileInputStream){

PDDocumentdoc=null;

PDFRendererrenderer=null;

try{

doc=PDDocument.load(pdfFileInputStream);

renderer=newPDFRenderer(doc);

intpageCount=doc.getNumberOfPages();

BufferedImageimage=null;

for(inti=0;i

if(image!=null){

image=combineBufferedImages(image,renderer.renderImageWithDPI(i,144));

}

if(i==0){

image=renderer.renderImageWithDPI(i,144);//WindowsnativeDPI

}

//BufferedImagesrcImage=resize(image,240,240);//产生缩略图

}

returncombineBufferedImages(image);

}catch(IOExceptione){

e.printStackTrace();

}finally{

try{

if(doc!=null){doc.close();}

}catch(IOExceptione){

e.printStackTrace();

}

}

returnnull;

}

/**

*BufferedImage拼接处理,添加分割线

*@paramimages

*@returnBufferedImage

*/

publicstaticBufferedImagecombineBufferedImages(BufferedImage...images){

intheight=0;

intwidth=0;

for(BufferedImageimage:images){

//height+=Math.max(height,image.getHeight());

height+=image.getHeight();

width=image.getWidth();

}

BufferedImagecombo=newBufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);

Graphics2Dg2=combo.createGraphics();

intx=0;

inty=0;

for(BufferedImageimage:images){

//inty=(height-image.getHeight())/2;

g2.setStroke(newBasicStroke(2.0f));//线条粗细

g2.setColor(newColor(193,193,193));//线条颜色

g2.drawLine(x,y,width,y);//线条起点及终点位置

g2.drawImage(image,x,y,null);

//x+=image.getWidth();

y+=image.getHeight();

}

returncombo;

}

/**

*通过Base64创建HTML文件并输出html文件

*@parambase64

*@paramhtmlPathhtml保存路径

*/

publicstaticvoidcreateHtmlByBase64(Stringbase64,StringhtmlPath){

StringBuilderstringHtml=newStringBuilder();

PrintStreamprintStream=null;

try{

//打开文件

printStream=newPrintStream(newFileOutputStream(htmlPath));

}catch(FileNotFoundExceptione){

e.printStackTrace();

}

//输入HTML文件内容

stringHtml.append("

");

stringHtml.append("");

stringHtml.append("

");

stringHtml.append("");

stringHtml.append(

"

");

stringHtml.append("");

stringHtml.append("");

//添加锚点用于返回首页

stringHtml.append("回到首页");

stringHtml.append("");

try{

//将HTML文件内容写入文件中

printStream.println(stringHtml.toString());

}catch(Exceptione){

e.printStackTrace();

}finally{

if(printStream!=null){printStream.close();}

}

}

/**

*bufferedImage转为base64编码

*@parambufferedImage

*@return

*/

publicstaticStringbufferedImageToBase64(BufferedImagebufferedImage){

ByteArrayOutputStreambyteArrayOutputStream=newByteArrayOutputStream();

Stringpng_base64="";

try{

ImageIO.write(bufferedImage,"png",byteArrayOutputStream);//写入流中

byte[]bytes=byteArrayOutputStream.toByteArray();//转换成字节

BASE64Encoderencoder=newBASE64Encoder();

//转换成base64串删除\r\n

png_base64=encoder.encodeBuffer(bytes).trim()

.replaceAll("\n","")

.replaceAll("\r","");

}catch(IOExceptione){

e.printStackTrace();

}

returnpng_base64;

}

}

测试Demopublicstaticvoidmain(String[]args){

Filefile=newFile("F:\\111\\Files\\MySQL查询语句大全集锦(经典珍藏).pdf");

StringhtmlPath="F:\\111\\Files\\MySQL查询语句大全集锦(经典珍藏).html";

InputStreaminputStream=null;

BufferedImagebufferedImage=null;

try{

inputStream=newFileInputStream(file);

bufferedImage=pdfStreamToPng(inputStream);

Stringbase64_png=bufferedImageToBase64(bufferedImage);

createHtmlByBase64(base64_png,htmlPath);

}catch(FileNotFoundExceptione){

e.printStackTrace();

}finally{

try{

if(inputStream!=null){inputStream.close();}

}catch(IOExceptione){

e.printStackTrace();

}

}

}

最终结果 转换后文件

转换后的文件内容

文件预览效果

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

关于使用JAVA怎么将PDF转换为HTML文档问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。