pdfbox convertir pdf en image byte[]
À l'aide de pdfbox, est-il possible de convertir un fichier PDF (ou un PDF byte[]) en une image byte[]? J'ai regardé à travers plusieurs exemples en ligne, et les seuls que je peux trouver décrire comment d'écrire directement le fichier converti sur le système de fichiers ou de les convertir en Java AWT objet.
Je préfère ne pas en subir les IO de l'écriture d'un fichier d'image du système de fichiers, lire dans un byte[], puis le supprimer.
Donc, ce que je peux faire:
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);
Ainsi que ceci:
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();
}
Où je ne suis pas clair sur la façon de transformer la BufferedImage dans un byte[]. Je sais que c'est transformé en un fichier de flux de sortie dans imageWriter.writeImage(), mais je ne suis pas clair sur la façon dont l'API travaille.
OriginalL'auteur user2100746 | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ImageIO.écrire à écrire à un OutputStream. Pour obtenir un byte[], utilisez un ByteArrayOutputStream, puis d'appeler toByteArray ().
Vous êtes les bienvenus; vous devriez être en mesure de le marquer comme acceptée.
vous devez cochez la réponse acceptée 🙂
n'importe qui peut marquer "réponse acceptée" pour leur respective de questions, c'est le principe fondamental de la SORTE. A défaut, il sera d'assurer answerers retenir ses connaissances auprès de vous. #payitforward
comment est-ce l'effet de levier PDfBox? (ou n'est-ce pas?) Pouvez-vous donner un bout de code par exemple
OriginalL'auteur aditsu
OriginalL'auteur Vahap Gençdal
Ajouter maven dependency:
Et, conversion d'un pdf en image:
EDIT:
byte []
, pas un fichier. Votre réponse sur l'autre main montre une autre façon de l'avoir rendu à un fichier.Remplacer FileOutputStream à ByteArrayOutputStream
"ByteArrayOutputStream out = new ByteArrayOutputStream(pngFileName)"
-ByteArrayOutputStream
n'a que deux constructeurs, l'un sans paramètres et un avec unint
paramètre. Ainsi, votre appel à l'aide d'unString
paramètre ne sera même pas compiler, sauf si tu veux dire un autreByteArrayOutputStream
que celuijava.io
.OriginalL'auteur BeeNoisy