java读取pdf文件生成首页缩略图|java 如何读取PDF文件内容

java读取pdf文件生成首页缩略图|java 如何读取PDF文件内容的第1张示图

A. java 如何读取PDF文件内容

import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.net.MalformedURLException;import java.net.URL;import org.pdfbox.pdmodel.PDDocument;import org.pdfbox.util.PDFTextStripper;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 = Integer.MAX_VALUE;// 文件输入流,生成文本文件Writer output = null;// 内存中存储的PDF DocumentPDDocument document = null;try {try {// 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件URL url = new URL(pdfFile);//注意参数已不是以前版本中的URL.而是File。document = PDDocument.load(pdfFile);// 获取PDF的文件名String fileName = url.getFile();// 以原来PDF的名称来命名新产生的txt文件if (fileName.length() > 4) {File outputFile = new File(fileName.substring(0, fileName.length() – 4)+ ".txt");textFile = outputFile.getName();}} catch (MalformedURLException e) {// 如果作为URL装载得到异常则从文件系统装载//注意参数已不是以前版本中的URL.而是File。document = PDDocument.load(pdfFile);if (pdfFile.length() > 4) {textFile = pdfFile.substring(0, pdfFile.length() – 4)+ ".txt";}}// 文件输入流,写入文件倒textFileoutput = new OutputStreamWriter(new FileOutputStream(textFile),encoding);// PDFTextStripper来提取文本PDFTextStripper stripper = null;stripper = new PDFTextStripper();// 设置是否排序stripper.setSortByPosition(sort);// 设置起始页stripper.setStartPage(startPage);// 设置结束页stripper.setEndPage(endPage);// 调用PDFTextStripper的writeText提取并输出文本stripper.writeText(document, output);} finally {if (output != null) {// 关闭输出流output.close();}if (document != null) {// 关闭PDF Documentdocument.close();}}}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubPdfReader pdfReader = new PdfReader();try {// 取得E盘下的SpringGuide.pdf的内容pdfReader.readFdf("E://SpringGuide.pdf");} catch (Exception e) {e.printStackTrace();}}}

B. 有人知道java生成缩略图的方法吗 thumbnailator有问题

自己写了一个,看看能不能有

/***本类实现一个对JPG/JPEG图像文件进行缩放处理的方法:即给定一个JPG文件,可以生成一个该JPG文件的缩影图像文件(JPG格式)<br/>*提供三种生成缩影图像的方法:<br/>*1.设置缩影文件的宽度,根据设置的宽度和源图像文件的大小来确定新缩影文件的长度来生成缩影图像<br/>*2.设置缩影文件的长度,根据设置的长度和源图像文件的大小来确定新缩影文件的宽度来生成缩影图像<br/>*3.设置缩影文件相对于源图像文件的比例大小,根据源图像文件的大小及设置的比例来确定新缩影文件的大小来生成缩影图像<br/>*新生成的缩影图像可以比原图像大,这时即是放大源图像<br/>**@author不落的太阳(SeanYang)*@version1.0*@sinceJDK1.8**/publicclassImageScalingTool{//对象是否己经初始化privatebooleanisInitFlag=false;//定义生目标图片的宽度和高度,给其一个就可以了privateinttargetPicWidth=0;privateinttargetPicHeight=0;//定义目标图片的相比原图片的比例privatedoublepicScale=0;/***构造函数*/publicImageScalingTool(){isInitFlag=false;}/***重置JPG图片缩放器*/publicvoidresetImageScaling(){picScale=0;targetPicWidth=0;targetPicHeight=0;isInitFlag=false;}/***设置目标图片相对于源图片的缩放比例**@paramscale*@throwsJPEGException*/publicvoidsetPicScale(doublescale)throwsException{if(scale<=0){thrownewRuntimeException("缩放比例不能为0和负数!");}resetImageScaling();picScale=scale;isInitFlag=true;}/***设置目标图片的宽度**@paramwidth*@throwsJPEGException*/publicvoidsetSmallWidth(intwidth)throwsException{if(width<=0){thrownewRuntimeException("缩影图片的宽度不能为0和负数!");}resetImageScaling();targetPicWidth=width;isInitFlag=true;}/***设置目标图片的高度**@paramheight*@throwsJPEGException*/publicvoidsetSmallHeight(intheight)throwsException{if(height<=0){thrownewRuntimeException("缩影图片的高度不能为0和负数!");}resetImageScaling();targetPicHeight=height;isInitFlag=true;}/***开始缩放图片**@paramsrcPicFileName*源图片的文件名*@paramtargetPicFileName*生成目标图片的文件名*@throwsJPEGException*/publicvoidtransform(StringsrcPicFileName,StringtargetPicFileName)throwsException{if(!isInitFlag){thrownewRuntimeException("对象参数没有初始化!");}if(srcPicFileName==null||targetPicFileName==null){thrownewRuntimeException("包含文件名的路径为空!");}if((!srcPicFileName.toLowerCase().endsWith("jpg"))&&(!srcPicFileName.toLowerCase().endsWith("jpeg"))){thrownewRuntimeException("只能处理JPG/JPEG文件!");}if((!targetPicFileName.toLowerCase().endsWith("jpg"))&&!targetPicFileName.toLowerCase().endsWith("jpeg")){thrownewRuntimeException("只能处理JPG/JPEG文件!");}//新建源图片和生成图片的文件对象Filefin=newFile(srcPicFileName);Filefout=newFile(targetPicFileName);//通过缓冲读入源图片文件BufferedImagesourceImage=null;try{//读取文件生成BufferedImagesourceImage=ImageIO.read(fin);}catch(IOExceptionex){thrownewRuntimeException("读取源图像文件出错!");}//源图片的宽度和高度intsourceWidth=sourceImage.getWidth();intsourceHeight=sourceImage.getHeight();//设置目标图片的实际宽度和高度inttargetWidth=0;inttargetHeight=0;if(targetPicWidth!=0){//根据设定的宽度求出长度targetWidth=targetPicWidth;targetHeight=(targetWidth*sourceHeight)/sourceWidth;}elseif(targetPicHeight!=0){//根据设定的长度求出宽度targetHeight=targetPicHeight;targetWidth=(targetHeight*sourceWidth)/sourceHeight;}elseif(picScale!=0){//根据设置的缩放比例设置图像的长和宽targetWidth=(int)(sourceWidth*picScale);targetHeight=(int)(sourceHeight*picScale);}else{thrownewRuntimeException("对象参数初始化不正确!");}System.out.println("源图片的分辨率:"+sourceWidth+"×"+sourceHeight);System.out.println("目标图片的分辨率:"+targetWidth+"×"+targetHeight);//目标图像的缓冲对象BufferedImagetargetImage=newBufferedImage(targetWidth,targetHeight,BufferedImage.TYPE_3BYTE_BGR);//求得目标图片与源图片宽度,高度的比例.doublescaleWidth=(double)targetWidth/sourceWidth;doublescaleHeight=(double)targetHeight/sourceHeight;//构造图像变换对象AffineTransformtransform=newAffineTransform();//设置图像转换的比例transform.setToScale(scaleWidth,scaleHeight);//构造图像转换操作对象AffineTransformOpato=newAffineTransformOp(transform,null);//实现转换,将bSrc转换成bTargetato.filter(sourceImage,targetImage);//输出目标图片try{//将目标图片的BufferedImage写到文件中去,jpeg为图片的格式ImageIO.write(targetImage,"jpeg",fout);}catch(IOExceptionex1){thrownewException("写入缩略图像文件出错!");}}}

C. java 生成缩略图保存数据库

用上传的图片先生成一个小的缩略图,然后读入缩略图, 步骤跟你现在的步骤一样.生成缩略图的代码你从网上搜索下. 我的代码就不给你了. 呵呵

D. 如何用java为文件生成缩略图

public static boolean scale(String imagepath,String newpath){ //返回一个 BufferedImage,作为使用从当前已注册 ImageReader 中自动选择的 ImageReader 解码所提供 File 的结果 BufferedImage image=null; try { image = ImageIO.read(new File(imagepath)); } catch (IOException e) { System.out.println("读取图片文件出错!"+e.getMessage()); return false; } //Image Itemp = image.getScaledInstance(300, 300, image.SCALE_SMOOTH); double Ratio = 0.0; if ((image.getHeight() > 300) ||(image.getWidth() > 300)) { if (image.getHeight() > image.getWidth()) //图片要缩放的比例 Ratio = 300.0 / image.getHeight(); else Ratio = 300.0 / image.getWidth(); } // 根据仿射转换和插值类型构造一个 AffineTransformOp。 AffineTransformOp op = new AffineTransformOp(AffineTransform .getScaleInstance(Ratio, Ratio), null); // 转换源 BufferedImage 并将结果存储在目标 BufferedImage 中。 image = op.filter(image,null); //image.getScaledInstance(300,300,image.SCALE_SMOOTH); FileOutputStream out=null; try { out = new FileOutputStream(newpath); ImageIO.write((BufferedImage)image,"bmp",out); out.close(); } catch (Exception e) { System.out.println("写图片文件出错!!"+e.getMessage()); return false; } return true; }

E. C#一个问题,请问如何将pdf文档首页生成缩略图并在我程序中显示,谢谢各位。

将pdf文件的页面做成jpg图片,再在c#用图片控件显示,以前我就这么干过。

F. java读取pdf内容

用Java简单的读取pdf文件中的数据:第一步:下载PDFBox-0.7.2.jar。提供一个下载地址:http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解压后,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路径下。(我把源码以及jar包都放到下面的附件里,方面你的使用。)第二步:写个简单的读取pdf文件的程序。(PdfReader.java)import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.net.MalformedURLException;import java.net.URL;import org.pdfbox.pdmodel.PDDocument;import org.pdfbox.util.PDFTextStripper;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 = Integer.MAX_VALUE; // 文件输入流,生成文本文件 Writer output = null; // 内存中存储的PDF Document PDDocument document = null; try { try { // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件 URL url = new URL(pdfFile); //注意参数已不是以前版本中的URL.而是File。 document = PDDocument.load(pdfFile); // 获取PDF的文件名 String fileName = url.getFile(); // 以原来PDF的名称来命名新产生的txt文件 if (fileName.length() > 4) { File outputFile = new File(fileName.substring(0, fileName .length() – 4) + ".txt"); textFile = outputFile.getName(); } } catch (MalformedURLException e) { // 如果作为URL装载得到异常则从文件系统装载 //注意参数已不是以前版本中的URL.而是File。 document = PDDocument.load(pdfFile); if (pdfFile.length() > 4) { textFile = pdfFile.substring(0, pdfFile.length() – 4) + ".txt"; } } // 文件输入流,写入文件倒textFile output = new OutputStreamWriter(new FileOutputStream(textFile), encoding); // PDFTextStripper来提取文本 PDFTextStripper stripper = null; stripper = new PDFTextStripper(); // 设置是否排序 stripper.setSortByPosition(sort); // 设置起始页 stripper.setStartPage(startPage); // 设置结束页 stripper.setEndPage(endPage); // 调用PDFTextStripper的writeText提取并输出文本 stripper.writeText(document, output); } finally { if (output != null) { // 关闭输出流 output.close(); } if (document != null) { // 关闭PDF Document document.close(); } } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub PdfReader pdfReader = new PdfReader(); try { // 取得E盘下的SpringGuide.pdf的内容 pdfReader.readFdf("E:\\SpringGuide.pdf"); } catch (Exception e) { e.printStackTrace(); } }} 这样就简单的完成了从pdf中读取数据了。在你的pdf文件所在的目录下生成一个同名的txt文件。

G. java解析pdf,我需要把pdf的每一页生成一张图片,有没有参考的框架,懂java的进!

看我主页的生成报表的那篇文章,希望能帮到你

H. java实现图片预览功能,可以显示缩列图,具有上下页的功能求技术支持

把图片按照规定的比例压缩,然后保存至FTP,列表读取缩略图,单击显示原图。

/***压缩图片方法一(高质量)*@paramoldFile将要压缩的图片*@paramwidth压缩宽*@paramheight压缩高*@paramsmallIcon压缩图片后,添加的扩展名(在图片后缀名前添加)*@paramquality压缩质量范围:<i>0.0-1.0</i>高质量:<i>0.75</i>中等质量:<i>0.5</i>低质量:<i>0.25</i>*@parampercentage是否等比压缩若true宽高比率将将自动调整*/publicstaticvoidcompressImage(StringoldFile,intwidth,intheight,StringsmallIcon,floatquality,booleanpercentage){try{Filefile=newFile(oldFile);//验证文件是否存在if(!file.exists())thrownewFileNotFoundException("找不到原图片!");//获取图片信息BufferedImageimage=ImageIO.read(file);intorginalWidth=image.getWidth();intorginalHeight=image.getHeight();//验证压缩图片信息if(width<=0||height<=0||!Pattern.matches("^[1-9]\d*$",String.valueOf(width))||!Pattern.matches("^[1-9]\d*$",String.valueOf(height)))thrownewException("图片压缩后的高宽有误!");//等比压缩if(percentage){doublerate1=((double)orginalWidth)/(double)width+0.1;doublerate2=((double)orginalHeight)/(double)height+0.1;doublerate=rate1>rate2?rate1:rate2;width=(int)(((double)orginalWidth)/rate);height=(int)(((double)orginalHeight)/rate);}//压缩后的文件名StringfilePrex=oldFile.substring(0,oldFile.lastIndexOf('.'));StringnewImage=filePrex+smallIcon+oldFile.substring(filePrex.length());//压缩文件存放位置FilesavedFile=newFile(newImage);//创建一个新的文件savedFile.createNewFile();//创建原图像的缩放版本Imageimage2=image.getScaledInstance(width,height,Image.SCALE_AREA_AVERAGING);//创建数据缓冲区图像BufferedImagebufImage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//创建一个Graphics2DGraphics2Dg2=bufImage.createGraphics();//重绘图像g2.drawImage(image2,0,0,width,height,null);g2.dispose();//过滤像素矩阵float[]kernelData={-0.125f,-0.125f,-0.125f,-0.125f,2,-0.125f,-0.125f,-0.125f,-0.125f};Kernelkernel=newKernel(3,3,kernelData);//按核数学源图像边缘的像素复制为目标中相应的像素输出像素ConvolveOpcOp=newConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);//转换像素bufImage=cOp.filter(bufImage,null);FileOutputStreamout=newFileOutputStream(savedFile);JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);JPEGEncodeParamparam=encoder.getDefaultJPEGEncodeParam(bufImage);//设置压缩质量param.setQuality(quality,true);encoder.encode(bufImage,param);out.close();System.out.println(newImage);}catch(Exceptione){e.printStackTrace();System.out.println("压缩失败!"+e.getMessage());}}

I. javaWeb怎么实现根据内容生成缩略图

packagecom.hoo.util;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.net.MalformedURLException;importjava.net.URL;importjavax.imageio.ImageIO;importcom.sun.image.codec.jpeg.ImageFormatException;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGEncodeParam;importcom.sun.image.codec.jpeg.JPEGImageEncoder;/***<b>function:</b>缩放图片工具类,创建缩略图、伸缩图片比例*@authorhoojo*@createDate2012-2-3上午:08:47*@fileScaleImageUtils.java*@packagecom.hoo.util*@version1.0*/{_SCALE_QUALITY=1f;_IMAGE_FORMAT=".jpg";//图像文件的格式_FILE_PATH="C:/temp-";/***<b>function:</b>设置图片压缩质量枚举类;*Someguidelines:0.75highquality、0.5mediumquality、0.25lowquality*@authorhoojo*@createDate2012-2-7上午11:31:45*@fileScaleImageUtils.java*@packagecom.hoo.util*@projectJQueryMobile*@version1.0*/publicenumImageQuality{max(1.0f),high(0.75f),medium(0.5f),low(0.25f);privateFloatquality;publicFloatgetQuality(){returnthis.quality;}ImageQuality(Floatquality){this.quality=quality;}}privatestaticImageimage;/***<b>function:</b>通过目标对象的大小和标准(指定)大小计算出图片缩小的比例*@authorhoojo*@createDate2012-2-6下午04:41:48*@paramtargetWidth目标的宽度*@paramtargetHeight目标的高度*@paramstandardWidth标准(指定)宽度*@paramstandardHeight标准(指定)高度*@return最小的合适比例*/publicstaticdoublegetScaling(doubletargetWidth,doubletargetHeight,doublestandardWidth,doublestandardHeight){doublewidthScaling=0d;doubleheightScaling=0d;if(targetWidth>standardWidth){widthScaling=standardWidth/(targetWidth*1.00d);}else{widthScaling=1d;}if(targetHeight>standardHeight){heightScaling=standardHeight/(targetHeight*1.00d);}else{heightScaling=1d;}returnMath.min(widthScaling,heightScaling);}

J. 怎么提取pdf文件中的页面来生成新PDF

以WPS 2019版本为例:

关于怎么提取pdf文件中的页面来生成新PDF,您可参考用WPS2019完成操作,具体步骤如下:

1、使用WPS2019打开「PDF文档」;

2、点击「编辑-提取页面」;

未经允许不得转载:山九号 » java读取pdf文件生成首页缩略图|java 如何读取PDF文件内容

赞 (0)