feat: add support for svg+webp images to convert to pdf
This commit is contained in:
parent
909c9ed4d9
commit
1efefcfcb8
2 changed files with 23 additions and 26 deletions
23
build.gradle
23
build.gradle
|
@ -80,12 +80,27 @@ dependencies {
|
||||||
|
|
||||||
testImplementation 'org.springframework.boot:spring-boot-starter-test:3.1.6'
|
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 'commons-io:commons-io:2.15.1'
|
||||||
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
|
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
|
||||||
|
|
||||||
|
|
|
@ -264,28 +264,10 @@ public class PdfUtils {
|
||||||
addImageToDocument(doc, pdImage, fitOption, autoRotate);
|
addImageToDocument(doc, pdImage, fitOption, autoRotate);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
File imageFile = Files.createTempFile("image", ".png").toFile();
|
BufferedImage image = ImageIO.read(file.getInputStream());
|
||||||
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);
|
BufferedImage convertedImage = ImageProcessingUtils.convertColorType(image, colorType);
|
||||||
PDImageXObject pdImage;
|
PDImageXObject pdImage = LosslessFactory.createFromImage(doc, convertedImage);
|
||||||
if (contentType != null && (contentType.equals("image/jpeg"))) {
|
|
||||||
pdImage = JPEGFactory.createFromImage(doc, convertedImage);
|
|
||||||
} else {
|
|
||||||
pdImage = LosslessFactory.createFromImage(doc, convertedImage);
|
|
||||||
}
|
|
||||||
addImageToDocument(doc, pdImage, fitOption, autoRotate);
|
addImageToDocument(doc, pdImage, fitOption, autoRotate);
|
||||||
} catch (IOException e) {
|
|
||||||
logger.error("Error writing image to file: {}", imageFile.getAbsolutePath(), e);
|
|
||||||
throw e;
|
|
||||||
} finally {
|
|
||||||
imageFile.delete();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||||
|
|
Loading…
Reference in a new issue