2017-10-30 4 views
0

나는 한동안이 문제를 해결하려고 시도해 왔습니다. 내 프로그램에 대한 최신 PDFBox (2.0.7) 및 FontBox (2.0.7)가 있지만, 내가하는 일과 상관없이 동일한 컴파일 오류가 발생합니다. 이 클래스 내에서 Pdfbox - PDType0Font.load의 기호를 찾을 수 없습니다.

, 여기 내 관련 수입은 다음과 같습니다

import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.pdmodel.PDPage; 
import org.apache.pdfbox.pdmodel.PDPageContentStream; 
import org.apache.pdfbox.pdmodel.font.PDFont; 
import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont; 
import org.apache.pdfbox.pdmodel.font.PDType0Font; 
import org.apache.pdfbox.pdmodel.font.PDType1Font; 
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; 
import org.apache.pdfbox.pdmodel.common.PDRectangle; 

나는 다음 샘플 글꼴 설정을 시도하고있다 : 내가 언급 한 바와 같이,

PDDocument pdfDoc = new PDDocument(); 
PDPage page = new PDPage(); 
pdfDoc.addPage(page); 

PDPageContentStream contents = new PDPageContentStream(pdfDoc, page); 
PDFont font = PDType0Font.load(pdfDoc, new File("/path/to/font/Roboto-Regular.ttf")); 
contents.setFont(font, 20); 

불행하게도을, 내가 얻을 다음 때마다 컴파일 오류가 발생합니다.

error: cannot find symbol 
PDFont font = PDType0Font.load(pdfDoc, new File("/path/to/font/Roboto-Regular.ttf")); 
symbol: method load(PDDocument,File) 
location: class PDType0Font 

필자는 Javadocs multip 르 시간, 그 방법이 거기에 있는지 확인하기 위해 JAR 파일을 열었습니다. 그리고 인터페이스 PDFont 대신 PDType0Font의 인스턴스로 "글꼴"을 초기화하는 것과 같은 다른 작업을 시도했습니다. 같은 오류. 2.0.7에서 웹 사이트가 제공하는 모든 단일 JAR 가져 오기를 시도했습니다. (Preflight, xmpbox, pdfbox-tools, pdfbox-debugger) 나는 여전히 같은 오류가 발생합니다. 필자는 pdmodel 및 pdmodel.font 패키지에서 모든 클래스를 가져 오기 위해 노력했습니다. 같은 오류. 그 밖의 모든 것은 잘 작동합니다. 이것은이 하나의 특별한 방법 일뿐입니다. 처음에는 PDType0Font 대신 PDTrueTypeFont를 사용 했었지만 괜찮 았습니다. 하지만 외국 문자 때문에 PDType0Font로 전환해야합니다.

편집 : 해결. 내 classpath에서 오래된 Tika JAR이 충돌을 일으키고 PDFBox를 1.8.13 버전으로 되 돌리는 것으로 나타났습니다.

+0

문제는 당신이 사용하는 환경에있을 수 있습니다 (그리고 당신이해야하지!) 당신이 당신의 클래스 패스에 1.8 버전을 의미? 어떤 프로젝트 구축 시스템을 사용하고 있습니까? 문제를 재현하는 전체 샘플 프로젝트를 첨부 할 수 있습니까? –

+1

보이지 않는 오타가있을 수 있습니까? 해당 코드 행을 다시 입력 해보십시오. 또 다른 가능성은 클래스 경로에 오래된 또는 깨진 pdfbox 라이브러리가 있다는 것입니다 ... 삭제하고 다시로드 해보십시오. 또는 Maven을 사용하는 경우 저장소를 삭제하십시오. IDE에서 새 프로젝트를 시작하십시오. IDE의 캐시를 삭제하십시오. –

+0

Btw 나는 경험으로 말합니다 ... 나는 Netbeans에서 이런 일이 발생했습니다. Netbeans 캐시를 삭제하면 도움이되었습니다. –

답변

1

이 문제는 해결되었습니다. 내 클래스 패스에 충돌이 발생했다. 나는 그 안에 PDFBox 1.8이있는 매우 오래된 Tika JAR을 가지고 있었기 때문에 Tika를 최신 버전으로 업데이트했으며 더 이상 문제가 없습니다. 해결책을 제시 한 Tilman Hausherr에게 감사드립니다.

클래스 경로에 이전 .jar 파일이있을 수 있습니까? Exception e = new COSVisitorException (new Exception());을 추가하십시오. 그 중 하나가 작동하는 경우, 그것은

Pdfbox - Cannot find symbol for PDType0Font.load