2017-10-10 1 views
1

문제는보고 된 내용과 동일합니다 (here).iText PDF가 "사전 키 엔드 스트림이 이름이 아님"메시지와 함께 실패 함

내가 this image을 촬영하고 GraphicsMagick의 v1.3.26을 사용하여 this PDF로 변환 한 (2017년 7월 4일 구축) :

gm convert itext_banner_InvalidPdfException.jpg itext_banner_InvalidPdfException.pdf

을 나는이 iText v5.5.12 그것을 읽으려고 할 때 내가 얻을 다음과 같은 예외 :

java -cp itextpdf-5.5.12.jar com.itextpdf.text.pdf.parser.PdfContentReaderTool itext_banner_InvalidPdfException.pdf 
com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: Dictionary key endstream is not a name. at file pointer 1197; Original message: Dictionary key endstream is not a name. at file pointer 1197 
    at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:764) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:235) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:223) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:213) 
    at com.itextpdf.text.pdf.parser.PdfContentReaderTool.listContentStream(PdfContentReaderTool.java:200) 
    at com.itextpdf.text.pdf.parser.PdfContentReaderTool.main(PdfContentReaderTool.java:249) 

질문 :

  • 주어진 PDF가 정확히 무엇입니까? GhostScript에는 GraphicsMagick에서 간접적으로 사용되는 문제가있는 것 같습니다.
  • iText RUPS v5.8.8으로 열면 콘솔 탭으로 경고가 인쇄되지 않습니다. iText RUPS 관점에서 유효하다는 뜻입니까?

    11 0 obj 
    << 
    
    endstream 
    endobj 
    

    개방 <<endstream에 의해 폐쇄 :

답변

1

귀하의 PDF이 깨진 개체가 포함되어 있습니다. 일치하지 않습니다. 그 객체가 단순한 사전 될 운명이 경우

, 그것은 다음과 같이 봤어야 :

11 0 obj 
<< 
    [a reasonable number of dictionary entries] 
>> 
stream 
    [stream data] 
endstream 
endobj 
: 그 객체가 스트림 될 운명 경우

11 0 obj 
<< 
    [a reasonable number of dictionary entries] 
>> 
endobj 

, 그것은이처럼 보였다해야


참고로, 문제의 개체는 PDF의 다른 개체에서 참조되지 않습니다. 따라서 부분 모드에서 PdfReader의 PDF를 열면 문제가 무시됩니다.

+0

iText RUPS가 왜 그것을보고하지 않는지 알고 있습니까? 나는 또한 그 문제에 대해서도 고안된 것이라고 생각합니다 : 부러진 구조를 회복하고 그것을보고하기 위해서입니다. –

+0

나중에 보겠습니다. 그러나 RUPS가이 오류를 특별히 처리하는 것을 기대하지는 않습니다. – mkl

관련 문제