1、Aspose组件下载
Aspose下载地址:https://products.aspose.com/words/java
破解版下载地址:https://download.csdn.net/download/ahgaoyong/9615854
官方文档地址:https://docs.aspose.com/display/wordsjava/Home
官方Demo代码:Words-for-Java" rel="nofollow">https://github.com/aspose-words/Aspose.Words-for-Java
2、多张图片转成pdf
1) 验证license
/** * 获取license * * @return */ public static boolean getLicense() { boolean result = false; try { InputStream is = Test.class.getClassLoader().getResourceAsStream("\\license.xml"); License aposeLic = new License(); aposeLic.setLicense(is); result = true; } catch (Exception e) { e.printStackTrace(); } return result; }
2) 多图片转成pdf
public static void convertImageToPdf(ArrayListinputImgPaths, String outputFileName) throws Exception{ // 验证License if (!getLicense()) { return; }Document doc = new Document();DocumentBuilder builder = new DocumentBuilder(doc);try{for (int i = 0; i < inputImgPaths.size(); i++){if (i != 0)builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);File file = new File(inputImgPaths.get(i));// 本地图片BufferedImage image = (BufferedImage) ImageIO.read(file);double maxPageHeight = 1584;double maxPageWidth = 1584;double currentImageHeight = ConvertUtil.pixelToPoint(image.getHeight());double currentImageWidth = ConvertUtil.pixelToPoint(image.getWidth());if (currentImageWidth >= maxPageWidth || currentImageHeight >= maxPageHeight){double[] size = CalculateImageSize(image, maxPageHeight, maxPageWidth, currentImageHeight,currentImageWidth);currentImageWidth = size[0];currentImageHeight = size[1];}PageSetup ps = builder.getPageSetup();ps.setPageWidth(currentImageWidth);ps.setPageHeight(currentImageHeight);Shape shape = builder.insertImage(image,RelativeHorizontalPosition.PAGE,0,RelativeVerticalPosition.PAGE,0,ps.getPageWidth(),ps.getPageHeight(),WrapType.NONE);}}finally {}// Save the document to PDF.doc.save(outputFileName);}
// 等比计算图片尺寸public static double[] CalculateImageSize(BufferedImage img, double containerHeight, double containerWidth,double targetHeight, double targetWidth) throws Exception {// Calculate width and heighttargetHeight = containerHeight;targetWidth = containerWidth;// Get size of an imagedouble imgHeight = ConvertUtil.pixelToPoint(img.getHeight());double imgWidth = ConvertUtil.pixelToPoint(img.getWidth());if (imgHeight < targetHeight && imgWidth < targetWidth){targetHeight = imgHeight;targetWidth = imgWidth;}else{// 计算文档中图像的大小double ratioWidth = imgWidth / targetWidth;double ratioHeight = imgHeight / targetHeight;if (ratioWidth > ratioHeight)targetHeight = (targetHeight * (ratioHeight / ratioWidth));elsetargetWidth = (targetWidth * (ratioWidth / ratioHeight));}double[] size = new double[2];size[0] = targetWidth; // widthsize[1] = targetHeight; // heightreturn (size);}
相关文档:
java aspose.cells Excel(.xls,.xlsx)文件转成csv文件和html文件
java利用aspose组件将word转成pdf 中文乱码问题