首页 > 编程知识 正文

java解析pdf文件,java的API文档在哪查看

时间:2023-05-05 03:54:17 阅读:20372 作者:1704

最近的项目需要实现PDF下载功能,但由于没有这方面的经验,在网上查找相关资料花了很长时间。 经过整理,我发现有几个框架可以实现这一功能。

1 .支持开放源码框架

还支持iText、生成PDF文档、将XML和Html文件转换为PDF文件;

生成和合并Apache PDFBox、PDF文档;

支持docx4j、docx文档生成和转换为PDF格式。

2 .实现方案

经过比较,采用了FreeMarker docx4j Apache PDFBox的方案:

七喜依存

org.apache.pdfbox

pdf盒

2.0.11

org.docx4j

docx4j

3.3.7

org.apache.xmlgraphics

batik-util

1.10

org.docx4j

docx4j-export-fo

3.3.6

dom4j

dom4j

1.6.1

net.coobird

thumbnailator

0.4.8

com.alibaba

快速强森

1.2.47

步骤

创建与pdf文档对应的word(Docx )

将word文档另存为xml文件

另存为xml

将xml文件创建为freemarker模板(ftl )文件

创建模板文件

4将数据和ftl文件组装为xml文本

Map map=new HashMap (;

map.put('name )、'清脆的大白);

map.put (地址,)北京市朝阳区);

map.put(email,) xiaoming@abc.com);

字符串写入器=new string writer (;

bufferedwriterwriter=newbufferedwriter (字符串写入器;

template.process(map,writer );

string xmlstr=string writer.tostring (;

使用docx4j将xml文本作为word文档对象加载

bytearrayinputstreamin=newbytearrayinputstream (xmlstr.getbytes );

wordprocessingmlpackagewordmlpackage=wordprocessingmlpackage.load (in;

使用docx4j将word文档导出为pdf文档

stringoutputfilepath='/users/Xiaoming /简历. pdf ';

DOCx4j.topdf(wordmlpackage,newfileoutputstream ) new file (output file path );

使用Apache PDFbox将多个pdf文档合并在一起

字符串文件夹名称='/users/Xiaoming/pdfs ';

string destpath='/users/Xiaoming/all.pdf ';

pdfmergerutilitymergepdf=newpdfmergerutility (;

string [ ] files in folder=getfiles (foldername;

Arrays.sort(filesinfolder,new Comparator ) )

@Override

公共int比较(String o2,String o2 ) {

returnO1.comPareto(O2;

}

);

for(intI=0; i filesInFolder.length; I ) {

merge pdf.addsource (foldername file.separatorfilesinfolder [ I ];

}

merge pdf.setdestinationfilename (destpath );

merge pdf.merge documents (memoryusagesetting.setupmainmemoryonly );

希望以上是正文的全部内容,对大家的学习有帮助。 另外,我希望你支持很多编剧。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。