Wie Sie image erstellen von PDF mit PDFBox in JAVA
Möchte ich ein image erstellen von der ersten Seite der PDF-Datei . Ich bin mit PDFBox . Nach Recherchen im web , habe ich die folgende code-snippet :
public class ExtractImages
{
public static void main(String[] args)
{
ExtractImages obj = new ExtractImages();
try
{
obj.read_pdf();
}
catch (IOException ex)
{
System.out.println("" + ex);
}
}
void read_pdf() throws IOException
{
PDDocument document = null;
try
{
document = PDDocument.load("H:\\ct1_answer.pdf");
}
catch (IOException ex)
{
System.out.println("" + ex);
}
List<PDPage>pages = document.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
int i =1;
String name = null;
while (iter.hasNext())
{
PDPage page = (PDPage) iter.next();
PDResources resources = page.getResources();
Map pageImages = resources.getImages();
if (pageImages != null)
{
Iterator imageIter = pageImages.keySet().iterator();
while (imageIter.hasNext()) {
String key = (String) imageIter.next();
PDXObjectImage image = (PDXObjectImage) pageImages.get(key);
image.write2file("H:\\image" + i);
i ++;
}
}
}
}
}
Im obigen code ist es kein Fehler . Aber die Ausgabe dieses Codes ist nichts . Ich habe erwartet, dass der obige code erzeugt eine Reihe von Bildern, die gespeichert werden, in der H fahren . Aber es gibt kein Bild in diesem code hergestellt aus diesem code . Warum ?
Was für ein fantasy-Beobachtung haben Sie gemacht ! Ich habe verstanden, jede Zeile von diesem code . Es scheint, dass der code soll arbeiten, um zu erreichen mein Ziel . Aber die Tatsache ist, es funktioniert nicht nach meiner Erwartung .
Sind Sie versuchen, zu extrahieren eingebettete Bilder in Ihrem PDF-Seite und schreiben Sie Sie auf die Festplatte? Denn das ist, was dieser code tut.
Ich möchte die Ausgabe der ersten Seite der PDF-Datei als Bild .
Mögliche Duplikate von: stackoverflow.com/questions/4523688/...
Der link von Ihnen ist nicht eine Duplizierung meiner Frage . Schauen, dass in den code der unseren link gibt es ein BufferedImage-Klasse wird nicht unterstützt von android . @Roussy, Christophe
Sind Sie versuchen, zu extrahieren eingebettete Bilder in Ihrem PDF-Seite und schreiben Sie Sie auf die Festplatte? Denn das ist, was dieser code tut.
Ich möchte die Ausgabe der ersten Seite der PDF-Datei als Bild .
Mögliche Duplikate von: stackoverflow.com/questions/4523688/...
Der link von Ihnen ist nicht eine Duplizierung meiner Frage . Schauen, dass in den code der unseren link gibt es ein BufferedImage-Klasse wird nicht unterstützt von android . @Roussy, Christophe
InformationsquelleAutor osimer pothe | 2013-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne unhöflich zu sein, hier ist, was der code, den Sie geschrieben hat in seiner wichtigsten arbeiten-Schleife:
Es ist immer jede Seite aus der PDF-Datei, bekommen die Ressourcen, die von der Seite und das extrahieren der eingebettete Bilder. Dann schreibt diese auf die Festplatte.
Wenn Sie einen kompetenten software-Entwickler müssen Sie in der Lage sein, um die Forschung und Dokumentation Lesen. Mit Java, das bedeutet, dass Javadocs. Googeln
PDPage
(oder explizit gehen Sie auf der apache Website) dreht die Javadoc für PDPage.Auf dieser Seite finden Sie zwei Versionen der Methode
convertToImage()
für die Umwandlung derPDPage
zu einem Bild. Das Problem ist gelöst.Außer ...
Leider wieder ein
java.awt.image.BufferedImage
die basierend auf anderen Fragen, die Sie gefragt haben, ist ein problem, da es nicht unterstützt auf der Android-Plattform, die ist, was Sie gerade arbeiten.Kurz gesagt, Sie können nicht von Apache PDFBox auf Android zu tun, was Sie zu tun versuchen.
Suche auf StackOverflow finden Sie diese gleiche Frage mehrmals in verschiedenen Formen, die Sie führen wird: https://stackoverflow.com/questions/4665957/pdf-parsing-library-for-android/4766335#4766335 mit der folgenden Antwort, die würde Sie von Interesse sein: https://stackoverflow.com/a/4779852/302916
Leider auch die, die der oben genannten Antwort sagt, wird die Arbeit ... ist nicht sehr benutzerfreundlich; es gibt kein "Wie" oder docs, die ich finden kann. Es ist auch gekennzeichnet als "alpha". Dies ist wahrscheinlich nicht etwas für schwache Nerven, da es erfordert das Lesen und verstehen Ihren code selbst beginnen, es zu verwenden.
ImageIO
undBufferedImage
sind alles was Sie brauchen zum schreiben eines Bildes auf der Festplatte. Aber du sagst diese Java-libs werden nicht unterstützt auf Android? O. oInformationsquelleAutor Brian Roach
Kopiert habe ich Ihren oben genannten code Hinzugefügt und folgende libs auf meinen buildpath in eclipse. Es ist die Arbeit.
Apache PDFBox 1.7.1 libs
Commons-Logging-1.1.1 libs
Sie können nur die erste Seite stattdessen die folgenden Zeilen: List<PDPage>Seite = document.getDocumentCatalog().getAllPages(); hofft, dass er Ihre Frage beantwortet. Grüße.
InformationsquelleAutor GltknBtn