- 浏览: 2542413 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
PDF to HTML 2020(1)pdftohtml Linux tool or PDFBox
On Ubuntu
> sudo apt-get install pdftohtml
Or
> sudo apt-get install poppler-utils
Try the command
> pdftohtml homedepot.pdf homedepot.html -c -noframes
> pdftohtml -enc UTF-8 -noframes homedepot.pdf homedepot.html
> pdftohtml -enc UTF-8 -noframes -c homedepot.pdf homedepot.html
It looks ok, but I will try other packages.
Try this library
https://pdfbox.apache.org/2.0/getting-started.html
Command line
https://pdfbox.apache.org/2.0/commandline.html
Directly convert to image and html src the image.
package com.cloudsnap.connector.netsuite;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class PDFImageApp {
public static void main(String[] args) {
PdfToImage("/Users/hluo/data/homedepot.pdf");
}
public static void PdfToImage(String pdfurl) {
StringBuffer buffer = new StringBuffer();
FileOutputStream fos;
PDDocument document;
File pdfFile;
int size;
BufferedImage image;
FileOutputStream out;
Long randStr = 0l;
// PDF转换成HTML保存的文件夹
String path = "/Users/hluo/data/";
File htmlsDir = new File(path);
if (!htmlsDir.exists()) {
htmlsDir.mkdirs();
}
File htmlDir = new File(path + "/");
if (!htmlDir.exists()) {
htmlDir.mkdirs();
}
try {
// 遍历处理pdf附件
randStr = System.currentTimeMillis();
buffer.append("<!doctype html>\r\n");
buffer.append("<head>\r\n");
buffer.append("<meta charset=\"UTF-8\">\r\n");
buffer.append("</head>\r\n");
buffer.append("<body style=\"background-color:gray;\">\r\n");
buffer.append("<style>\r\n");
buffer.append(
"img {background-color:#fff; text-align:center; width:100%; max-width:100%;margin-top:6px;}\r\n");
buffer.append("</style>\r\n");
document = new PDDocument();
// pdf附件
pdfFile = new File(pdfurl);
document = PDDocument.load(pdfFile, (String) null);
size = document.getNumberOfPages();
Long start = System.currentTimeMillis(), end = null;
System.out.println("===>pdf : " + pdfFile.getName() + " , size : " + size);
PDFRenderer reader = new PDFRenderer(document);
for (int i = 0; i < size; i++) {
// image = new PDFRenderer(document).renderImageWithDPI(i,130,ImageType.RGB);
image = reader.renderImage(i, 1.5f);
// 生成图片,保存位置
out = new FileOutputStream(path + "/" + "image" + "_" + i + ".jpg");
ImageIO.write(image, "png", out); // 使用png的清晰度
// 将图片路径追加到网页文件里
buffer.append("<img src=\"" + path + "/" + "image" + "_" + i + ".jpg\"/>\r\n");
image = null;
out.flush();
out.close();
}
reader = null;
document.close();
buffer.append("</body>\r\n");
buffer.append("</html>");
end = System.currentTimeMillis() - start;
System.out.println("===> Reading pdf times: " + (end / 1000));
start = end = null;
// 生成网页文件
fos = new FileOutputStream(path + randStr + ".html");
System.out.println(path + randStr + ".html");
fos.write(buffer.toString().getBytes());
fos.flush();
fos.close();
buffer.setLength(0);
} catch (Exception e) {
System.out.println("===>Reader parse pdf to jpg error : " + e.getMessage());
e.printStackTrace();
}
}
}
Get the Images and Text Separately
package com.cloudsnap.connector.netsuite;
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.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.imageio.ImageIO;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
import org.apache.pdfbox.text.PDFTextStripper;
public class PDFApp {
/**
* 获取格式化后的时间信息
*
* @param calendar 时间信息
* @return
*/
public static String dateFormat(Calendar calendar) {
if (null == calendar)
return null;
String date = null;
String pattern = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat format = new SimpleDateFormat(pattern);
date = format.format(calendar.getTime());
return date == null ? "" : date;
}
/** 打印纲要 **/
public static void getPDFOutline(String file) {
try {
// 打开pdf文件流
FileInputStream fis = new FileInputStream(file);
// 加载 pdf 文档,获取PDDocument文档对象
PDDocument document = PDDocument.load(fis);
// 获取PDDocumentCatalog文档目录对象
PDDocumentCatalog catalog = document.getDocumentCatalog();
// 获取PDDocumentOutline文档纲要对象
PDDocumentOutline outline = catalog.getDocumentOutline();
// 获取第一个纲要条目(标题1)
PDOutlineItem item = outline.getFirstChild();
if (outline != null) {
// 遍历每一个标题1
while (item != null) {
// 打印标题1的文本
System.out.println("Item:" + item.getTitle());
// 获取标题1下的第一个子标题(标题2)
PDOutlineItem child = item.getFirstChild();
// 遍历每一个标题2
while (child != null) {
// 打印标题2的文本
System.out.println(" Child:" + child.getTitle());
// 指向下一个标题2
child = child.getNextSibling();
}
// 指向下一个标题1
item = item.getNextSibling();
}
}
// 关闭输入流
document.close();
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/** 打印一级目录 **/
public static void getPDFCatalog(String file) {
try {
// 打开pdf文件流
FileInputStream fis = new FileInputStream(file);
// 加载 pdf 文档,获取PDDocument文档对象
PDDocument document = PDDocument.load(fis);
// 获取PDDocumentCatalog文档目录对象
PDDocumentCatalog catalog = document.getDocumentCatalog();
// 获取PDDocumentOutline文档纲要对象
PDDocumentOutline outline = catalog.getDocumentOutline();
// 获取第一个纲要条目(标题1)
if (outline != null) {
PDOutlineItem item = outline.getFirstChild();
// 遍历每一个标题1
while (item != null) {
// 打印标题1的文本
System.out.println("Item:" + item.getTitle());
// 指向下一个标题1
item = item.getNextSibling();
}
}
// 关闭输入流
document.close();
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/** 获取PDF文档元数据 **/
public static void getPDFInformation(String file) {
try {
// 打开pdf文件流
FileInputStream fis = new FileInputStream(file);
// 加载 pdf 文档,获取PDDocument文档对象
PDDocument document = PDDocument.load(fis);
/** 文档属性信息 **/
PDDocumentInformation info = document.getDocumentInformation();
System.out.println("页数:" + document.getNumberOfPages());
System.out.println("标题:" + info.getTitle());
System.out.println("主题:" + info.getSubject());
System.out.println("作者:" + info.getAuthor());
System.out.println("关键字:" + info.getKeywords());
System.out.println("应用程序:" + info.getCreator());
System.out.println("pdf 制作程序:" + info.getProducer());
System.out.println("Trapped:" + info.getTrapped());
System.out.println("创建时间:" + dateFormat(info.getCreationDate()));
System.out.println("修改时间:" + dateFormat(info.getModificationDate()));
// 关闭输入流
document.close();
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* 提取部分PDF文本转HTML
*
* @param file pdf文档路径
* @param startPage 开始页数
* @param endPage 结束页数
* @param htmlFile 保存文件路径
*/
public void getText(String pdfFile, int startPage, int endPage, String htmlFile) throws Exception {
// 是否排序
boolean sort = true;
// hpd文件路径
// String pdfFile = "D:\\PDF\\" + file;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
// int startPage = 1;
// 结束提取页数,最大
// int endPage = Integer.MAX_VALUE;
// 文件输入流,生成文本文件
Writer output = null;
// 内存中存储的PDF Document
PDDocument document = null;
String result = null;
try {
PDDocument doc = PDDocument.load(new File(pdfFile));
result = new PDFTextStripper().getText(doc);
// 文件输入流,写入HTML文件
output = new OutputStreamWriter(new FileOutputStream(htmlFile), encoding);
output.write(
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> \r\n");
output.write("<html> \r\n");
output.write("<head> \r\n");
output.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> \r\n");
output.write("</head> \r\n");
output.write("<body> \r\n");
output.write("<center>");
output.write(result);
// 调用PDFTextStripper的writeText提取并输出文本
// stripper.writeText(document, output);
output.write("</center>");
output.write("</body> \r\n");
output.write("</html> \r\n");
} finally {
if (output != null) {
// 关闭输出流
output.close();
}
if (document != null) {
// 关闭PDF Document
document.close();
}
}
}
/**
* 提取PDF图片并保存
*
* @param file PDF文档路径
* @param imgSavePath 图片保存路径
* @throws IOException
*/
public void getImage(String pdfFile, String imgSavePath) throws IOException {
PDDocument document = PDDocument.load(new File(pdfFile));
PDPageTree list = document.getPages();
for (PDPage page : list) {
PDResources pdResources = page.getResources();
for (COSName c : pdResources.getXObjectNames()) {
PDXObject o = pdResources.getXObject(c);
if (o instanceof org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject) {
File file = new File(imgSavePath + System.nanoTime() + ".png");
ImageIO.write(((org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject) o).getImage(), "png",
file);
}
}
}
}
public static void main(String[] args) {
PDFApp pth = new PDFApp();
String pdfFile = "/Users/hluo/data/homedepot.pdf";
long startTime = System.currentTimeMillis();
try {
pth.getText(pdfFile, 1, Integer.MAX_VALUE, "/Users/hluo/data/homedepot.html");
pth.getImage(pdfFile, "/Users/hluo/data/");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
System.out.println("读写所用时间为:" + (endTime - startTime) + "ms " + pdfFile + "转换完成");
}
}
References:
https://stackoverflow.com/questions/8370014/how-to-convert-pdf-to-html
https://blog.csdn.net/qq_34719291/article/details/75589024
https://blog.csdn.net/Warren_one/article/details/78625546
https://stackoverflow.com/questions/23813727/how-to-extract-text-from-a-pdf-file-with-apache-pdfbox
On Ubuntu
> sudo apt-get install pdftohtml
Or
> sudo apt-get install poppler-utils
Try the command
> pdftohtml homedepot.pdf homedepot.html -c -noframes
> pdftohtml -enc UTF-8 -noframes homedepot.pdf homedepot.html
> pdftohtml -enc UTF-8 -noframes -c homedepot.pdf homedepot.html
It looks ok, but I will try other packages.
Try this library
https://pdfbox.apache.org/2.0/getting-started.html
Command line
https://pdfbox.apache.org/2.0/commandline.html
Directly convert to image and html src the image.
package com.cloudsnap.connector.netsuite;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class PDFImageApp {
public static void main(String[] args) {
PdfToImage("/Users/hluo/data/homedepot.pdf");
}
public static void PdfToImage(String pdfurl) {
StringBuffer buffer = new StringBuffer();
FileOutputStream fos;
PDDocument document;
File pdfFile;
int size;
BufferedImage image;
FileOutputStream out;
Long randStr = 0l;
// PDF转换成HTML保存的文件夹
String path = "/Users/hluo/data/";
File htmlsDir = new File(path);
if (!htmlsDir.exists()) {
htmlsDir.mkdirs();
}
File htmlDir = new File(path + "/");
if (!htmlDir.exists()) {
htmlDir.mkdirs();
}
try {
// 遍历处理pdf附件
randStr = System.currentTimeMillis();
buffer.append("<!doctype html>\r\n");
buffer.append("<head>\r\n");
buffer.append("<meta charset=\"UTF-8\">\r\n");
buffer.append("</head>\r\n");
buffer.append("<body style=\"background-color:gray;\">\r\n");
buffer.append("<style>\r\n");
buffer.append(
"img {background-color:#fff; text-align:center; width:100%; max-width:100%;margin-top:6px;}\r\n");
buffer.append("</style>\r\n");
document = new PDDocument();
// pdf附件
pdfFile = new File(pdfurl);
document = PDDocument.load(pdfFile, (String) null);
size = document.getNumberOfPages();
Long start = System.currentTimeMillis(), end = null;
System.out.println("===>pdf : " + pdfFile.getName() + " , size : " + size);
PDFRenderer reader = new PDFRenderer(document);
for (int i = 0; i < size; i++) {
// image = new PDFRenderer(document).renderImageWithDPI(i,130,ImageType.RGB);
image = reader.renderImage(i, 1.5f);
// 生成图片,保存位置
out = new FileOutputStream(path + "/" + "image" + "_" + i + ".jpg");
ImageIO.write(image, "png", out); // 使用png的清晰度
// 将图片路径追加到网页文件里
buffer.append("<img src=\"" + path + "/" + "image" + "_" + i + ".jpg\"/>\r\n");
image = null;
out.flush();
out.close();
}
reader = null;
document.close();
buffer.append("</body>\r\n");
buffer.append("</html>");
end = System.currentTimeMillis() - start;
System.out.println("===> Reading pdf times: " + (end / 1000));
start = end = null;
// 生成网页文件
fos = new FileOutputStream(path + randStr + ".html");
System.out.println(path + randStr + ".html");
fos.write(buffer.toString().getBytes());
fos.flush();
fos.close();
buffer.setLength(0);
} catch (Exception e) {
System.out.println("===>Reader parse pdf to jpg error : " + e.getMessage());
e.printStackTrace();
}
}
}
Get the Images and Text Separately
package com.cloudsnap.connector.netsuite;
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.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.imageio.ImageIO;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
import org.apache.pdfbox.text.PDFTextStripper;
public class PDFApp {
/**
* 获取格式化后的时间信息
*
* @param calendar 时间信息
* @return
*/
public static String dateFormat(Calendar calendar) {
if (null == calendar)
return null;
String date = null;
String pattern = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat format = new SimpleDateFormat(pattern);
date = format.format(calendar.getTime());
return date == null ? "" : date;
}
/** 打印纲要 **/
public static void getPDFOutline(String file) {
try {
// 打开pdf文件流
FileInputStream fis = new FileInputStream(file);
// 加载 pdf 文档,获取PDDocument文档对象
PDDocument document = PDDocument.load(fis);
// 获取PDDocumentCatalog文档目录对象
PDDocumentCatalog catalog = document.getDocumentCatalog();
// 获取PDDocumentOutline文档纲要对象
PDDocumentOutline outline = catalog.getDocumentOutline();
// 获取第一个纲要条目(标题1)
PDOutlineItem item = outline.getFirstChild();
if (outline != null) {
// 遍历每一个标题1
while (item != null) {
// 打印标题1的文本
System.out.println("Item:" + item.getTitle());
// 获取标题1下的第一个子标题(标题2)
PDOutlineItem child = item.getFirstChild();
// 遍历每一个标题2
while (child != null) {
// 打印标题2的文本
System.out.println(" Child:" + child.getTitle());
// 指向下一个标题2
child = child.getNextSibling();
}
// 指向下一个标题1
item = item.getNextSibling();
}
}
// 关闭输入流
document.close();
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/** 打印一级目录 **/
public static void getPDFCatalog(String file) {
try {
// 打开pdf文件流
FileInputStream fis = new FileInputStream(file);
// 加载 pdf 文档,获取PDDocument文档对象
PDDocument document = PDDocument.load(fis);
// 获取PDDocumentCatalog文档目录对象
PDDocumentCatalog catalog = document.getDocumentCatalog();
// 获取PDDocumentOutline文档纲要对象
PDDocumentOutline outline = catalog.getDocumentOutline();
// 获取第一个纲要条目(标题1)
if (outline != null) {
PDOutlineItem item = outline.getFirstChild();
// 遍历每一个标题1
while (item != null) {
// 打印标题1的文本
System.out.println("Item:" + item.getTitle());
// 指向下一个标题1
item = item.getNextSibling();
}
}
// 关闭输入流
document.close();
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/** 获取PDF文档元数据 **/
public static void getPDFInformation(String file) {
try {
// 打开pdf文件流
FileInputStream fis = new FileInputStream(file);
// 加载 pdf 文档,获取PDDocument文档对象
PDDocument document = PDDocument.load(fis);
/** 文档属性信息 **/
PDDocumentInformation info = document.getDocumentInformation();
System.out.println("页数:" + document.getNumberOfPages());
System.out.println("标题:" + info.getTitle());
System.out.println("主题:" + info.getSubject());
System.out.println("作者:" + info.getAuthor());
System.out.println("关键字:" + info.getKeywords());
System.out.println("应用程序:" + info.getCreator());
System.out.println("pdf 制作程序:" + info.getProducer());
System.out.println("Trapped:" + info.getTrapped());
System.out.println("创建时间:" + dateFormat(info.getCreationDate()));
System.out.println("修改时间:" + dateFormat(info.getModificationDate()));
// 关闭输入流
document.close();
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* 提取部分PDF文本转HTML
*
* @param file pdf文档路径
* @param startPage 开始页数
* @param endPage 结束页数
* @param htmlFile 保存文件路径
*/
public void getText(String pdfFile, int startPage, int endPage, String htmlFile) throws Exception {
// 是否排序
boolean sort = true;
// hpd文件路径
// String pdfFile = "D:\\PDF\\" + file;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
// int startPage = 1;
// 结束提取页数,最大
// int endPage = Integer.MAX_VALUE;
// 文件输入流,生成文本文件
Writer output = null;
// 内存中存储的PDF Document
PDDocument document = null;
String result = null;
try {
PDDocument doc = PDDocument.load(new File(pdfFile));
result = new PDFTextStripper().getText(doc);
// 文件输入流,写入HTML文件
output = new OutputStreamWriter(new FileOutputStream(htmlFile), encoding);
output.write(
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> \r\n");
output.write("<html> \r\n");
output.write("<head> \r\n");
output.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> \r\n");
output.write("</head> \r\n");
output.write("<body> \r\n");
output.write("<center>");
output.write(result);
// 调用PDFTextStripper的writeText提取并输出文本
// stripper.writeText(document, output);
output.write("</center>");
output.write("</body> \r\n");
output.write("</html> \r\n");
} finally {
if (output != null) {
// 关闭输出流
output.close();
}
if (document != null) {
// 关闭PDF Document
document.close();
}
}
}
/**
* 提取PDF图片并保存
*
* @param file PDF文档路径
* @param imgSavePath 图片保存路径
* @throws IOException
*/
public void getImage(String pdfFile, String imgSavePath) throws IOException {
PDDocument document = PDDocument.load(new File(pdfFile));
PDPageTree list = document.getPages();
for (PDPage page : list) {
PDResources pdResources = page.getResources();
for (COSName c : pdResources.getXObjectNames()) {
PDXObject o = pdResources.getXObject(c);
if (o instanceof org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject) {
File file = new File(imgSavePath + System.nanoTime() + ".png");
ImageIO.write(((org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject) o).getImage(), "png",
file);
}
}
}
}
public static void main(String[] args) {
PDFApp pth = new PDFApp();
String pdfFile = "/Users/hluo/data/homedepot.pdf";
long startTime = System.currentTimeMillis();
try {
pth.getText(pdfFile, 1, Integer.MAX_VALUE, "/Users/hluo/data/homedepot.html");
pth.getImage(pdfFile, "/Users/hluo/data/");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
System.out.println("读写所用时间为:" + (endTime - startTime) + "ms " + pdfFile + "转换完成");
}
}
References:
https://stackoverflow.com/questions/8370014/how-to-convert-pdf-to-html
https://blog.csdn.net/qq_34719291/article/details/75589024
https://blog.csdn.net/Warren_one/article/details/78625546
https://stackoverflow.com/questions/23813727/how-to-extract-text-from-a-pdf-file-with-apache-pdfbox
发表评论
-
Update Site will come soon
2021-06-02 04:10 1672I am still keep notes my tech n ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 424Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 428Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 366Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 445VPN Server 2020(2)Docker on Cen ... -
Nginx Deal with OPTIONS in HTTP Protocol
2020-02-15 01:33 348Nginx Deal with OPTIONS in HTTP ... -
Elasticsearch Cluster 2019(2)Kibana Issue or Upgrade
2020-01-12 03:25 712Elasticsearch Cluster 2019(2)Ki ... -
Spark Streaming 2020(1)Investigation
2020-01-08 07:19 291Spark Streaming 2020(1)Investig ... -
Hadoop Docker 2019 Version 3.2.1
2019-12-10 07:39 289Hadoop Docker 2019 Version 3.2. ... -
MongoDB 2019(3)Security and Auth
2019-11-16 06:48 236MongoDB 2019(3)Security and Aut ... -
MongoDB 2019(1)Install 4.2.1 Single and Cluster
2019-11-11 05:07 287MongoDB 2019(1) Follow this ht ... -
Monitor Tool 2019(1)Monit Installation and Usage
2019-10-17 08:22 320Monitor Tool 2019(1)Monit Insta ... -
Ansible 2019(1)Introduction and Installation on Ubuntu and CentOS
2019-10-12 06:15 307Ansible 2019(1)Introduction and ... -
Timezone and Time on All Servers and Docker Containers
2019-10-10 11:18 328Timezone and Time on All Server ... -
Kafka Cluster 2019(6) 3 Nodes Cluster on CentOS7
2019-10-05 23:28 273Kafka Cluster 2019(6) 3 Nodes C ... -
K8S Helm(1)Understand YAML and Kubectl Pod and Deployment
2019-10-01 01:21 316K8S Helm(1)Understand YAML and ... -
Rancher and k8s 2019(5)Private Registry
2019-09-27 03:25 352Rancher and k8s 2019(5)Private ... -
Jenkins 2019 Cluster(1)Version 2.194
2019-09-12 02:53 438Jenkins 2019 Cluster(1)Version ... -
Redis Cluster 2019(3)Redis Cluster on CentOS
2019-08-17 04:07 366Redis Cluster 2019(3)Redis Clus ... -
Code SonarQube 2019(3)Scanner Configuration
2019-07-24 12:31 423Code SonarQube 2019(3)Scanner C ...
相关推荐
PDFBox是Apache软件基金会的一个开源项目,专门用于处理PDF文档的Java库。它提供了一系列API,使得开发人员能够创建、编辑、读取和转换PDF文件。在这个特定的场景中,我们关注的是PDFBox如何被用来将PDF转换为HTML...
java用pdfbox转pdf为图片文件时,如果pdf有中文,则会出现乱码(windows下正常,linux下乱码),改用icepdf后问题解决,而且能够轻松设置欲转换成图片的格式和大小.icepdf对中文支付非常强大,以下是实例代码,可以...
1. **初始化PDFBox**: 加载PDF文档,这可以通过`PDDocument.load()`方法实现,传入PDF文件的路径。 2. **提取文本**: 使用`PDFTextStripper`类,调用`processDocument()`方法来提取PDF中的所有文本。 3. **保存文本*...
pdfbox 提取 pdf 中 文字和图片 并 可转 html 分2个文件,一个专门提取文本,内容可转为html,另一个文件专门用来提取图片,大家可自行整合为一个文件。使用pdfbox最新提取图片的方法。
1.将一个PDF文档转换输出为一个文本文件。 2.可以从文本文件创建一个PDF文档。 3.加密/解密PDF文档。 4.向已有PDF文档中追加内容。 5.可以从PDF文档生成一张图片。 6.可以与Jakarta Lucene搜索引擎的整合。 这个小...
PDFBox是Apache软件基金会的一个开源项目,用于处理PDF文档。在这个实例中,我们关注的是PDFBox 1.8.9版本,它提供了处理PDF与图片相互转换的功能。PDFBox库在Java开发环境中非常实用,可以帮助开发者进行PDF文档的...
Java作为一款跨平台的编程语言,提供了多种库来处理PDF文档,其中之一就是PDFBox。本文将深入探讨如何使用PDFBox库在Java中解析PDF并读取其内容。 PDFBox是Apache软件基金会的一个开源项目,它为Java开发者提供了一...
PDDocument document = PDDocument.load(new File("path_to_your_pdf.pdf")); ``` 3. 获取打印机名称:根据用户的选择或系统默认,获取打印机的名称。 ```java String printerName = "Your_Printer_Name"; ``...
PDFBox是Apache软件基金会的一个开源项目,专门用于处理PDF(Portable Document Format)文档的Java类库。这个压缩包“PDFBox PDF处理类库 v3.0.0 alpha2.zip”包含的是PDFBox的最新预发布版本,即v3.0.0的alpha2...
1. 引入IKVM.NET和PDFBox的Java库。 2. 初始化Java虚拟机。 3. 加载PDF文件并创建`PDDocument`对象。 4. 使用`PDFTextStripper`提取PDF文本。 5. 将提取的文本保存为TXT文件。 6. 关闭`PDDocument`和Java虚拟机。 ...
在这个压缩包中,包含了两个主要的Java库,用于将PDF文件转换为图像:PDFBox和PDFRenderer。 **PDFBox** 是Apache软件基金会的一个开源项目,它提供了对PDF文件的强大支持,包括读取、创建、编辑和转换PDF文档。...
PDFBox是Apache软件基金会的一个开源项目,专门用于处理PDF文档的Java库。它提供了一系列强大的API,使得开发者能够轻松地读取、创建、修改和显示PDF文档中的内容。在这个场景中,我们将关注如何使用PDFBox解析PDF...
在提供的jar包中,`PdfToImage`可能是一个示例程序,演示了如何使用PDFbox或IcePdf将PDF转换为图片。通过运行这个程序并根据需要调整代码,你可以轻松地将多页PDF转换为一系列的图片文件。 总结来说,PDFbox和...
Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换。 我们可以使用PDFBox开发可以创建,转换和操作PDF文档的Java程序。PDFBox的主要功能: Extract Text – 使用PDFBox,您可以从PDF文件中提取Unicode文本。 ...
PDF转换为图片是一种常见的需求,特别是在处理PDF文档的可视化展示或者需要进行网页嵌入时。在Java编程环境中,我们可以利用ITEXT和PDFBOX这两个库来实现这个功能。这两个库都是处理PDF的强大工具,各有其特点和优势...
PDFBox是Apache软件基金会开发的一个开源Java库,用于处理PDF(Portable Document Format)文档。这个库提供了丰富的API,使得开发者可以方便地创建、修改、读取和操作PDF文档。在这个压缩包中,我们找到了三个核心...
Apache PDFBox是一个强大的Java库,专门用于处理PDF文档。它提供了丰富的API,允许开发者读取、创建、修改和渲染PDF文档。在这个特定的场景中,PDFBox被用来将PDF文件转换为图片,这对于报表开发或者需要将PDF内容...
merger.AddSource("path_to_pdf1.pdf"); merger.AddSource("path_to_pdf2.pdf"); // 以此类推,添加所有需要合并的PDF文件 ``` 3. **设置目标文件**:指定合并后PDF文件的输出路径。 ```csharp // 设置输出文件 ...
PDFBox是Apache软件基金会开发的一个开源Java库,主要用于处理PDF文档。这个库提供了广泛的API,可以用来创建、编辑和读取PDF文档。在本场景中,我们关注的是PDFBox的一个特定功能:生成PDF文件的缩略图。这有助于在...
pdfbox for .Net目前的最新版PDFBox-2.0.19 用法: 将压缩包内所有dll拷贝到项目编译目录, 在项目中引用 IKVM.OpenJDK.Core.dll IKVM.OpenJDK.SwingAWT.dll pdfbox-app-2.0.19.dll 在代码中引入命名空间using org....