mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	cleanup
This commit is contained in:
		
							parent
							
								
									b5423f3434
								
							
						
					
					
						commit
						03a8f45128
					
				@ -70,7 +70,7 @@ public class SplitPdfBySectionsController {
 | 
			
		||||
            for (int i = 0; i < splitDocumentsBoas.size(); i++) {
 | 
			
		||||
                ByteArrayOutputStream baos = splitDocumentsBoas.get(i);
 | 
			
		||||
                int sectionNum = (i % (horiz * verti)) + 1;
 | 
			
		||||
                String fileName = filename + "_" + pageNum + "_" + sectionNum +  ".pdf";
 | 
			
		||||
                String fileName = filename + "_" + pageNum + "_" + sectionNum + ".pdf";
 | 
			
		||||
                byte[] pdf = baos.toByteArray();
 | 
			
		||||
                ZipEntry pdfEntry = new ZipEntry(fileName);
 | 
			
		||||
                zipOut.putNextEntry(pdfEntry);
 | 
			
		||||
@ -137,7 +137,4 @@ public class SplitPdfBySectionsController {
 | 
			
		||||
 | 
			
		||||
        return splitDocuments;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,11 @@ package stirling.software.SPDF.controller.api.pipeline;
 | 
			
		||||
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.zip.ZipEntry;
 | 
			
		||||
import java.util.zip.ZipOutputStream;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
@ -82,46 +82,45 @@ public class PipelineController {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Create a ByteArrayOutputStream to hold the zip
 | 
			
		||||
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
 | 
			
		||||
            ZipOutputStream zipOut = new ZipOutputStream(baos);
 | 
			
		||||
 | 
			
		||||
         // Create a ByteArrayOutputStream to hold the zip
 | 
			
		||||
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 | 
			
		||||
         ZipOutputStream zipOut = new ZipOutputStream(baos);
 | 
			
		||||
            // A map to keep track of filenames and their counts
 | 
			
		||||
            Map<String, Integer> filenameCount = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
         // A map to keep track of filenames and their counts
 | 
			
		||||
         Map<String, Integer> filenameCount = new HashMap<>();
 | 
			
		||||
            // Loop through each file and add it to the zip
 | 
			
		||||
            for (Resource file : outputFiles) {
 | 
			
		||||
                String originalFilename = file.getFilename();
 | 
			
		||||
                String filename = originalFilename;
 | 
			
		||||
 | 
			
		||||
         // Loop through each file and add it to the zip
 | 
			
		||||
         for (Resource file : outputFiles) {
 | 
			
		||||
             String originalFilename = file.getFilename();
 | 
			
		||||
             String filename = originalFilename;
 | 
			
		||||
                // Check if the filename already exists, and modify it if necessary
 | 
			
		||||
                if (filenameCount.containsKey(originalFilename)) {
 | 
			
		||||
                    int count = filenameCount.get(originalFilename);
 | 
			
		||||
                    String baseName = originalFilename.replaceAll("\\.[^.]*$", "");
 | 
			
		||||
                    String extension = originalFilename.replaceAll("^.*\\.", "");
 | 
			
		||||
                    filename = baseName + "(" + count + ")." + extension;
 | 
			
		||||
                    filenameCount.put(originalFilename, count + 1);
 | 
			
		||||
                } else {
 | 
			
		||||
                    filenameCount.put(originalFilename, 1);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
             // Check if the filename already exists, and modify it if necessary
 | 
			
		||||
             if (filenameCount.containsKey(originalFilename)) {
 | 
			
		||||
                 int count = filenameCount.get(originalFilename);
 | 
			
		||||
                 String baseName = originalFilename.replaceAll("\\.[^.]*$", "");
 | 
			
		||||
                 String extension = originalFilename.replaceAll("^.*\\.", "");
 | 
			
		||||
                 filename = baseName + "(" + count + ")." + extension;
 | 
			
		||||
                 filenameCount.put(originalFilename, count + 1);
 | 
			
		||||
             } else {
 | 
			
		||||
                 filenameCount.put(originalFilename, 1);
 | 
			
		||||
             }
 | 
			
		||||
                ZipEntry zipEntry = new ZipEntry(filename);
 | 
			
		||||
                zipOut.putNextEntry(zipEntry);
 | 
			
		||||
 | 
			
		||||
             ZipEntry zipEntry = new ZipEntry(filename);
 | 
			
		||||
             zipOut.putNextEntry(zipEntry);
 | 
			
		||||
                // Read the file into a byte array
 | 
			
		||||
                InputStream is = file.getInputStream();
 | 
			
		||||
                byte[] bytes = new byte[(int) file.contentLength()];
 | 
			
		||||
                is.read(bytes);
 | 
			
		||||
 | 
			
		||||
             // Read the file into a byte array
 | 
			
		||||
             InputStream is = file.getInputStream();
 | 
			
		||||
             byte[] bytes = new byte[(int) file.contentLength()];
 | 
			
		||||
             is.read(bytes);
 | 
			
		||||
                // Write the bytes of the file to the zip
 | 
			
		||||
                zipOut.write(bytes, 0, bytes.length);
 | 
			
		||||
                zipOut.closeEntry();
 | 
			
		||||
 | 
			
		||||
             // Write the bytes of the file to the zip
 | 
			
		||||
             zipOut.write(bytes, 0, bytes.length);
 | 
			
		||||
             zipOut.closeEntry();
 | 
			
		||||
                is.close();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
             is.close();
 | 
			
		||||
         }
 | 
			
		||||
 | 
			
		||||
         zipOut.close();
 | 
			
		||||
            zipOut.close();
 | 
			
		||||
 | 
			
		||||
            logger.info("Returning zipped file response...");
 | 
			
		||||
            return WebResponseUtils.boasToWebResponse(
 | 
			
		||||
 | 
			
		||||
@ -223,7 +223,7 @@ public class PipelineProcessor {
 | 
			
		||||
            // If the operation is "auto-rename", generate a new filename.
 | 
			
		||||
            // This is a simple example of generating a filename using current timestamp.
 | 
			
		||||
            // Modify as per your needs.
 | 
			
		||||
        	
 | 
			
		||||
 | 
			
		||||
            newFilename = extractFilename(response);
 | 
			
		||||
        } else {
 | 
			
		||||
            // Otherwise, keep the original filename.
 | 
			
		||||
@ -248,28 +248,27 @@ public class PipelineProcessor {
 | 
			
		||||
        return newOutputFiles;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String extractFilename(ResponseEntity<byte[]> response) {
 | 
			
		||||
        String filename = "default-filename.ext"; // Default filename if not found
 | 
			
		||||
 | 
			
		||||
public String extractFilename(ResponseEntity<byte[]> response) {
 | 
			
		||||
    String filename = "default-filename.ext"; // Default filename if not found
 | 
			
		||||
        HttpHeaders headers = response.getHeaders();
 | 
			
		||||
        String contentDisposition = headers.getFirst(HttpHeaders.CONTENT_DISPOSITION);
 | 
			
		||||
 | 
			
		||||
    HttpHeaders headers = response.getHeaders();
 | 
			
		||||
    String contentDisposition = headers.getFirst(HttpHeaders.CONTENT_DISPOSITION);
 | 
			
		||||
        if (contentDisposition != null && !contentDisposition.isEmpty()) {
 | 
			
		||||
            String[] parts = contentDisposition.split(";");
 | 
			
		||||
            for (String part : parts) {
 | 
			
		||||
                if (part.trim().startsWith("filename")) {
 | 
			
		||||
                    // Extracts filename and removes quotes if present
 | 
			
		||||
                    filename = part.split("=")[1].trim().replace("\"", "");
 | 
			
		||||
                    filename = URLDecoder.decode(filename, StandardCharsets.UTF_8);
 | 
			
		||||
 | 
			
		||||
    if (contentDisposition != null && !contentDisposition.isEmpty()) {
 | 
			
		||||
        String[] parts = contentDisposition.split(";");
 | 
			
		||||
        for (String part : parts) {
 | 
			
		||||
            if (part.trim().startsWith("filename")) {
 | 
			
		||||
                // Extracts filename and removes quotes if present
 | 
			
		||||
                filename = part.split("=")[1].trim().replace("\"", "");
 | 
			
		||||
                filename = URLDecoder.decode(filename, StandardCharsets.UTF_8);
 | 
			
		||||
 | 
			
		||||
                break;
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return filename;
 | 
			
		||||
}
 | 
			
		||||
        return filename;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    List<Resource> generateInputFiles(File[] files) throws Exception {
 | 
			
		||||
        if (files == null || files.length == 0) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user