mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	Merge pull request #549 from sbplat/main
feat: add support for svg+webp images to convert to pdf
This commit is contained in:
		
						commit
						c681f48459
					
				
							
								
								
									
										23
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								build.gradle
									
									
									
									
									
								
							@ -80,12 +80,27 @@ dependencies {
 | 
			
		||||
 | 
			
		||||
    testImplementation 'org.springframework.boot:spring-boot-starter-test:3.1.6'
 | 
			
		||||
 | 
			
		||||
    // Batik
 | 
			
		||||
    implementation 'org.apache.xmlgraphics:batik-all:1.17'
 | 
			
		||||
 | 
			
		||||
    // TwelveMonkeys
 | 
			
		||||
    implementation 'com.twelvemonkeys.imageio:imageio-batik:3.10.1'
 | 
			
		||||
    implementation 'com.twelvemonkeys.imageio:imageio-bmp:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-hdr:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-icns:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-iff:3.10.1'
 | 
			
		||||
    implementation 'com.twelvemonkeys.imageio:imageio-jpeg:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-pcx:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-pict:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-pnm:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-psd:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-sgi:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-tga:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-thumbsdb:3.10.1'
 | 
			
		||||
    implementation 'com.twelvemonkeys.imageio:imageio-tiff:3.10.1'
 | 
			
		||||
    implementation 'com.twelvemonkeys.imageio:imageio-webp:3.10.1'
 | 
			
		||||
    // implementation 'com.twelvemonkeys.imageio:imageio-xwd:3.10.1'
 | 
			
		||||
 | 
			
		||||
    // https://mvnrepository.com/artifact/org.apache.pdfbox/jbig2-imageio
 | 
			
		||||
    implementation group: 'org.apache.pdfbox', name: 'jbig2-imageio', version: '3.0.4'
 | 
			
		||||
    implementation 'com.github.jai-imageio:jai-imageio-core:1.4.0'
 | 
			
		||||
	implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.3.0'
 | 
			
		||||
    implementation 'commons-io:commons-io:2.15.1'
 | 
			
		||||
    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -264,28 +264,10 @@ public class PdfUtils {
 | 
			
		||||
                        addImageToDocument(doc, pdImage, fitOption, autoRotate);
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    File imageFile = Files.createTempFile("image", ".png").toFile();
 | 
			
		||||
                    try (FileOutputStream fos = new FileOutputStream(imageFile); InputStream input = file.getInputStream()) {
 | 
			
		||||
                        byte[] buffer = new byte[1024];
 | 
			
		||||
                        int len;
 | 
			
		||||
                        while ((len = input.read(buffer)) != -1) {
 | 
			
		||||
                            fos.write(buffer, 0, len);
 | 
			
		||||
                        }
 | 
			
		||||
                        BufferedImage image = ImageIO.read(imageFile);
 | 
			
		||||
                        BufferedImage convertedImage = ImageProcessingUtils.convertColorType(image, colorType);
 | 
			
		||||
                        PDImageXObject pdImage;
 | 
			
		||||
                        if (contentType != null && (contentType.equals("image/jpeg"))) {
 | 
			
		||||
                            pdImage = JPEGFactory.createFromImage(doc, convertedImage);
 | 
			
		||||
                        } else {
 | 
			
		||||
                            pdImage = LosslessFactory.createFromImage(doc, convertedImage);
 | 
			
		||||
                        }
 | 
			
		||||
                        addImageToDocument(doc, pdImage, fitOption, autoRotate);
 | 
			
		||||
                    } catch (IOException e) {
 | 
			
		||||
                        logger.error("Error writing image to file: {}", imageFile.getAbsolutePath(), e);
 | 
			
		||||
                        throw e;
 | 
			
		||||
                    } finally {
 | 
			
		||||
                        imageFile.delete();
 | 
			
		||||
                    }
 | 
			
		||||
                    BufferedImage image = ImageIO.read(file.getInputStream());
 | 
			
		||||
                    BufferedImage convertedImage = ImageProcessingUtils.convertColorType(image, colorType);
 | 
			
		||||
                    PDImageXObject pdImage = LosslessFactory.createFromImage(doc, convertedImage);
 | 
			
		||||
                    addImageToDocument(doc, pdImage, fitOption, autoRotate);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user