public Element getElement() { if ( chunk == null ) { float offsetX = x != null ? x : 0.0f; // negate offsetY because open office and iText vertical coordinates // are interpreted differently // in open office negative offset means "move up" // but in iText it means "move down" float offsetY = y != null ? -y : 0.0f; // iText image workaround // iText cannot draw an image higher than current vertical position // we create special image with y coordinate offset // this offset will be used while drawing by ExtendedPdfContentByte ExtendedImage extImg = new ExtendedImage( image, offsetY ); // if run-through set line height to zero // so subsequent text will run through the image, not below chunk = new Chunk( extImg, offsetX, runThrough ? -image.getScaledHeight() : 0.0f ); } return chunk; }
@Override public void addImage( Image image, double a, double b, double c, double d, double e, double f, boolean inlineImage, boolean isMCBlockOpened ) throws DocumentException { if ( image instanceof ExtendedImage ) { ExtendedImage extImg = (ExtendedImage) image; super.addImage( extImg.getImage(), a, b, c, d, e, f + extImg.getOffsetY(), inlineImage, isMCBlockOpened ); } else { super.addImage( image, a, b, c, d, e, f, inlineImage, isMCBlockOpened ); } } }
ExtendedImage extImg = new ExtendedImage(img, -offsetY); chunkOffsetY = -extImg.getScaledHeight();
ExtendedImage extImg = new ExtendedImage( img, -offsetY ); chunkOffsetY = -extImg.getScaledHeight();
ExtendedImage extImg = new ExtendedImage( img, -offsetY ); chunkOffsetY = -extImg.getScaledHeight();
@Override public void addImage( Image image, float a, float b, float c, float d, float e, float f, boolean inlineImage ) throws DocumentException { if ( image instanceof ExtendedImage ) { ExtendedImage extImg = (ExtendedImage) image; super.addImage( extImg.getImage(), a, b, c, d, e, f + extImg.getOffsetY(), inlineImage ); } else { super.addImage( image, a, b, c, d, e, f, inlineImage ); } } }
public Element getElement() { if ( chunk == null ) { float offsetX = x != null ? x : 0.0f; // negate offsetY because open office and iText vertical coordinates // are interpreted differently // in open office negative offset means "move up" // but in iText it means "move down" float offsetY = y != null ? -y : 0.0f; // iText image workaround // iText cannot draw an image higher than current vertical position // we create special image with y coordinate offset // this offset will be used while drawing by ExtendedPdfContentByte ExtendedImage extImg = new ExtendedImage( image, offsetY ); // if run-through set line height to zero // so subsequent text will run through the image, not below chunk = new Chunk( extImg, offsetX, runThrough ? -image.getScaledHeight() : 0.0f ); } return chunk; }
ExtendedImage extImg = new ExtendedImage(img, -offsetY); chunkOffsetY = -extImg.getScaledHeight();
@Override public void addImage( Image image, float a, float b, float c, float d, float e, float f, boolean inlineImage ) throws DocumentException { if ( image instanceof ExtendedImage ) { ExtendedImage extImg = (ExtendedImage) image; super.addImage( extImg.getImage(), a, b, c, d, e, f + extImg.getOffsetY(), inlineImage ); } else { super.addImage( image, a, b, c, d, e, f, inlineImage ); } } }