Самый лучший выход - это обходиться вообще без djvused. Поначалу я так и планировал сделать. Я почитал спецификацию djvu, и оказалось, что структура формата довольно проста и прозрачна (в отличие, скажем, от pdf): нужно лишь вставить блок, отвечающий за оглавление (или, скажем, OCR-слой, в случае программы DjVuOCR), причем выровнять его по четной границе в файле, перед этим сдвинув вправо все остальные блоки, отвечающие за страницы. И подредактировать самый первый блок, указав в нем новые смещения всех блоков-страниц в файле. Ну и также в заголовке файла прописать новый размер всего файла.
Проблема лишь в одном: все блоки с текстовой информацией типа оглавления, аннотаций, OCR-слоя сжимаются архиватором bzz. Нужно из исходников DjVuLibre вычленить кусок кода этого архиватора. Я начал было разбираться, но обнаружил, что там все модули сильно взаимосвязаны между собой, и чтоб вычленить этот код, нужно потратить, наверно, столько же времени, как на написание всей программы. Может быть, попросить Леона, чтоб он вычленил этот кусок кода, этого архиватора, и оформил в виде полностью независимой программы или функции? Или же самому как-то попробовать разобраться с этим.