2017-02-16 4 views
0

PDF 문서에 텍스트를 추가하기 위해 PDFBox 1.8.10을 사용하고 있습니다. 텍스트가 문서에 추가되는 일부 문서 (pdf 구조 관리자에서 확인)에서 PDF로 표시되지 않는 경우를 제외하고는 정상적으로 작동합니다. 샘플 문서는 다음 위치에 있습니다. https://kali-docs.ks2.fr/share/s/Ut_LdO8LR4WEeEd1y2k58QPDFBox 추가 된 텍스트가 PDF 문서에 나타나지 않습니다.

일부 맞춤형 AlphaConstant를 텍스트 (및 직사각형)로 설정하려고하기 때문에 그래픽 상태 매개 변수 사전을 사용하여 텍스트를 추가하고 있습니다.

코드 사용 :

PDPageContentStream contentStream = new PDPageContentStream(pdfDoc, pdfPage, true, true);     

this.textGraphicState = new PDExtendedGraphicsState(); 
textGraphicState.setNonStrokingAlphaConstant(1f); 
Map<String, PDExtendedGraphicsState> graphicsStatesMap = pdfPage.getResources().getGraphicsStates(); 
if (graphicsStatesMap == null) 
{ 
    graphicsStatesMap = new HashMap<String, PDExtendedGraphicsState>(); 
} 
graphicsStatesMap.put("textGraphicState", textGraphicState); 
pdfPage.getResources().setGraphicsStates(graphicsStatesMap); 
contentStream.appendRawCommands("/textGraphicState gs\n"); 
contentStream.setNonStrokingColor(fontColor); 
contentStream.beginText(); 
contentStream.setFont(font, fontSize); 
contentStream.moveTextPositionByAmount(pagePosX, pagePosY); 
contentStream.drawString(text); 
contentStream.endText(); 
contentStream.close(); 

어떤 생각을? 그래픽 상태를 재설정

감사합니다, 빈센트

+0

답변보기 https://stackoverflow.com/questions/27919436/pdfbox-pdpagecontentstreams-append-mode-misbehaving 및 https://stackoverflow.com/questions/14657602/cannot-figure-out-how-to- pdfbox 사용 –

답변

1

내 문제 (PDPageContentStream 생성자의 다섯 번째 매개 변수)를 해결했다.

PDPageContentStream contentStream = 새 PDPageContentStream (pdfDoc, pdfPage, true, true, true);