PCL - это язык управления принтером. Другими словами, командные байты вы отправляете на принтер (обычно HP), который затем преобразуется в чернила на странице. Обычно это не тот способ, которым вы генерируете PDF, так как слишком много информации из оригинала будет потеряно.
Обычно вы захотите преобразовать ваш XML-файл во что-то, описывающее фактический отпечаток, который вы хотите получить. Разумным выбором для этого является XML-диалект XSL-FO, который, однако, не очень приятно делать вручную. Затем вы можете преобразовать XML в DocBook XML, который, в свою очередь, имеет очень хорошие таблицы стилей для дальнейшего преобразования в XSL-FO и другие форматы.
Затем вы можете использовать Apache FOP для преобразования XSL-FO во многие форматы, одним из которых является PDF. Это позволяет вам - если FOP становится слишком маленьким - заменить на один из нескольких коммерческих механизмов рендеринга XSL_FO позднее.