Я бы не использовал одну библиотеку здесь. Процесс, вряд ли будет протекать без проблемно.
Я бы конвертировал xml в pandas фрейм, методом pd.read_xml() глянул бы на него, может чего подкорректировал, из фрейма уже конвертировал (по этапно) в pdf. Вот в этой статье
https://www.alixaprodev.com/how-to-convert-pandas-... есть рабочий код три способа (один с использованием matplotlib), второй способ он использует конвертацию фрейма в html таблицу и оттуда уже в pdf, и третий там библиотеку он использует.
Так вот я бы использовал способом pandas + matplotlib он даст мне больше всего контроля и свободы, как и в каком виде все это запишется в pdf, то есть я смогу кастомизировать + справится с потенциальными ошибками при записи. Рабочий пример (там фрейм создаетс, а не читается из xml это сделаешь сам pd.read_xml()) есть в статье по ссылке от которого уже можно оттолкнуться.