2012-12-11 3 views
1

ppt 파일을 읽고 싶습니다. apache.poi 라이브러리 API를 사용하여 파일을 읽으려고했습니다. 이것은 내가 시도한 것이다.apache.poi 라이브러리를 사용하여 PPT 파일을 읽을 수 없습니다.

POIFSFileSystem posF = new POIFSFileSystem(fileInputStream); 

는이 질문에 유래 여러 번에 물어 내가 모든 제안 된 솔루션을 시도했지만 아무 소용이었다 된 다음과 같은 오류

java.io.IOException: Invalid header signature; read 4851293027410584380, expected -2226271756974174256 
at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:112) 
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:151) 

에게 던졌습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 아파치 티카와 함께 확인하기 위해 다음 코드를 시도했다. POIFSContainerDetector detector = 새 POIFSContainerDetector(); MediaType mdType = detector.detect (fis, new Metadata()); 하지만 발생 때 java.io.IOException : 마크/지원되지 리셋 java.io.InputStream.reset (알 수없는 소스)에서 \t org.apache.tika.parser.microsoft.POIFSContainerDetector.detect에서 \t (POIFSContainerDetector .java : 158) 더 이상의 도움을 받으실 수 있으면 감사하겠습니다. – manishKumarSingh

답변

0

이 오류는 실제로 파일이 실제로 PPT 파일이 아니라는 것을 알려줍니다. (이것은 .PPT가 기반으로하는 기본 형식 인 OLE2 파일이 아닙니다.)

파일이 실제로 무엇인지 알아 보려면 가까운 유닉스 박스에서 file 유틸리티를 사용하거나 Apache Tika을 사용하는 것이 좋습니다 TikaCLI와 --detect. 그게 당신의 파일이 무엇인지 알아 내야합니다. (힌트 - .ppt가 아니기 때문에 오류입니다!) 그러면 어떤 라이브러리를 열 것인지를 확인할 수 있습니다.