2012-09-20 5 views
1

안녕하세요 저는 서블릿에 의해 업로드되는 PDF 파일을 읽으려고합니다. PDF 헤더 서명 찾을 수 없습니다PDF 헤더 서명을 찾을 수 없습니다, iText

여기 내 PDF 파일이 %처럼 시작하는 코드

//out = byte array 
out = readInItem(item); 
fileToUpload = new ByteArrayInputStream(out.toByteArray()); 

Map<String, AcroFields.Item> pdfBoxNames = new HashMap<String, AcroFields.Item>(); 
PdfReader reader = new PdfReader(fileToUpload); 
ByteArrayOutputStream os = new ByteArrayOutputStream(); 
PdfStamper stamper = new PdfStamper(reader, os); 
AcroFields acroFields = stamper.getAcroFields(); 
pdfBoxNames = acroFields.getFields(); 

PDF-1.6

이 오류 메시지가 때 java.io.IOException이다.

+0

해결책을 찾았습니다. PDFReader는 item.openstream()에서 가져온 입력 스트림 만 사용합니다. ByteArrayInputStream과 같은 것으로 변환하면 예외가 throw되기 시작합니다. 따라서 파일을 업로드 할 때 얻는 입력 스트림 만 제공하십시오. –

+1

물론 PDF 바이트를 포함하는 바이트 배열을 사용하여 PdfReader 객체를 구성 할 수도 있습니다. ByteArrayInputStream을 만들 필요가 없습니다. –

답변

1

같은 예외가 발생했습니다! TableHeader 및 해당 작성자 PageEvent을 포함 시켰는지 확인하십시오. 방금 그들을 추가했고이 예외는 사라졌습니다! 도움이 되었으면 좋겠어요

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filePath)); 
TableHeader includeHeader = new TableHeader(); 
writer.setPageEvent(includeHeader); 
관련 문제