Автоформат Word с Apache-POI - PullRequest
       10

Автоформат Word с Apache-POI

0 голосов
/ 21 сентября 2018

Я хотел бы использовать функцию автоформатирования слова с Apache-POI в XWPFDocument.

Под автоформатом я подразумеваю, если вы наберете, например, «---» и нажмете return, горизонтальная линиянарисован на странице документа word.

Я хотел бы использовать это в заголовке.

Я пытался

XWPFHeader header = doc.createHeader(HeaderFooterType.FIRST);
paragraph = header.createParagraph();
paragraph.setAlignment(ParagraphAlignment.LEFT);
run = paragraph.createRun();
run.setText("---\r");

или

run.setText("---\r\n");

или

run.setText("---");
run.addCarriageReturn();

Ничего из этого не работает.

Возможно ли даже использовать функцию автоформатирования с POI?

С уважением, Maik

Я использую POI 4.0.0, кстати ...

1 Ответ

0 голосов
/ 21 сентября 2018

Автоформат является функцией графического интерфейса Word.Но apache poi создает то, что хранится в файле *.docx.После замены автоформатом «---» Введите нижней границей абзаца, в файле сохраняется только эта нижняя граница абзаца.

Итак:

import java.io.*;

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.wp.usermodel.HeaderFooterType;

public class CreateWordHeader {

 public static void main(String[] args) throws Exception {

  XWPFDocument doc = new XWPFDocument();

  // the body content
  XWPFParagraph paragraph = doc.createParagraph();
  XWPFRun run = paragraph.createRun();  
  run.setText("The Body...");

  // create header
  XWPFHeader header = doc.createHeader(HeaderFooterType.FIRST);
  paragraph = header.createParagraph();
  paragraph.setAlignment(ParagraphAlignment.LEFT);
  run = paragraph.createRun();
  run.setText("First Line in Header...");

  // bottom border line of the paragraph = what Autoformat creates after "---"[Enter]
  paragraph.setBorderBottom(Borders.SINGLE);

  paragraph = header.createParagraph();
  paragraph.setAlignment(ParagraphAlignment.LEFT);
  run = paragraph.createRun();
  run.setText("Next Line in Header...");

  FileOutputStream out = new FileOutputStream("CreateWordHeader.docx");
  doc.write(out);
  doc.close();
  out.close();


 }
}
...