Zoom PDFRender
Estoy trabajando en un proyecto y hago uso de la libreria PDFRender la cual tiene un metodo "useZoomTool(boolean)"
que permite hacer zoom al PDF pero una vez que lo haces ya no puedes regresar al estado normal del PDF...
Existe un metodo de la libreria que permite el zoom- y zoom+ ??? ... o alguna otra forma de hacer esta accion?
Espero me puedan ayudar ....
- Inicie sesión o regístrese para enviar comentarios
Zoom PDFRender ...PDF a Imagen
Bueno tras un tiempo investigando opte por ver el problema desde otro punto de vista. Asi que les dejo un pequeño aporte
Debido a que no podria implementar el metodo useZoomTool() pense en convertir el PDF a una Imagen
import com.sun.pdfview.PDFPage;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel;
import javax.imageio.ImageIO;
public class PDFToImageConverter {
private void convert() throws Exception {
// load a pdf from a file
File file = new File("a.pdf");
RandomAccessFile raf = new RandomAccessFile(file, "r");
ReadableByteChannel ch = Channels.newChannel(new FileInputStream(file));
FileChannel channel = raf.getChannel();
ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY,
0, channel.size());
PDFFile pdffile = new PDFFile(buf);
// get number of pages
int numpag = pdffile.getNumPages();
// iterate through the number of pages
for (int i = 1; i <= numpag; i++) {
PDFPage page = pdffile.getPage(i);
// create new image
Rectangle rect = new Rectangle(0, 0,
(int) page.getBBox().getWidth(),
(int) page.getBBox().getHeight());
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
);
BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
File asd = new File("bbb" + i + ".jpg");
if (asd.exists()) {
asd.delete();
}
ImageIO.write(bufferedImage, "jpg", asd);
}
}
public static void main(String[] args) {
PDFToImageConverter converter = new PDFToImageConverter();
try {
converter.convert();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Luego con las clase BufferedImage, Graphics2D y su metodo scale() dibujaba la imagen segun la escala deseada, para un + o - zoom
Espero y les sirva de ayuda