2017-04-15 1 views
-2

J'écris un programme Java qui lit le fichier à partir du compartiment s3. mon code est comme ci-dessous.Lire le fichier PDF à partir de S3 Bucket

AmazonS3 client = new AmazonS3Client(myCredentials); 
     S3Object xFile = client.getObject("myBucket", "myFile.txt"); 
     InputStream contents = xFile.getObjectContent(); 
     BufferedReader br = new BufferedReader(new InputStreamReader(contents)); 
     while (true) { 
      String line = br.readLine(); 
      if (line == null) 
       break; 

      System.out.println(" " + line); 
     } 
     System.out.println(); 

Et cela fonctionne très bien. c'est-à-dire qu'il affiche les données correctement.

De même, j'essaie de lire le contenu PDF à partir s3 Bucket en faisant le changement ci-dessous. Lorsque j'exécute ce programme, j'imprime du texte brouillé.

En général pour lire un pdf j'utilise PDfbox, ce woks fantastique, mais ici je veux le lire à partir de l'objet s3. Je sais que nous pouvons le lire depuis l'URL du fichier s3 et le passer sur PDFbox, mais cette approche ne fonctionnera pas pour moi.

S'il vous plaît laissez-moi savoir comment je peux le faire.

Merci

+2

Le "texte brouillé" est le contenu du PDF. Vous ne pouvez pas simplement imprimer des données PDF brutes à l'écran comme cela, car les fichiers PDF ne sont pas en texte brut. Vous devrez utiliser une sorte de bibliothèque capable de traiter les fichiers PDF. Vous semblez vous concentrer sur "le lire depuis un objet S3" mais vous convertissez déjà le contenu de l'objet S3 en un InputStream, puis en enveloppant ce InputStream avec un "Reader". Vous avez juste besoin de comprendre comment lire un document PDF à partir d'un 'InputStream' ou' Reader'. Je serais surpris si PDFBox ne supporte pas cela. –

+0

"pour lire un pdf j'utilise PDfbox, ce woks fantastique, mais ici je veux lire à partir de l'objet s3" - le code que vous avez posté n'utilise pas du tout PDFBox, alors qu'attendez-vous ?! Et oui, le format PDF est un format binaire. Il y a beaucoup d'exemples ici comment convertir en image ou faire l'extraction de texte avec PDFBox. –

Répondre

1

PDF est un format binaire . Vous n'obtiendrez pas de texte brut sans passer par un autre programme.

+0

Pourquoi cela est-il déprécié? PDF * est * un format binaire, et l'impression entraînera des déchets. Vous dites PDFbox "ne fonctionnera pas" pour vous, mais on ne sait pas ce que vous essayez même de faire. – l0b0