So erhöhen Sie die Auflösung des Bildes in PDF-renderer?
Ich soll zur Erhöhung der Auflösung eines Bildes. Ich verwendet PDFRenderer-0.9.0 jar . Es wird heruntergeladen von java.net
für die Umwandlung von PDF-Seiten in Bilder.
Ich Konvertieren wollen 46_2.pdf PDF-Datei zu Bild . Die konvertierten 46_2.png Bild ist klein mit Abmessungen 612 x 792 [ width x height ]
,
So, ich möchte erhöhen Sie die Bild-Dimensionen zu 1200 x 1400 [ width x height]
.
Ich zuvor versucht PdfBox für die Umwandlung von PDF-Seiten in PNG-Bild-Datei. Es ist ein problem only page is converted but text is missing
. Also versuchte ich PdfRenderer für die Bild-Konvertierung.
Code:
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 ConvertPdfPagesToImage {
public static void main(String[] args) {
try {
String sourceDir = "C:/PDFCopy/46_2.pdf";
String destinationDir = "C:/PDFCopy/";
File sourceFile = new File(sourceDir);
String fileName = sourceFile.getName().replace(".pdf", "");
if (sourceFile.exists()) {
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);
int pageNumber = 1;
for (int i = 0; i < pdf.getNumPages(); i++) {
PDFPage page = pdf.getPage(i);
//create the image
Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight());
BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);
//image width, //image height, //clip rect, //null for the ImageObserver, //fill background with white, //block until drawing is done
Image image = page.getImage(rect.width, rect.height, rect, null, true, true );
Graphics2D bufImageGraphics = bufferedImage.createGraphics();
bufImageGraphics.drawImage(image, 0, 0, null);
ImageIO.write(bufferedImage, "png", new File( destinationDir + fileName +"_"+ pageNumber +".png"));
pageNumber++;
}
} else {
System.err.println(sourceFile.getName() +" File not exists");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
was passiert, wenn die doppelte Breite und Höhe des Bildes. Wird das nicht machen, es auf die doppelte Auflösung?
nach dem ändern der Breite und Höhe Bild ist vergrößert, aber die Auflösung ist dieselbe. Wenn wir erhöht die Auflösung automatisch ändert Ihre Höhe und Breite.
Ähm .. Sie wollen automatisch erhöhen Sie die Auflösung von einem pixel-Bild? Sie wissen, diejenigen, die "image enhancement" Funktionen sehen Sie in "CSI" sind fake, nicht wahr?
es ist möglich, in pdfbox.
nach dem ändern der Breite und Höhe Bild ist vergrößert, aber die Auflösung ist dieselbe. Wenn wir erhöht die Auflösung automatisch ändert Ihre Höhe und Breite.
Ähm .. Sie wollen automatisch erhöhen Sie die Auflösung von einem pixel-Bild? Sie wissen, diejenigen, die "image enhancement" Funktionen sehen Sie in "CSI" sind fake, nicht wahr?
es ist möglich, in pdfbox.
InformationsquelleAutor pudaykiran | 2014-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertieren Sie die ausgewählten
pageNumber
PDF-Datei 46_2.pdf in Bild-format 46_2.png mit den gewünschten Abmessungen. Die Auflösung des Bildes erhöht wird.So Konvertieren Sie Einzelne PDF-Seite als png-oder jpeg-Bild-format mit der Auflösung.
Code:
Ausgabe: Konvertierten Dateien gespeichert werden sollen
C:\PDFCopy\Converted
Ordner. Unten ist die Ausgabe der Konsole.Dank Jeff Friesen basierend auf Ihrem Beispiel von jRebel ich habe versucht, es in pdfrenderer
Eine Andere Lösung:
So Konvertieren Sie Alle PDF-Seiten in png - /jpeg - /jpg - /gif - /bmp-Bild-format mit der Auflösung ist unter java die Verwendung von PDF-renderer. Die zu konvertierende Datei 04-Request-Headers.pdf
Code:
Ausgabe: Alle Dateien sind gespeichert in
C:/Documents/Converted/
Ordner. Unten ist die Ausgabe der KonsoleBufferedImage buffImage = (BufferedImage) page.getImage(rect.width, rect.height, rect, null, true, true);
und dann schreiben Sie das Bild in einer Datei:ImageIO.write(buffImage, "png", destImage.toFile());
-- excludeImage
undGraphics
benutzt habe ich die Lösung und habe ein problem, es funktioniert gut, wenn die pdf-Datei enthält text, aber wenn ich versucht habe mit dem pdf-Format, die mit Bild ist es keine Arbeit gibt Fehler in dieser Zeile auf das Bild = Seite.Funktion " getImage(Breite, Höhe, rect, null, true, true );
InformationsquelleAutor pudaykiran