import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
/**
* @author MagicWine
*
*/
public class PdfToImg{
public static void main(String[] args) throws IOException {
pdfToImage("URL");
}
public static String pdfToImage(String urlStr) throws IOException {
// 构造URL
URL url = new URL(urlStr);
// 打开连接
URLConnection con = url.openConnection();
// 设置请求超时为5s
con.setConnectTimeout(5 * 1000);
// 输入流
InputStream in = null;
PDDocument doc = null;
try {
in = con.getInputStream();
//doc = PDDocument.load(in);
//in = new FileInputStream("D:\\test\\demo.pdf");//可以从本地文件中读取流 也可以从网络中读取
doc = PDDocument.load(in);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
BufferedImage image = renderer.renderImageWithDPI(i,200f); // Windows native
// DPI,PdfExchangeDpi是float类型的,越大文件越大,清晰度越高,
File file = new File("D:\\image\\"+i+".png");
if (!file .exists()) {
file .mkdirs();
}
ImageIO.write(image, "PNG", file);
}
} finally {
if (in != null) {
in.close();
}
if (doc != null) {
doc.close();
}
}
return "";
}
}