Korzystając z pdfbox, czy możliwe jest przekonwertowanie pliku PDF (lub bajtu PDF []) na bajt []? Przeglądałem kilka przykładów w Internecie i jedyne, co mogę znaleźć, opisują, jak albo bezpośrednio zapisać przekonwertowany plik do systemu plików, albo przekonwertować go do obiektu AWT środowiska Java.pdfbox przekonwertować pdf na bajt obrazu []
Wolę nie zlecać IO zapisywania pliku obrazu do systemu plików, wczytać do bajtu [], a następnie go usunąć.
Więc może to zrobić:
String destinationImageFormat = "jpg";
boolean success = false;
InputStream is = getClass().getClassLoader().getResourceAsStream("example.pdf");
PDDocument pdf = PDDocument.load(is, true);
int resolution = 256;
String password = "";
String outputPrefix = "myImageFile";
PDFImageWriter imageWriter = new PDFImageWriter();
success = imageWriter.writeImage(pdf,
destinationImageFormat,
password,
1,
2,
outputPrefix,
BufferedImage.TYPE_INT_RGB,
resolution);
Jak również to:
InputStream is = getClass().getClassLoader().getResourceAsStream("example.pdf");
PDDocument pdf = PDDocument.load(is, true);
List<PDPage> pages = pdf.getDocumentCatalog().getAllPages();
for (PDPage page : pages)
{
BufferedImage image = page.convertToImage();
}
Gdzie nie jestem jasno na to, jak tranform z BufferedImage do byte []. Wiem, że jest to przekształcone w strumień wyjściowy pliku w imageWriter.writeImage(), ale nie jestem pewien, jak działa interfejs API.
Dzięki. Działa to zgodnie z przeznaczeniem. Gdybym miał dość reputacji, zagłosowałbym na ciebie, ale to jest mój pierwszy wpis do StackOverflow. – user2100746
Nie ma za co; powinieneś być w stanie oznaczyć go jako zaakceptowany. – aditsu
@ user2100746 powinieneś oznaczyć odpowiedź jako zaakceptowaną :) – Genjuro