Вы сначала рисуете текст
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.newLineAtOffset(260, 240);
contentStream.showText("Connect with Us:");
contentStream.endText();
и затем заполните прямоугольник ...
contentStream.setNonStrokingColor(235,235,235);
contentStream.addRect(50, 200, 500, 100);
contentStream.fill();
Ну, что происходит? Ваш прямоугольник покрывает текст!
Чтобы это исправить, просто сделайте это наоборот, сначала нарисуйте прямоугольник, сбросьте цвет без штрихов, затем напишите на нем.
contentStream.setNonStrokingColor(235,235,235);
contentStream.addRect(50, 200, 500, 100);
contentStream.fill();
contentStream.setNonStrokingColor(0,0,0);
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.newLineAtOffset(260, 240);
contentStream.showText("Connect with Us:");
contentStream.endText();