I want to add an image to all pages in document.
This image should be located in the top-right corner of printable area.
I use following function for this purpose.
shape.setRelativeVerticalPosition(RelativeVerticalPosition.MARGIN);
This function adds given image but the image is located in top-corner of document.
I think that adding operation ignores the margins of page. Some part of the image is in non-printable area for document. The printers could not print the image properly because some part of the image is in non-printable area.
Is my usage correct? How can I locate an image in top-right corner of printable area?
private void addAllPageShape2(Bitmap bitmap boolean behindText) throws Exception {
Shape shape = new Shape(document, ShapeType.IMAGE);
shape.getImageData().setImage(bitmap);
shape.setBehindText(behindText);
shape.setRelativeVerticalPosition(RelativeVerticalPosition.MARGIN);
shape.setRelativeHorizontalPosition(RelativeHorizontalPosition.MARGIN);
shape.setVerticalAlignment(VerticalAlignment.TOP);
shape.setHorizontalAlignment(HorizontalAlignment.RIGHT);
Paragraph dataMatrixPara = new Paragraph(document);
dataMatrixPara.appendChild(shape);
for (Section sect : document.getSections()) {
// There could be up to three different headers in each section, since we want
// the watermark to appear on all pages, insert into all headers.
try {
HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_PRIMARY);
header.appendChild(dataMatrixPara.deepClone(true));
HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(HEADER_FIRST);
header.appendChild(dataMatrixPara.deepClone(true));
HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_EVEN);
header.appendChild(dataMatrixPara.deepClone(true));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Hi Ozan,
Thanks for your inquiry. Please use following code example to achieve your requirements. Hope this helps you.
private static void addAllPageShape(Document document, String imagepath, boolean behindText) throws Exception {
Shape shape = new Shape(document, ShapeType.IMAGE);
shape.getImageData().setImage(imagepath);
shape.setBehindText(behindText);
shape.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);
shape.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);
shape.setLeft(document.getFirstSection().getPageSetup().getPageWidth() - shape.getImageData().getImageSize().getWidthPoints());
Paragraph dataMatrixPara = new Paragraph(document);
dataMatrixPara.appendChild(shape);
for (Section sect : document.getSections()) {
try {
HeaderFooter header1 = sect.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
if (header1 == null)
{
// There is no header of the specified type in the current section, create it.
header1 = new HeaderFooter(document, HeaderFooterType.FOOTER_PRIMARY);
sect.getHeadersFooters().add(header1);
}
header1.appendChild(dataMatrixPara.deepClone(true));
HeaderFooter header2 = sect.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_FIRST);
if (header2 == null)
{
header2 = new HeaderFooter(document, HeaderFooterType.HEADER_FIRST);
sect.getHeadersFooters().add(header2);
}
header2.appendChild(dataMatrixPara.deepClone(true));
HeaderFooter header3 = sect.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_EVEN);
if (header3 == null)
{
header3 = new HeaderFooter(document, HeaderFooterType.HEADER_EVEN);
sect.getHeadersFooters().add(header3);
}
header3.appendChild(dataMatrixPara.deepClone(true));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Document doc = new Document(MyDir + "in.docx");
addAllPageShape(doc, MyDir + "in.png", false);
doc.save(MyDir + "Out.docx");
Hi,
I worked. Thanks for help.
But, I changed the example code like this:
shape.setLeft(document.getFirstSection().getPageSetup().getPageWidth()
-shape.getImageData().getImageSize().getWidthPoints()
-document.getFirstSection().getPageSetup().getLeftMargin());
Best regards.
Hi Ozan,
Thanks for your feedback. Please feel free to ask if you have any question about Aspose.Words, we will be happy to help you.