Вот минимальный пример, воспроизводящий проблему:
Код: Выделить всё
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.XWPFAbstractFootnoteEndnote;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFHyperlinkRun;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRelation;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHyperlink;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
public class Test {
public static void main(String[] argv) throws Exception {
XWPFDocument document = new XWPFDocument();
XWPFParagraph para = document.createParagraph();
XWPFRun tmpRun = para.createRun();
tmpRun.setText("LALALALAALALAAAA");
XWPFAbstractFootnoteEndnote note = para.getDocument().createFootnote();
XWPFParagraph ipara = note.createParagraph();
XWPFRun irun = ipara.createRun();
irun.setText("In the footnote");
String href = "https://www.garshol.priv.no";
CTHyperlink hyperlink = ipara.getCTP().addNewHyperlink();
String rId = ipara.getDocument().getPackagePart().addExternalRelationship(href, XWPFRelation.HYPERLINK.getRelation()).getId();
hyperlink.setId(rId);
XWPFHyperlinkRun hyperlinkRun = new XWPFHyperlinkRun(
hyperlink, CTR.Factory.newInstance(), ipara);
CTR run = hyperlink.addNewR();
run.addNewT().setStringValue("And here is a link");
ipara.addRun(hyperlinkRun);
para.addFootnoteReference(note);
document.write(new FileOutputStream(new File("fuck.docx")));
document.close();
}
}
Код: Выделить всё
Большой вопрос: почему Apache POI не добавляет этот файл? Что я могу сделать, чтобы он добавил файл с правильным содержимым? (Я пробовал Apache POI 5.2.5 и 5.5.1, результат тот же.)
Подробнее здесь: https://stackoverflow.com/questions/798 ... apache-poi
Мобильная версия