Невозможно обновить номер страницы в TO C документа с использованием docx4j - PullRequest
0 голосов
/ 17 марта 2020

При создании оглавления я не могу обновить номер страницы. Это исключение отображается как «Обнаружены неработающие закладки; не настроено для исправления». Я использовал приведенный ниже код для обновления TO C ..

TocGenerator tocGenerator = новый TocGenerator (wordMLPackage);

tocGenerator.generateTo c (0, "TO C \ o \ "1-3 \" \ h \ z \ u ", false);

tocGenerator.updateTo c (false);

1 Ответ

0 голосов
/ 26 марта 2020

Сообщение приходит отсюда:

/**
 * Calculate page numbers
 * 
 * @return
 * @throws TocException
 */
private Map<String, Integer> getPageNumbersMap() throws TocException {

    // @since 6.1, check bookmarks are ok first
    // what to do if not ok?
    // - default behaviour is to fail
    // - but can be configured to remediate:
    boolean remediate = Docx4jProperties.getProperty("docx4j.toc.BookmarksIntegrity.remediate", false);

    // 
    BookmarksIntegrity bm = new BookmarksIntegrity();
    StringWriter sw = new StringWriter();
    bm.setWriter(sw);
    BookmarksStatus result = null;
    try {
        // Checks are performed on all bookmarks, not just those with
        // a name of the form "_Toc*".  We don't check for missing _Toc bookmarks.
        result = bm.check(wordMLPackage.getMainDocumentPart(), remediate);
    } catch (Exception e) { /* won't happen */}
    if (result==BookmarksStatus.BROKEN) {
        throw new TocException("Encountered broken bookmarks; not configured to remediate. \n" + sw.toString());
    }

    if (Docx4J.pdfViaFO()) {
        return getPageNumbersMapViaFOP();
    } else {
        // recommended
        return getPageNumbersMapViaService();
    }
}

Обратите внимание, что, если вы не являетесь уже имеющимся лицензиатом службы PDF Converter Plutext, вы не сможете использовать getPageNumbersMapViaService ().

Возможный альтернативный подход см. В https://www.docx4java.org/blog/2020/03/documents4j-for-toc-update/, основанном на https://www.docx4java.org/blog/2020/03/documents4j-for-pdf-output/

...