Wierzę, że icepdf może mieć to, czego szukasz.
Użyłem tego projektu open source, aby zamienić przesłane pliki PDF na obrazy do wykorzystania w katalogu online.
import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.pobjects.Page;
import org.icepdf.core.util.GraphicsRenderingHints;
public byte[][] convert(byte[] pdf, String format) {
Document document = new Document();
try {
document.setByteArray(pdf, 0, pdf.length, null);
} catch (PDFException ex) {
System.out.println("Error parsing PDF document " + ex);
} catch (PDFSecurityException ex) {
System.out.println("Error encryption not supported " + ex);
} catch (FileNotFoundException ex) {
System.out.println("Error file not found " + ex);
} catch (IOException ex) {
System.out.println("Error handling PDF document " + ex);
}
byte[][] imageArray = new byte[document.getNumberOfPages()][];
// save page captures to bytearray.
float scale = 1.75f;
float rotation = 0f;
// Paint each pages content to an image and write the image to file
for (int i = 0; i < document.getNumberOfPages(); i++) {
BufferedImage image = (BufferedImage)
document.getPageImage(i,
GraphicsRenderingHints.SCREEN,
Page.BOUNDARY_CROPBOX, rotation, scale);
try {
//get the picture util object
PictureUtilLocal pum = (PictureUtilLocal) Component
.getInstance("pictureUtil");
//load image into util
pum.loadBuffered(image);
//write image in desired format
imageArray[i] = pum.imageToByteArray(format, 1f);
System.out.println("\t capturing page " + i);
} catch (IOException e) {
e.printStackTrace();
}
image.flush();
}
// clean up resources
document.dispose();
return imageArray;
}
Słowo ostrzeżenia jednak, miałem problemy z tą biblioteką, rzucając SegFault na open-jdk. pracował dobrze na Sun's. Nie jestem pewien, co by to zrobiło na GAE. Nie pamiętam, jaką wersję miał problem, więc po prostu bądź świadomy.
http://stackoverflow.com/questions/11513841/appengine-conversion-api-java pokazuje, jak to zrobić za pomocą api konwersji Google. * Ale * jest jeden problem. Ten interfejs API zostanie usunięty w listopadzie. Może możesz poprosić Google o wskazówki na temat jakiejkolwiek alternatywy. – halex
Tak, widziałem to. Ale jak napisałeś, wsparcie zostanie wkrótce przerwane. W przeciwnym razie byłby idealny. Postaram się uzyskać informacje z google. – Bommelmutze
Witam, czy znalazłeś coś, co robi tę samą konwersję? Poszukuję również podobnej funkcjonalności. Wiem, że mogę poprosić o obrazy z plików PDF mniejszych niż 25 MB za pomocą dysku google. Ale potrzebuję go do pracy przy większych plikach. – DavidVdd