Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import org.apache.poi.util.Units;
- import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
- import org.apache.poi.xwpf.usermodel.Document;
- import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
- import org.apache.poi.xwpf.usermodel.XWPFDocument;
- import org.apache.poi.xwpf.usermodel.XWPFFooter;
- import org.apache.poi.xwpf.usermodel.XWPFHeader;
- import org.apache.poi.xwpf.usermodel.XWPFParagraph;
- import org.apache.poi.xwpf.usermodel.XWPFRun;
- import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;
- import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
- import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
- import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr;
- import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;
- public class PoiTest {
- private static final String IMAGE = "C:\\image.jpg";
- private static final String DEST = "C:\\test.docx";
- public static void main(String[] args) {
- try (InputStream imageStream = new FileInputStream(IMAGE);
- InputStream imageStream2 = new FileInputStream(IMAGE);
- InputStream imageStream3 = new FileInputStream(IMAGE)) {
- XWPFDocument docx = new XWPFDocument();
- CTBody body = docx.getDocument().getBody();
- CTSectPr sectPr = body.getSectPr();
- if (sectPr == null) {
- sectPr = body.addNewSectPr();
- }
- XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(docx, sectPr);
- //write header content
- XWPFHeader header = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
- XWPFParagraph p = header.createParagraph();
- XWPFRun headerRun = p.createRun();
- headerRun.setText("This is header");
- headerRun.addPicture(imageStream, Document.PICTURE_TYPE_JPEG, "testHeader", Units.toEMU(100), Units.toEMU(100));
- //write footer content
- CTP ctpFooter = CTP.Factory.newInstance();
- CTR ctrFooter = ctpFooter.addNewR();
- CTText ctFooter = ctrFooter.addNewT();
- String footerText = "This is footer";
- ctFooter.setStringValue(footerText);
- XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, docx);
- XWPFParagraph[] parsFooter = new XWPFParagraph[1];
- parsFooter[0] = footerParagraph;
- XWPFFooter footer = policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
- XWPFParagraph fp = footer.getParagraphArray(0);
- XWPFRun footerRun = fp.createRun();
- footerRun.addPicture(imageStream2, Document.PICTURE_TYPE_JPEG, "testFooter", Units.toEMU(100), Units.toEMU(100));
- //write body content
- XWPFParagraph bodyParagraph = docx.createParagraph();
- bodyParagraph.setAlignment(ParagraphAlignment.CENTER);
- XWPFRun r = bodyParagraph.createRun();
- r.setBold(true);
- r.setText("This is body content.");
- r.addPicture(imageStream3, Document.PICTURE_TYPE_JPEG, "testBody", Units.toEMU(100), Units.toEMU(100));
- try (FileOutputStream out = new FileOutputStream(DEST)) {
- docx.write(out);
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment