poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lucifer <info2j...@gmail.com>
Subject Header with image is coming at the body of the document
Date Sun, 21 Dec 2014 05:04:04 GMT
I am trying to create a document with header with image and paragraph as
footer.I am able to create header and also footer with POI, i am using
HeaderFooterPolicy for this purpose.But the problem is that Footer is coming
in proper place but my header with image is coming at the body of the
document.I am posting the  code i am using  for this purpose.


     public class CreateWordDoc {

	public static void main (String[] args) throws Exception {
		
		
		//XWPFDocument document = new XWPFDocument();
		CustomXWPFDocument document = new CustomXWPFDocument(new
FileInputStream(new File("D:\\test.docx")));
		CTP ctp = CTP.Factory.newInstance();
		CTR ctr = ctp.addNewR();
		CTRPr rpr = ctr.addNewRPr();
		CTText textt = ctr.addNewT();
		textt.setStringValue( " Client Service
Contact:Tomas.Layrisse@mshgroupconsulting.com" );
		XWPFParagraph codePara = new XWPFParagraph( ctp, document );
		XWPFParagraph imagePara = new XWPFParagraph(ctp, document);
		
		XWPFParagraph[] newparagraphs = new XWPFParagraph[1];
		newparagraphs[0] = codePara;
		XWPFParagraph[] imaheparagraphs = new XWPFParagraph[1];
		imaheparagraphs[0]=imagePara;
		String blipId = document.addPictureData(new FileInputStream(new
File("D:\\msh.jpg")), Document.PICTURE_TYPE_JPEG);
		CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
		XWPFHeaderFooterPolicy headerFooterPolicy = new  XWPFHeaderFooterPolicy(
document, sectPr );
		
	
document.createPicture(blipId,document.getNextPicNameNumber(Document.PICTURE_TYPE_JPEG),
400, 129);
		
		
		headerFooterPolicy.createHeader( STHdrFtr.FIRST,imaheparagraphs);
		//headerFooterPolicy.createFooter( STHdrFtr.DEFAULT, newparagraphs );
		FileOutputStream out = new FileOutputStream("D:\\test.docx");
		document.write(out);
		System.out.println("Doc Created");
		
			
	}
}



public class CustomXWPFDocument extends XWPFDocument
{
    public CustomXWPFDocument(FileInputStream in) throws IOException
    {
        super(in);
    }

    public void createPicture(String blipId,int id, int width, int height)
    {
        final int EMU = 9525;
        width *= EMU;
        height *= EMU;
        //String blipId =
getAllPictures().get(id).getPackageRelationship().getId();


        CTInline inline =
createParagraph().createRun().getCTR().addNewDrawing().addNewInline();

        String picXml = "" +
                "<a:graphic
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">" +
                "   <a:graphicData
uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">" +
                "      <pic:pic
xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">" +
                "         <pic:nvPicPr>" +
                "            <pic:cNvPr id=\&quot;&quot; + id +
&quot;\&quot; name=\&quot;Generated\&quot;/>" +
                "            <pic:cNvPicPr/>" +
                "         </pic:nvPicPr>" +
                "         <pic:blipFill>" +
                "            <a:blip r:embed=\&quot;&quot; + blipId +
&quot;\&quot;
xmlns:r=\&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships\&quot;/>"
+
                "            <a:stretch>" +
                "               <a:fillRect/>" +
                "            </a:stretch>" +
                "         </pic:blipFill>" +
                "         <pic:spPr>" +
                "            <a:xfrm>" +
                "               <a:off x=\"0\" y=\"0\"/>" +
                "               <a:ext cx=\&quot;&quot; + width +
&quot;\&quot; cy=\&quot;&quot; + height + &quot;\&quot;/>" +
                "            </a:xfrm>" +
                "            <a:prstGeom prst=\"rect\">" +
                "               <a:avLst/>" +
                "            </a:prstGeom>" +
                "         </pic:spPr>" +
                "      </pic:pic>" +
                "   </a:graphicData>" +
                "</a:graphic>";

        //CTGraphicalObjectData graphicData =
inline.addNewGraphic().addNewGraphicData();
        XmlToken xmlToken = null;
        try
        {
            xmlToken = XmlToken.Factory.parse(picXml);
        }
        catch(XmlException xe)
        {
            xe.printStackTrace();
        }
        inline.set(xmlToken);
        //graphicData.set(xmlToken);

        inline.setDistT(0);
        inline.setDistB(0);
        inline.setDistL(0);
        inline.setDistR(0);

        CTPositiveSize2D extent = inline.addNewExtent();
        extent.setCx(width);
        extent.setCy(height);

        CTNonVisualDrawingProps docPr = inline.addNewDocPr();
        docPr.setId(id);
        docPr.setName("Picture " + id);
        docPr.setDescr("Generated");
    }
}

<http://apache-poi.1045710.n5.nabble.com/file/n5717440/screen.png> 



--
View this message in context: http://apache-poi.1045710.n5.nabble.com/Header-with-image-is-coming-at-the-body-of-the-document-tp5717440.html
Sent from the POI - Dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


Mime
View raw message