2010-08-17 2 views

답변

0

PDF보기 용으로 iText를 제안합니다. 지금까지 나에게 꽤 좋았다.

1
int widthPage = (int)page.getBBox().getWidth(); 
    int heightPage = (int)page.getBBox().getHeight(); 

    if(page.getAspectRatio()<1){ 
     widthPage = (int)(widthPage/page.getAspectRatio()); 
     heightPage = (int)(heightPage/page.getAspectRatio()); 
    } 

    // get the width and height for the doc at the default zoom 
    Rectangle rect = new Rectangle(0, 0, (int) widthPage, (int) heightPage); 
    // generate the image 
    Image img = page.getImage(rect.width, rect.height, // width & height 
      rect, // clip rect 
      null, // null for the ImageObserver 
      true, // fill background with white 
      true // block until drawing is done 
      ); 
    // save it as a file 
0

이미지 크기 만 변경하십시오. 이미지를 확대하면 이미지 크기가 클 경우 모든 문자가 선명하게 표시됩니다. 04-Request-Headers.pdf 파일을 다운로드하여 C 드라이브에 붙여 넣으면 변환 된 파일은 PDFConvertedFiles 폴더에 저장됩니다. 필요한 용기가 PDFRenderer-0.9.0

package com.pdfrenderer.examples; 

import java.awt.Graphics2D; 
import java.awt.Image; 
import java.awt.Rectangle; 
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 com.sun.pdfview.PDFFile; 
import com.sun.pdfview.PDFPage; 

public class ConvertAllPDFPagesToImageWithDimenstions { 
    public static void main(String[] args) { 
     try { 
      String sourceDir = "C:/04-Request-Headers.pdf";// PDF file must be placed in DataGet folder 
      String destinationDir = "C:/PDFConvertedFiles/";//Converted PDF page saved in this folder 

    File sourceFile = new File(sourceDir); 
    File destinationFile = new File(destinationDir); 

    String fileName = sourceFile.getName().replace(".pdf", ""); 
    if (sourceFile.exists()) { 
     if (!destinationFile.exists()) { 
      destinationFile.mkdir(); 
      System.out.println("Folder created in: "+ destinationFile.getCanonicalPath()); 
     } 

     RandomAccessFile raf = new RandomAccessFile(sourceFile, "r"); 
     FileChannel channel = raf.getChannel(); 
     ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); 
     PDFFile pdf = new PDFFile(buf); 
     System.out.println("Total Pages: "+ pdf.getNumPages()); 
     int pageNumber = 1; 
     for (int i = 0; i < pdf.getNumPages(); i++) { 
      PDFPage page = pdf.getPage(i); 

      // image dimensions 
      int width = 1200; 
      int height = 1400; 

      // create the image 
      Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight()); 
      BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 

      // width & height, // clip rect, // null for the ImageObserver, // fill background with white, // block until drawing is done 
      Image image = page.getImage(width, height, rect, null, true, true); 
      Graphics2D bufImageGraphics = bufferedImage.createGraphics(); 
      bufImageGraphics.drawImage(image, 0, 0, null); 

      File imageFile = new File(destinationDir + fileName +"_"+ pageNumber +".png");// change file format here. Ex: .png, .jpg, .jpeg, .gif, .bmp 

      ImageIO.write(bufferedImage, "png", imageFile); 
      pageNumber++; 

      System.out.println(imageFile.getName() +" File created in Folder: "+ destinationFile.getCanonicalPath()); 
     } 
    } else { 
     System.err.println(sourceFile.getName() +" File not exists"); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
} 
}