Я немного смущен тем, что вы спрашиваете.
Я не использовал Apache Fop, но постараюсь ответить на этот вопрос.
Если вы хотите прочитать файл PDF в виде байтового массива, используйте вместо этого входные потоки.
Но если вы хотите использовать ByteArrayOutputStream, который записывает байты, вы в основном ответили на свой вопрос, попробуйте использовать существующий BAOS, который вы создали изначально и используете в FileOutputStream, при условии, что выходной поток байтового массива читает байты через некоторый InputStream или какой-то другой источник. Второе предположение заключается в том, что BAOS и FOS смогли правильно написать PDF-файл, о котором вы говорили.
Вы можете просто сделать:
byte[] b = outStream.toByteArray();
String str = Base64.getEncoder().encodeToString(b);