Eu posso ler ou escrever documentos do Word em Java usandoApache POI ou docx4j. Mas não consigo encontrar nenhuma referência para criar ou atualizar o sumário em um arquivo do Word. Existe alguma outra API que suporte TOC em Java? Ou, é possível no Apache POI ou no docx4j ter opções para criar ou atualizar o TOC?
Respostas:
1 para resposta № 1Há um caminho mais limpo para isso também. Você só precisa abrir um docx vazio que funcionará como um modelo. Adicione algum texto de exemplo nele com o estilo que você deseja incluir e, em seguida, esse trecho de código funcionará.
XWPFDocument document = new XWPFDocument(new FileInputStream("template.docx");
paragraph = document.createParagraph();
lastParagraph.setStyle("Heading1");
1 para resposta № 2
Para criar um índice com o apache poi, você pode simplesmente usar:
doc.createTOC();
Mas parece um pouco buggy. O TOC é criado, mas o (MS Office pro 2010) não parece reconhecê-lo como TOC e as referências não estão funcionando.
Ou você pode ligar:
doc.enforceUpdateFields();
Isso criará um pop-up no documento do Word com: "Este documento contém campos que podem se referir a outros arquivos. Deseja atualizar os campos neste documento?", O que parece um pouco desonesto se você estiver abrindo um novo documento :)