所需依赖
< dependency> < groupId> com.itextpdf</ groupId> < artifactId> itext-core</ artifactId> < version> 9.0.0</ version> < type> pom</ type>
</ dependency>
源码
public class PdfUtils { public static byte [ ] embedImage ( byte [ ] pdfBytes, byte [ ] imageBytes, float width, float height, float x, float y, int pageNumber) { try ( ByteArrayOutputStream baos = new ByteArrayOutputStream ( ) ) { PdfDocument pdfDoc = new PdfDocument ( new PdfReader ( new ByteArrayInputStream ( pdfBytes) ) , new PdfWriter ( baos) ) ; int numberOfPages = pdfDoc. getNumberOfPages ( ) ; if ( pageNumber < 1 || pageNumber > numberOfPages) { log. error ( "指定的页码 {} 无效,文档总页数为 {}" , pageNumber, numberOfPages) ; return null ; } ImageData imageData = ImageDataFactory . create ( imageBytes) ; Image image = new Image ( imageData) ; image. scaleToFit ( width, height) ; image. setFixedPosition ( pageNumber, x, y) ; Document document = new Document ( pdfDoc) ; document. add ( image) ; document. close ( ) ; return baos. toByteArray ( ) ; } catch ( Exception e) { throw new ServiceException ( 0 , "PDF处理失败" ) ; } }
}