From 9857db0dae9c354cb8e4c4a4cafbf90eea1594e7 Mon Sep 17 00:00:00 2001 From: bsayan2 Date: Mon, 2 Feb 2026 12:27:31 +0530 Subject: [PATCH] MNT-25047 improved pdfimage for grayscale tiff images --- .../misc/transformers/ImageToPdfTransformer.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/engines/misc/src/main/java/org/alfresco/transform/misc/transformers/ImageToPdfTransformer.java b/engines/misc/src/main/java/org/alfresco/transform/misc/transformers/ImageToPdfTransformer.java index 0f346803..2f2b67b7 100644 --- a/engines/misc/src/main/java/org/alfresco/transform/misc/transformers/ImageToPdfTransformer.java +++ b/engines/misc/src/main/java/org/alfresco/transform/misc/transformers/ImageToPdfTransformer.java @@ -34,6 +34,7 @@ import static org.alfresco.transform.common.RequestParamMap.PDF_FORMAT; import static org.alfresco.transform.common.RequestParamMap.PDF_ORIENTATION; import static org.alfresco.transform.common.RequestParamMap.START_PAGE; +import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -160,7 +161,17 @@ public class ImageToPdfTransformer implements CustomTransformerFileAdaptor private void scaleAndDrawImage(final PDDocument pdfDocument, final BufferedImage bufferedImage, final String pdfFormat, final String pdfOrientation, final Map resolution) throws IOException { - final PDImageXObject image = LosslessFactory.createFromImage(pdfDocument, bufferedImage); + + BufferedImage improvedImage = null; + if (BufferedImage.TYPE_BYTE_GRAY == bufferedImage.getType()) + { + improvedImage = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB); + Graphics2D graphics = improvedImage.createGraphics(); + graphics.drawImage(bufferedImage, 0, 0, null); + graphics.dispose(); + } + + PDImageXObject image = LosslessFactory.createFromImage(pdfDocument, improvedImage != null ? improvedImage : bufferedImage); int imageWidth = image.getWidth(); int imageHeight = image.getHeight();