Как сказал Кристиан в своем комментарии, проблема в том, что система координат для метода fillRect () и система для PDFTextStripperByArea различаются.
В первом ожидается, что источник - это левый нижний уголстраницы, в то время как второй ожидает, что он будет в верхнем левом углу.
Итак, чтобы заставить его работать, измените область, заданную для PDFTextStripperByArea, на:
Rectangle2D.Float region = new Rectangle2D.Float(x, ph - y - height, width, height);
, где ph этовысота страницы:
float ph = page.getMediaBox().getUpperRightY();
PS: Я знаю, что это очень старый вопрос, но Google привел меня сюда, когда я столкнулся с той же проблемой, поэтому я добавлю свой ответ.