读取pdf需要下载pdfbox:
>
直接使用系统字体读取或创建带中文的pdf,需要注意jar的版本。
<dependency>
<groupId>comitextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>558</version>
</dependency>
<dependency>
<groupId>comitextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>520</version>
</dependency>
<dependency>
<groupId>comitextpdftool</groupId>
<artifactId>xmlworker</artifactId>
<version>556</version>
</dependency>123456789101112131415
代码如下,覆写XMLWorkerFontProvider$getFont即可读取中文
public void createPdf(String src, String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWritergetInstance(document, new FileOutputStream(dest));
documentopen();
XMLWorkerHelpergetInstance()parseXHtml(writer, document, new FileInputStream(src), null, new XMLWorkerFontProvider(){ public Font getFont(final String fontname, final String encoding,
final boolean embedded, final float size, final int style,
final BaseColor color) {
BaseFont bf = null;
try {
bf = BaseFontcreateFont("C:/Windows/Fonts/SIMYOUTTF",BaseFontIDENTITY_H,BaseFontNOT_EMBEDDED);
} catch (Exception e) {
eprintStackTrace();
}
Font font = new Font(bf, size, style, color);
fontsetColor(color);
return font;
}
});
documentclose();
}1234567891011121314151617181920212223
创建时,使用系统(windows下)的字体即可
BaseFont baseFont = BaseFontcreateFont("C:/Windows/Fonts/SIMYOUTTF",BaseFontIDENTITY_H,BaseFontNOT_EMBEDDED);
Font font = new Font(baseFont);
给你提供一个参考例子,你可以在这个例子上试试,修改修改。也是解析PDF的。
import javaioFile;import javaioFileOutputStream;
import javaioOutputStreamWriter;
import javaioWriter;
import javanetMalformedURLException;
import javanetURL;
import orgapachepdfboxpdmodelPDDocument;
import orgapachepdfboxutilPDFTextStripper;
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 输入文本文件名称
String textFile = null;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
int startPage = 1;
// 结束提取页数
int endPage = IntegerMAX_VALUE;
// 文件输入流,生成文本文件
Writer output = null;
// 内存中存储的PDF Document
PDDocument document = null;
try {
try {
// 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件
URL url = new URL(pdfFile);
//注意参数已不是以前版本中的URL而是File。
document = PDDocumentload(pdfFile);
// 获取PDF的文件名
String fileName = urlgetFile();
// 以原来PDF的名称来命名新产生的txt文件
if (fileNamelength() > 4) {
File outputFile = new File(fileNamesubstring(0, fileName
length() - 4)
+ "txt");
textFile = outputFilegetName();
}
} catch (MalformedURLException e) {
// 如果作为URL装载得到异常则从文件系统装载
//注意参数已不是以前版本中的URL而是File。
document = PDDocumentload(pdfFile);
if (pdfFilelength() > 4) {
textFile = pdfFilesubstring(0, pdfFilelength() - 4)
+ "txt";
}
}
// 文件输入流,写入文件倒textFile
output = new OutputStreamWriter(new FileOutputStream(textFile),
encoding);
// PDFTextStripper来提取文本
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 设置是否排序
strippersetSortByPosition(sort);
// 设置起始页
strippersetStartPage(startPage);
// 设置结束页
strippersetEndPage(endPage);
// 调用PDFTextStripper的writeText提取并输出文本
stripperwriteText(document, output);
} finally {
if (output != null) {
// 关闭输出流
outputclose();
}
if (document != null) {
// 关闭PDF Document
documentclose();
}
}
}
/
@param args
/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盘下的SpringGuidepdf的内容
pdfReaderreadFdf("d:\\bpdf");
} catch (Exception e) {
eprintStackTrace();
}
}
}
以上就是关于java 读取pdf, word, excel, ppt文档的内容,下了POI包,但是不知道怎么用,刚学java,求告诉一下怎么办全部的内容,包括:java 读取pdf, word, excel, ppt文档的内容,下了POI包,但是不知道怎么用,刚学java,求告诉一下怎么办、java如何读取某个网址下的pdf文件、用Java 读取 PDF 遇到中文标签该怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)