У меня есть PDF с двумя простыми текстами. Один из которых содержит прозрачность. Текстовый объект содержит ссылку на ExtGState, которая имеет значение прозрачности. Как я могу получить это значение?
Есть изображение из инструмента отладки (pdf apache pdfbox):
Я нашел как получить значение прозрачности из ресурса, но я не знаю, как сопоставить его с определенным текстом.
double value = document.getFirstPage()
.getResources()
.getPdfObject()
.getAsDictionary(PdfName.ExtGState)
.getAsDictionary(new PdfName("GS1"))
.getAsNumber(PdfName.ca)
.getValue();
У меня также есть класс, который реализует IEventListener
и получает много различной информации о тексте в PDF.
class TextRenderListener implements IEventListener {
@Override
public void eventOccurred(IEventData data, EventType type) {
if (type.equals(EventType.RENDER_TEXT)) {
TextRenderInfo textRenderInfo = (TextRenderInfo) data;
CanvasGraphicsState canvasGraphicsState = textRenderInfo.getGraphicsState();
...
}
...
}
Но fillAlpha и strokeAlpha всегда == 1.0, и я не могу найти никаких ссылок на Resource ExtGstate
Parser:
new PdfDocumentContentParser(document).processContent(pageNumber, new TextRenderListener);
Pdf: https://filebin.net/34vm4sxl715oxy6z