|
|
|
@@ -8,6 +8,8 @@ import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import javax.imageio.ImageIO; |
|
|
|
import javax.imageio.ImageWriteParam; |
|
|
|
import javax.imageio.ImageWriter; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.io.ByteArrayOutputStream; |
|
|
|
@@ -18,6 +20,7 @@ import java.nio.file.Files; |
|
|
|
import java.nio.file.Path; |
|
|
|
import java.nio.file.Paths; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Iterator; |
|
|
|
import java.util.List; |
|
|
|
import java.util.zip.ZipEntry; |
|
|
|
import java.util.zip.ZipOutputStream; |
|
|
|
@@ -70,8 +73,11 @@ public class PdfToImageUtil { |
|
|
|
BufferedImage image = pdfRenderer.renderImageWithDPI(pageIdx, 300); // Set the DPI as needed |
|
|
|
|
|
|
|
// 保存图像到本地临时目录 |
|
|
|
String imageName = "page_" + (pageIdx + 1) + ".png"; |
|
|
|
File imageFile = saveImageToFile(image, imageName); |
|
|
|
/*String imageName = "page_" + (pageIdx + 1) + ".png"; |
|
|
|
File imageFile = saveImageToFile(image, imageName);*/ |
|
|
|
String imageName = "page_" + (pageIdx + 1) + ".jpg"; |
|
|
|
File imageFile = saveCompressedImage(image, imageName, 0.8f); |
|
|
|
|
|
|
|
imageFiles.add(imageFile); |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -131,6 +137,26 @@ public class PdfToImageUtil { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static File saveCompressedImage(BufferedImage image, String imageName, float compressionQuality) throws IOException { |
|
|
|
File tempDir = new File(TEMP_DIR); |
|
|
|
if (!tempDir.exists()) { |
|
|
|
tempDir.mkdirs(); |
|
|
|
} |
|
|
|
|
|
|
|
File imageFile = new File(tempDir, imageName); |
|
|
|
|
|
|
|
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg"); |
|
|
|
ImageWriter writer = writers.next(); |
|
|
|
|
|
|
|
ImageWriteParam param = writer.getDefaultWriteParam(); |
|
|
|
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); |
|
|
|
param.setCompressionQuality(compressionQuality); |
|
|
|
|
|
|
|
ImageIO.write(image, "jpg", imageFile); |
|
|
|
|
|
|
|
return imageFile; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|