Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MS Word和PDF转换为图像(png/jpg)_Java_Image Processing - Fatal编程技术网

Java MS Word和PDF转换为图像(png/jpg)

Java MS Word和PDF转换为图像(png/jpg),java,image-processing,Java,Image Processing,我正在寻找一个免费的库,用于将MS Word、WordPerfect和PDF转换为图像。 有人知道有什么好的、最新的JAVA库吗?要将PDF转换为图像,您可以使用 下面是使用PDFBOXAPI将PDF转换为图像的代码 import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; impo

我正在寻找一个免费的库,用于将MS Word、WordPerfect和PDF转换为图像。
有人知道有什么好的、最新的JAVA库吗?

要将PDF转换为图像,您可以使用

下面是使用PDFBOXAPI将PDF转换为图像的代码

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageNode;


public List<String> generateImages(String pdfFile) throws IOException  {

     String imagePath = "/Users/$user/pdfimages/";
     List <String> fileNames = new ArrayList<String>();
      document = PDDocument.load(pdfFile);  //// load pdf   
      node = document.getDocumentCatalog().getPages(); ///// get pages
      List<PDPage> kids = node.getKids();
      int count=0;
      for(PDPage page : kids) {   ///// iterate
           BufferedImage img = page.convertToImage(BufferedImage.TYPE_INT_RGB,128);
           File imageFile = new File(imagePath+ count++ + ".jpg");
               ImageIO.write(img, "jpg", imageFile);
               fileNames.add(imageFile.getName());     
           }
           return fileNames;   
    }
导入java.awt.image.buffereImage;
导入java.io.File;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
导入javax.imageio.imageio;
导入org.apache.pdfbox.pdmodel.PDDocument;
导入org.apache.pdfbox.pdmodel.PDPage;
导入org.apache.pdfbox.pdmodel.PDPageNode;
公共列表generateImages(字符串Pdfile)引发IOException{
字符串imagePath=“/Users/$user/pdfimages/”;
列表文件名=新的ArrayList();
document=PDDocument.load(pdfFile);///load pdf
node=document.getDocumentCatalog().getPages();//获取页面
List kids=node.getKids();
整数计数=0;
对于(PDPage:kids){///iterate
BuffereImage img=页面转换图像(BuffereImage.TYPE_INT_RGB,128);
File imageFile=新文件(imagePath+count++“.jpg”);
写入(img,“jpg”,imageFile);
add(imageFile.getName());
}
返回文件名;
}
另外,还可以使用另一个库将PDF转换为图像

下面是代码示例

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;

public class JavaApplication12 {

public static void main(String[] args) throws FileNotFoundException, IOException {
FileInputStream is = new FileInputStream(“D:/Presentation1.ppt”);
SlideShow ppt = new SlideShow(is);
is.close();

Dimension pgsize = ppt.getPageSize();

Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {

BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, 1);

Graphics2D graphics = img.createGraphics();
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);

graphics.setColor(Color.white);
graphics.clearRect(0, 0, pgsize.width, pgsize.height);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

// render
slide[i].draw(graphics);

// save the output
FileOutputStream out = new FileOutputStream(“slide-” + (i + 1) + “.png”);
javax.imageio.ImageIO.write(img, “png”, out);
out.close();
}
}
}
导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.Graphics2D;
导入java.awt.RenderingHints;
导入java.awt.geom.Rectangle2D;
导入java.awt.image.buffereImage;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入org.apache.poi.hslf.model.Slide;
导入org.apache.poi.hslf.usermodel.SlideShow;
公共类JavaApplication12{
公共静态void main(字符串[]args)抛出FileNotFoundException、IOException{
FileInputStream是=新的FileInputStream(“D:/Presentation1.ppt”);
幻灯片ppt=新幻灯片(is);
is.close();
维度pgsize=ppt.getPageSize();
Slide[]Slide=ppt.getSlides();
对于(int i=0;i
若要将MS Word转换为图像,您可以查看发布的问题 使用

JODConverter自动执行OpenOffice.org支持的所有转换,包括

  • 任何PDF格式 o将OpenDocument(文本、电子表格、演示文稿)转换为PDF o Word至PDF;Excel转换为PDF;PowerPoint转PDF o RTF至PDF格式;WordPerfect到PDF
  • 还有更多 o向Flash提供OpenDocument演示(odp);要闪存的PowerPoint o将RTF转换为OpenDocument;WordPerfect到OpenDocument o HTML的任何格式(有限制) o支持OpenOffice.org 1.0和旧的StarOffice格式
//DOC to.jpeg
包org.doc;
导入java.io.File;
导入com.aspose.words.Document;
导入com.aspose.words.ImageSaveOptions;
导入com.aspose.words.SaveFormat;
公共类博士图像{
公共静态void main(字符串[]args){
试一试{
字符串sourcePath=“D://G.doc”;
文档文档=新文档(sourcePath);
ImageSaveOptions=newImageSaveOptions(SaveFormat.JPEG);
选项。设置质量(100);
选项。setResolution(100);
options.setUseHighQualityRendering(true);
对于(inti=0;i//DOC to .jpeg

package org.doc;

import java.io.File;

import com.aspose.words.Document;
import com.aspose.words.ImageSaveOptions;
import com.aspose.words.SaveFormat;

public class DocToImage {

    public static void main(String[] args) {

        try {
                String sourcePath = "D://G.doc";
               Document doc = new Document(sourcePath);  
               ImageSaveOptions options = new ImageSaveOptions(SaveFormat.JPEG);  
               options.setJpegQuality(100);  
               options.setResolution(100);  
               options.setUseHighQualityRendering(true);  
               for (int i = 0; i < doc.getPageCount(); i++) {  
                    String imageFilePath = "E://"+ "images" + File.separator + "img_" + i + ".jpeg";  
                    options.setPageIndex(i);  
                    doc.save(imageFilePath, options);  
               }  
               System.out.println("Done...");
          } catch (Exception e) {  
               e.printStackTrace();  
          }  
    }

}


/*Here is the link from where we can download latest Aspose word jar.
http://www.aspose.com/java/word-component.aspx*/


//PDF to .png

package org.pdf;

import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

import com.sun.pdfview.PDFFile;
import com.sun.pdfview.PDFPage;

public class PdfToImage {

    public static void main(final String[] args) throws Exception {

            String storagePath = "E://dd.pdf";

            //Image Save Directory
            String realPathtopdfImageSaveDir = "E://uploads/";

            RandomAccessFile raf = new RandomAccessFile(storagePath, "r");
            FileChannel channel = raf.getChannel();
            ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
            PDFFile pdffile = new PDFFile(buf);

            int numPgs = pdffile.getNumPages();

            for (int i = 0; i < numPgs; i++) {
                PDFPage page = pdffile.getPage(i);

                Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight());

                Image img = page.getImage(rect.width, rect.height, rect, null, true, true);

                // save it as a file
                BufferedImage bImg = toBufferedImage(img);
                File yourImageFile = new File(realPathtopdfImageSaveDir +File.separator + "page_" + i + ".png");

                ImageIO.write(bImg, "png", yourImageFile);
            }

    }

    public static BufferedImage toBufferedImage(Image image) {
        if (image instanceof BufferedImage) {
            return (BufferedImage) image;
        }

        image = new ImageIcon(image).getImage();

        BufferedImage bimage = null;
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        try {
            int transparency = Transparency.OPAQUE;

            GraphicsDevice gs = ge.getDefaultScreenDevice();
            GraphicsConfiguration gc = gs.getDefaultConfiguration();
            bimage = gc.createCompatibleImage(image.getWidth(null), image.getHeight(null), transparency);
        } catch (HeadlessException e) {
            System.out.println("The system does not have a screen");
        }

        if (bimage == null) {
            int type = BufferedImage.TYPE_INT_RGB;
            bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);
        }

        Graphics g = bimage.createGraphics();

        g.drawImage(image, 0, 0, null);
        g.dispose();

        return bimage;
    }
}

// jar required pdf-renderer.jar