s3 버킷에서 파일을 읽는 Java 프로그램을 작성하고 있습니다. 내 코드는 다음과 같습니다.S3 버킷에서 PDF 파일 읽기
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();
그리고 제대로 작동합니다. 즉, 데이터를 정확하게 표시합니다.
마찬가지로 아래 변경하여 s3 Bucket에서 PDF 콘텐츠를 읽으려고합니다.
S3Object xFile = client.getObject("myBucket", "myFile.pdf");
이 프로그램을 실행하면 스크램블 된 텍스트가 인쇄됩니다.
일반적으로 pdf를 읽으려면 PDfbox를 사용하십시오.이 woks 환상적이지만 여기서는 s3 객체에서 읽고 싶습니다. 나는 우리가 s3 파일 URL에서 그것을 읽을 수 있고 그것을 PDFbox로 전달할 수 있다는 것을 알고 있지만, 그 접근법은 나를 위해 작동하지 않을 것이다.
어떻게해야하는지 알려주세요.
감사
"스크램블 된 텍스트"는 PDF 내용입니다. PDF 파일은 일반 텍스트가 아니기 때문에 원시 PDF 데이터를 화면에 인쇄 할 수는 없습니다. PDF 파일을 처리 할 수있는 일종의 라이브러리를 사용해야 할 것입니다. "S3 객체에서 읽는 것"에 집중하는 것 같지만 S3 객체의 내용을 이미 'InputStream'으로 변환하고'InputStream'을 'Reader'로 래핑하고 있습니다. 'InputStream' 또는'Reader'에서 PDF 문서를 읽는 방법을 알아 내면됩니다. 나는 PDFBox가 그것을 지원하지 않는다면 놀랄 것이다. –
"PDF를 읽으려면 PDFbox를 사용하십시오.이 woks 환상적이지만 여기서는 s3 객체에서 읽으 려합니다."- 게시 한 코드는 PDFBox를 전혀 사용하지 않으므로, 무엇을 기대 했습니까?! 그리고 예, PDF는 바이너리 형식입니다. PDFBox를 사용하여 이미지로 변환하거나 텍스트 추출을 수행하는 방법에 대한 예제가 많이 있습니다. –