我正在寫一個從S3存儲區中讀取文件的java程序。我的代碼如下。從S3 Bucket中讀取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存儲PDF內容。
S3Object xFile = client.getObject("myBucket", "myFile.pdf");
當我運行此程序時,它正在打印加密文本。
一般閱讀PDF我用PDFBOX,這個夢幻般的炒菜鍋,但在這裏,我想從S3對象讀取它。我知道我們可以從s3文件的url中讀取它並將其傳遞到PDFbox,但這種方法對我來說不起作用。
請讓我知道我該怎麼做。
感謝
「炒文本」是PDF的內容。因爲PDF文件不是純文本,所以不能將原始PDF數據打印到屏幕上。您將需要使用某種可以處理PDF文件的庫。您似乎專注於「從S3對象讀取」,但您已將S3對象的內容轉換爲「InputStream」,然後用「Reader」將該InputStream包裝起來。您只需要弄清楚如何從「InputStream」或「Reader」中讀取PDF文檔。如果PDFBox不支持,我會感到驚訝。 –
「閱讀PDF我使用PDFbox,這個炒作太棒了,但在這裏我想從s3對象讀取它」 - 您發佈的代碼根本不使用PDFBox,那麼您期待什麼?!是的,PDF是一種二進制格式。這裏有很多例子,如何轉換爲圖像或使用PDFBox進行文本提取。 –