2017-02-16 4 views
0

Я использую PDFBox 1.8.10 для добавления текста в документы PDF. Он отлично работает, за исключением некоторых документов, где текст добавляется в документ (проверяется с помощью инспектора структуры 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);

Смежные вопросы