mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	fix: use the same margins for x and y in the stamp feature
This commit is contained in:
		
							parent
							
								
									c7005bc07f
								
							
						
					
					
						commit
						4af58118c9
					
				@ -1,12 +1,13 @@
 | 
			
		||||
package stirling.software.SPDF;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.SystemCommand;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.net.InetSocketAddress;
 | 
			
		||||
import java.net.Socket;
 | 
			
		||||
import java.util.concurrent.ExecutorService;
 | 
			
		||||
import java.util.concurrent.Executors;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.SystemCommand;
 | 
			
		||||
 | 
			
		||||
public class LibreOfficeListener {
 | 
			
		||||
 | 
			
		||||
    private static final long ACTIVITY_TIMEOUT = 20 * 60 * 1000; // 20 minutes
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.SystemCommand;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Paths;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
@ -11,6 +10,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 | 
			
		||||
import org.springframework.core.env.Environment;
 | 
			
		||||
import org.springframework.scheduling.annotation.EnableScheduling;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.SystemCommand;
 | 
			
		||||
 | 
			
		||||
import jakarta.annotation.PostConstruct;
 | 
			
		||||
import stirling.software.SPDF.config.ConfigInitializer;
 | 
			
		||||
import stirling.software.SPDF.utils.GeneralUtils;
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
@ -22,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -137,6 +137,7 @@ public class MultiPageLayoutController {
 | 
			
		||||
        byte[] result = baos.toByteArray();
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                result,
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_layoutChanged.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_layoutChanged.pdf");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
@ -21,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -77,7 +77,8 @@ public class PdfOverlayController {
 | 
			
		||||
                overlay.overlay(overlayGuide).save(outputStream);
 | 
			
		||||
                byte[] data = outputStream.toByteArray();
 | 
			
		||||
                String outputFilename =
 | 
			
		||||
                        Filenames.toSimpleFileName(baseFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        Filenames.toSimpleFileName(baseFile.getOriginalFilename())
 | 
			
		||||
                                        .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                                + "_overlayed.pdf"; // Remove file extension and append .pdf
 | 
			
		||||
 | 
			
		||||
                return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@ -17,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -58,7 +58,9 @@ public class RearrangePagesPDFController {
 | 
			
		||||
        }
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_removed_pages.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_removed_pages.pdf");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Integer> removeFirst(int totalPages) {
 | 
			
		||||
@ -212,7 +214,8 @@ public class RearrangePagesPDFController {
 | 
			
		||||
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                    document,
 | 
			
		||||
                    Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                    Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                    .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                            + "_rearranged.pdf");
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            logger.error("Failed rearranging documents", e);
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
import org.apache.pdfbox.Loader;
 | 
			
		||||
@ -16,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -50,6 +50,8 @@ public class RotationController {
 | 
			
		||||
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_rotated.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_rotated.pdf");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -23,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -113,6 +113,7 @@ public class ScalePagesController {
 | 
			
		||||
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                baos.toByteArray(),
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_scaled.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_scaled.pdf");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
@ -24,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -84,7 +84,9 @@ public class SplitPDFController {
 | 
			
		||||
 | 
			
		||||
        Path zipFile = Files.createTempFile("split_documents", ".zip");
 | 
			
		||||
 | 
			
		||||
        String filename = Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) {
 | 
			
		||||
            // loop through the split documents and write them to the zip file
 | 
			
		||||
            for (int i = 0; i < splitDocumentsBoas.size(); i++) {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
@ -27,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -65,7 +65,9 @@ public class SplitPdfBySectionsController {
 | 
			
		||||
        sourceDocument.close();
 | 
			
		||||
 | 
			
		||||
        Path zipFile = Files.createTempFile("split_documents", ".zip");
 | 
			
		||||
        String filename = Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        byte[] data;
 | 
			
		||||
 | 
			
		||||
        try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
@ -21,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -121,7 +121,9 @@ public class SplitPdfBySizeController {
 | 
			
		||||
        sourceDocument.close();
 | 
			
		||||
 | 
			
		||||
        Path zipFile = Files.createTempFile("split_documents", ".zip");
 | 
			
		||||
        String filename = Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        byte[] data;
 | 
			
		||||
 | 
			
		||||
        try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Qualifier;
 | 
			
		||||
import org.springframework.http.ResponseEntity;
 | 
			
		||||
@ -10,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Qualifier;
 | 
			
		||||
import org.springframework.http.ResponseEntity;
 | 
			
		||||
@ -10,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.net.URLConnection;
 | 
			
		||||
 | 
			
		||||
@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -57,7 +57,9 @@ public class ConvertImgPDFController {
 | 
			
		||||
        // returns bytes for image
 | 
			
		||||
        boolean singleImage = "single".equals(singleOrMultiple);
 | 
			
		||||
        byte[] result = null;
 | 
			
		||||
        String filename = Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        try {
 | 
			
		||||
            result =
 | 
			
		||||
                    PdfUtils.convertFromPdf(
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@ -20,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
@ -17,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -90,7 +90,8 @@ public class ConvertOfficeController {
 | 
			
		||||
        byte[] pdfByteArray = convertToPdf(inputFile);
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                pdfByteArray,
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_convertedToPDF.pdf");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
@ -16,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -93,7 +93,8 @@ public class ConvertPDFToBookController {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        String outputFilename =
 | 
			
		||||
                Filenames.toSimpleFileName(fileInput.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                Filenames.toSimpleFileName(fileInput.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "."
 | 
			
		||||
                        + outputFormat; // Remove file extension and append .pdf
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.converters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
@ -13,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -64,7 +64,9 @@ public class ConvertPDFToPDFA {
 | 
			
		||||
 | 
			
		||||
        // Return the optimized PDF as a response
 | 
			
		||||
        String outputFilename =
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_PDFA.pdf";
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_PDFA.pdf";
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(pdfBytes, outputFilename);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.filters;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
import org.apache.pdfbox.Loader;
 | 
			
		||||
@ -14,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Comparator;
 | 
			
		||||
@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -134,7 +134,8 @@ public class AutoRenameController {
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(document, header + ".pdf");
 | 
			
		||||
        } else {
 | 
			
		||||
            logger.info("File has no good title to be found");
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(document, Filenames.toSimpleFileName(file.getOriginalFilename()));
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                    document, Filenames.toSimpleFileName(file.getOriginalFilename()));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.awt.image.DataBufferByte;
 | 
			
		||||
import java.awt.image.DataBufferInt;
 | 
			
		||||
@ -32,6 +31,7 @@ import com.google.zxing.PlanarYUVLuminanceSource;
 | 
			
		||||
import com.google.zxing.Result;
 | 
			
		||||
import com.google.zxing.common.HybridBinarizer;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -98,7 +98,9 @@ public class AutoSplitPdfController {
 | 
			
		||||
        document.close();
 | 
			
		||||
 | 
			
		||||
        Path zipFile = Files.createTempFile("split_documents", ".zip");
 | 
			
		||||
        String filename = Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        byte[] data;
 | 
			
		||||
 | 
			
		||||
        try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
@ -28,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -132,7 +132,8 @@ public class BlankPageController {
 | 
			
		||||
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                    document,
 | 
			
		||||
                    Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                    Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                    .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                            + "_blanksRemoved.pdf");
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Image;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.io.ByteArrayInputStream;
 | 
			
		||||
@ -30,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -265,7 +265,9 @@ public class CompressController {
 | 
			
		||||
 | 
			
		||||
        // Return the optimized PDF as a response
 | 
			
		||||
        String outputFilename =
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_Optimized.pdf";
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_Optimized.pdf";
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(pdfBytes, outputFilename);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Graphics2D;
 | 
			
		||||
import java.awt.Image;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
@ -30,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -67,7 +67,9 @@ public class ExtractImagesController {
 | 
			
		||||
        zos.setLevel(Deflater.BEST_COMPRESSION);
 | 
			
		||||
 | 
			
		||||
        int imageIndex = 1;
 | 
			
		||||
        String filename = Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        int pageNum = 0;
 | 
			
		||||
        Set<Integer> processedImages = new HashSet<>();
 | 
			
		||||
        // Iterate over each page
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.awt.geom.AffineTransform;
 | 
			
		||||
import java.awt.image.AffineTransformOp;
 | 
			
		||||
@ -34,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Hidden;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
@ -142,7 +142,9 @@ public class FakeScanControllerWIP {
 | 
			
		||||
 | 
			
		||||
        // Return the optimized PDF as a response
 | 
			
		||||
        String outputFilename =
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_scanned.pdf";
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_scanned.pdf";
 | 
			
		||||
        return WebResponseUtils.boasToWebResponse(baos, outputFilename);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.text.ParseException;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -165,6 +165,8 @@ public class MetadataController {
 | 
			
		||||
        document.setDocumentInformation(info);
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_metadata.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_metadata.pdf");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.FileOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
@ -25,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -183,12 +183,16 @@ public class OCRController {
 | 
			
		||||
 | 
			
		||||
        // Return the OCR processed PDF as a response
 | 
			
		||||
        String outputFilename =
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_OCR.pdf";
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_OCR.pdf";
 | 
			
		||||
 | 
			
		||||
        if (sidecar != null && sidecar) {
 | 
			
		||||
            // Create a zip file containing both the PDF and the text file
 | 
			
		||||
            String outputZipFilename =
 | 
			
		||||
                    Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_OCR.zip";
 | 
			
		||||
                    Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                    .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                            + "_OCR.zip";
 | 
			
		||||
            Path tempZipFile = Files.createTempFile("output_", ".zip");
 | 
			
		||||
 | 
			
		||||
            try (ZipOutputStream zipOut =
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
@ -13,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -45,7 +45,9 @@ public class OverlayImageController {
 | 
			
		||||
 | 
			
		||||
            return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                    result,
 | 
			
		||||
                    Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_overlayed.pdf");
 | 
			
		||||
                    Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                    .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                            + "_overlayed.pdf");
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            logger.error("Failed to add image to PDF", e);
 | 
			
		||||
            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@ -22,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -146,7 +146,8 @@ public class PageNumbersController {
 | 
			
		||||
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                baos.toByteArray(),
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_numbersAdded.pdf",
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_numbersAdded.pdf",
 | 
			
		||||
                MediaType.APPLICATION_PDF);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
@ -16,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -66,7 +66,9 @@ public class RepairController {
 | 
			
		||||
 | 
			
		||||
        // Return the optimized PDF as a response
 | 
			
		||||
        String outputFilename =
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_repaired.pdf";
 | 
			
		||||
                Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_repaired.pdf";
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(pdfBytes, outputFilename);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.nio.charset.StandardCharsets;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@ -17,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -55,7 +55,8 @@ public class ShowJavascript {
 | 
			
		||||
 | 
			
		||||
                        script +=
 | 
			
		||||
                                "// File: "
 | 
			
		||||
                                        + Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                        + Filenames.toSimpleFileName(
 | 
			
		||||
                                                inputFile.getOriginalFilename())
 | 
			
		||||
                                        + ", Script: "
 | 
			
		||||
                                        + name
 | 
			
		||||
                                        + "\n"
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.misc;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
@ -33,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -65,6 +65,7 @@ public class StampController {
 | 
			
		||||
 | 
			
		||||
        String customColor = request.getCustomColor();
 | 
			
		||||
        float marginFactor;
 | 
			
		||||
 | 
			
		||||
        switch (request.getCustomMargin().toLowerCase()) {
 | 
			
		||||
            case "small":
 | 
			
		||||
                marginFactor = 0.02f;
 | 
			
		||||
@ -78,7 +79,6 @@ public class StampController {
 | 
			
		||||
            case "x-large":
 | 
			
		||||
                marginFactor = 0.075f;
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
            default:
 | 
			
		||||
                marginFactor = 0.035f;
 | 
			
		||||
                break;
 | 
			
		||||
@ -88,6 +88,9 @@ public class StampController {
 | 
			
		||||
        PDDocument document = Loader.loadPDF(pdfFile.getBytes());
 | 
			
		||||
 | 
			
		||||
        for (PDPage page : document.getPages()) {
 | 
			
		||||
            PDRectangle pageSize = page.getMediaBox();
 | 
			
		||||
            float margin = marginFactor * (pageSize.getWidth() + pageSize.getHeight()) / 2;
 | 
			
		||||
 | 
			
		||||
            PDPageContentStream contentStream =
 | 
			
		||||
                    new PDPageContentStream(
 | 
			
		||||
                            document, page, PDPageContentStream.AppendMode.APPEND, true, true);
 | 
			
		||||
@ -108,7 +111,7 @@ public class StampController {
 | 
			
		||||
                        alphabet,
 | 
			
		||||
                        overrideX,
 | 
			
		||||
                        overrideY,
 | 
			
		||||
                        marginFactor,
 | 
			
		||||
                        margin,
 | 
			
		||||
                        customColor);
 | 
			
		||||
            } else if ("image".equalsIgnoreCase(watermarkType)) {
 | 
			
		||||
                addImageStamp(
 | 
			
		||||
@ -121,7 +124,7 @@ public class StampController {
 | 
			
		||||
                        fontSize,
 | 
			
		||||
                        overrideX,
 | 
			
		||||
                        overrideY,
 | 
			
		||||
                        marginFactor);
 | 
			
		||||
                        margin);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            contentStream.close();
 | 
			
		||||
@ -129,7 +132,9 @@ public class StampController {
 | 
			
		||||
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_watermarked.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_watermarked.pdf");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addTextStamp(
 | 
			
		||||
@ -143,7 +148,7 @@ public class StampController {
 | 
			
		||||
            String alphabet,
 | 
			
		||||
            float overrideX, // X override
 | 
			
		||||
            float overrideY,
 | 
			
		||||
            float marginFactor,
 | 
			
		||||
            float margin,
 | 
			
		||||
            String colorString) // Y override
 | 
			
		||||
            throws IOException {
 | 
			
		||||
        String resourceDir = "";
 | 
			
		||||
@ -205,14 +210,10 @@ public class StampController {
 | 
			
		||||
        } else {
 | 
			
		||||
            x =
 | 
			
		||||
                    calculatePositionX(
 | 
			
		||||
                            pageSize,
 | 
			
		||||
                            position,
 | 
			
		||||
                            fontSize,
 | 
			
		||||
                            font,
 | 
			
		||||
                            fontSize,
 | 
			
		||||
                            watermarkText,
 | 
			
		||||
                            marginFactor);
 | 
			
		||||
            y = calculatePositionY(pageSize, position, fontSize, marginFactor);
 | 
			
		||||
                            pageSize, position, fontSize, font, fontSize, watermarkText, margin);
 | 
			
		||||
            y =
 | 
			
		||||
                    calculatePositionY(
 | 
			
		||||
                            pageSize, position, calculateTextCapHeight(font, fontSize), margin);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        contentStream.beginText();
 | 
			
		||||
@ -231,7 +232,7 @@ public class StampController {
 | 
			
		||||
            float fontSize,
 | 
			
		||||
            float overrideX,
 | 
			
		||||
            float overrideY,
 | 
			
		||||
            float marginFactor)
 | 
			
		||||
            float margin)
 | 
			
		||||
            throws IOException {
 | 
			
		||||
 | 
			
		||||
        // Load the watermark image
 | 
			
		||||
@ -257,10 +258,8 @@ public class StampController {
 | 
			
		||||
            x = overrideX;
 | 
			
		||||
            y = overrideY;
 | 
			
		||||
        } else {
 | 
			
		||||
            x =
 | 
			
		||||
                    calculatePositionX(
 | 
			
		||||
                            pageSize, position, desiredPhysicalWidth, null, 0, null, marginFactor);
 | 
			
		||||
            y = calculatePositionY(pageSize, position, fontSize, marginFactor);
 | 
			
		||||
            x = calculatePositionX(pageSize, position, desiredPhysicalWidth, null, 0, null, margin);
 | 
			
		||||
            y = calculatePositionY(pageSize, position, fontSize, margin);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        contentStream.saveGraphicsState();
 | 
			
		||||
@ -277,17 +276,31 @@ public class StampController {
 | 
			
		||||
            PDFont font,
 | 
			
		||||
            float fontSize,
 | 
			
		||||
            String text,
 | 
			
		||||
            float marginFactor)
 | 
			
		||||
            float margin)
 | 
			
		||||
            throws IOException {
 | 
			
		||||
        float actualWidth =
 | 
			
		||||
                (text != null) ? calculateTextWidth(text, font, fontSize) : contentWidth;
 | 
			
		||||
        switch (position % 3) {
 | 
			
		||||
            case 1: // Left
 | 
			
		||||
                return pageSize.getLowerLeftX() + marginFactor * pageSize.getWidth();
 | 
			
		||||
                return pageSize.getLowerLeftX() + margin;
 | 
			
		||||
            case 2: // Center
 | 
			
		||||
                return (pageSize.getWidth() - actualWidth) / 2;
 | 
			
		||||
            case 0: // Right
 | 
			
		||||
                return pageSize.getUpperRightX() - actualWidth - marginFactor * pageSize.getWidth();
 | 
			
		||||
                return pageSize.getUpperRightX() - actualWidth - margin;
 | 
			
		||||
            default:
 | 
			
		||||
                return 0;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private float calculatePositionY(
 | 
			
		||||
            PDRectangle pageSize, int position, float height, float margin) {
 | 
			
		||||
        switch ((position - 1) / 3) {
 | 
			
		||||
            case 0: // Top
 | 
			
		||||
                return pageSize.getUpperRightY() - height - margin;
 | 
			
		||||
            case 1: // Middle
 | 
			
		||||
                return (pageSize.getHeight() - height) / 2;
 | 
			
		||||
            case 2: // Bottom
 | 
			
		||||
                return pageSize.getLowerLeftY() + margin;
 | 
			
		||||
            default:
 | 
			
		||||
                return 0;
 | 
			
		||||
        }
 | 
			
		||||
@ -297,17 +310,7 @@ public class StampController {
 | 
			
		||||
        return font.getStringWidth(text) / 1000 * fontSize;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private float calculatePositionY(
 | 
			
		||||
            PDRectangle pageSize, int position, float height, float marginFactor) {
 | 
			
		||||
        switch ((position - 1) / 3) {
 | 
			
		||||
            case 0: // Top
 | 
			
		||||
                return pageSize.getUpperRightY() - height - marginFactor * pageSize.getHeight();
 | 
			
		||||
            case 1: // Middle
 | 
			
		||||
                return (pageSize.getHeight() - height) / 2;
 | 
			
		||||
            case 2: // Bottom
 | 
			
		||||
                return pageSize.getLowerLeftY() + marginFactor * pageSize.getHeight();
 | 
			
		||||
            default:
 | 
			
		||||
                return 0;
 | 
			
		||||
        }
 | 
			
		||||
    private float calculateTextCapHeight(PDFont font, float fontSize) {
 | 
			
		||||
        return font.getFontDescriptor().getCapHeight() / 1000 * fontSize;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.pipeline;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.github.pixee.security.ZipSecurity;
 | 
			
		||||
import java.io.ByteArrayInputStream;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
@ -38,6 +36,9 @@ import org.springframework.util.MultiValueMap;
 | 
			
		||||
import org.springframework.web.client.RestTemplate;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.github.pixee.security.ZipSecurity;
 | 
			
		||||
 | 
			
		||||
import jakarta.servlet.ServletContext;
 | 
			
		||||
import stirling.software.SPDF.SPdfApplication;
 | 
			
		||||
import stirling.software.SPDF.model.PipelineConfig;
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.security;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayInputStream;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
@ -43,6 +42,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -124,7 +124,9 @@ public class CertSignController {
 | 
			
		||||
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
 | 
			
		||||
        sign(pdf.getBytes(), baos, createSignature, name, location, reason);
 | 
			
		||||
        return WebResponseUtils.boasToWebResponse(
 | 
			
		||||
                baos, Filenames.toSimpleFileName(pdf.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_signed.pdf");
 | 
			
		||||
                baos,
 | 
			
		||||
                Filenames.toSimpleFileName(pdf.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_signed.pdf");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void sign(
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.security;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
import org.apache.pdfbox.Loader;
 | 
			
		||||
@ -16,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -44,7 +44,8 @@ public class PasswordController {
 | 
			
		||||
        document.setAllSecurityToBeRemoved(true);
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(fileInput.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                Filenames.toSimpleFileName(fileInput.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_password_removed.pdf");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -89,10 +90,13 @@ public class PasswordController {
 | 
			
		||||
        if ("".equals(ownerPassword) && "".equals(password))
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                    document,
 | 
			
		||||
                    Filenames.toSimpleFileName(fileInput.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                    Filenames.toSimpleFileName(fileInput.getOriginalFilename())
 | 
			
		||||
                                    .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                            + "_permissions.pdf");
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(fileInput.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_passworded.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(fileInput.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_passworded.pdf");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.security;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
@ -26,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -105,7 +105,8 @@ public class RedactController {
 | 
			
		||||
        byte[] pdfContent = baos.toByteArray();
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                pdfContent,
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_redacted.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_redacted.pdf");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void redactFoundText(
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.security;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
import org.apache.pdfbox.Loader;
 | 
			
		||||
@ -29,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -77,7 +77,8 @@ public class SanitizeController {
 | 
			
		||||
 | 
			
		||||
            return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                    document,
 | 
			
		||||
                    Filenames.toSimpleFileName(inputFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                    Filenames.toSimpleFileName(inputFile.getOriginalFilename())
 | 
			
		||||
                                    .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                            + "_sanitized.pdf");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.controller.api.security;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
@ -32,6 +31,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
 | 
			
		||||
@ -106,7 +106,9 @@ public class WatermarkController {
 | 
			
		||||
 | 
			
		||||
        return WebResponseUtils.pdfDocToWebResponse(
 | 
			
		||||
                document,
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename()).replaceFirst("[.][^.]+$", "") + "_watermarked.pdf");
 | 
			
		||||
                Filenames.toSimpleFileName(pdfFile.getOriginalFilename())
 | 
			
		||||
                                .replaceFirst("[.][^.]+$", "")
 | 
			
		||||
                        + "_watermarked.pdf");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addTextWatermark(
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.utils;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.ZipSecurity;
 | 
			
		||||
import java.io.ByteArrayInputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.charset.StandardCharsets;
 | 
			
		||||
@ -13,6 +12,8 @@ import java.util.stream.Stream;
 | 
			
		||||
import java.util.zip.ZipEntry;
 | 
			
		||||
import java.util.zip.ZipInputStream;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.ZipSecurity;
 | 
			
		||||
 | 
			
		||||
import stirling.software.SPDF.model.api.converters.HTMLToPdfRequest;
 | 
			
		||||
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
 | 
			
		||||
 | 
			
		||||
@ -145,7 +146,8 @@ public class FileToPdf {
 | 
			
		||||
 | 
			
		||||
    private static Path unzipAndGetMainHtml(byte[] fileBytes) throws IOException {
 | 
			
		||||
        Path tempDirectory = Files.createTempDirectory("unzipped_");
 | 
			
		||||
        try (ZipInputStream zipIn = ZipSecurity.createHardenedInputStream(new ByteArrayInputStream(fileBytes))) {
 | 
			
		||||
        try (ZipInputStream zipIn =
 | 
			
		||||
                ZipSecurity.createHardenedInputStream(new ByteArrayInputStream(fileBytes))) {
 | 
			
		||||
            ZipEntry entry = zipIn.getNextEntry();
 | 
			
		||||
            while (entry != null) {
 | 
			
		||||
                Path filePath = tempDirectory.resolve(entry.getName());
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,10 @@
 | 
			
		||||
package stirling.software.SPDF.utils;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.HostValidator;
 | 
			
		||||
import io.github.pixee.security.Urls;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.FileOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.net.MalformedURLException;
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.nio.file.FileVisitResult;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
@ -19,6 +16,9 @@ import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.HostValidator;
 | 
			
		||||
import io.github.pixee.security.Urls;
 | 
			
		||||
 | 
			
		||||
public class GeneralUtils {
 | 
			
		||||
 | 
			
		||||
    public static File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
 | 
			
		||||
@ -59,7 +59,8 @@ public class GeneralUtils {
 | 
			
		||||
 | 
			
		||||
    public static boolean isValidURL(String urlStr) {
 | 
			
		||||
        try {
 | 
			
		||||
            Urls.create(urlStr, Urls.HTTP_PROTOCOLS, HostValidator.DENY_COMMON_INFRASTRUCTURE_TARGETS);
 | 
			
		||||
            Urls.create(
 | 
			
		||||
                    urlStr, Urls.HTTP_PROTOCOLS, HostValidator.DENY_COMMON_INFRASTRUCTURE_TARGETS);
 | 
			
		||||
            return true;
 | 
			
		||||
        } catch (MalformedURLException e) {
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.utils;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.FileInputStream;
 | 
			
		||||
@ -21,6 +20,8 @@ import org.springframework.http.MediaType;
 | 
			
		||||
import org.springframework.http.ResponseEntity;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
 | 
			
		||||
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
 | 
			
		||||
 | 
			
		||||
public class PDFToFile {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.utils;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.awt.Graphics;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.awt.image.RenderedImage;
 | 
			
		||||
@ -38,6 +37,8 @@ import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
 | 
			
		||||
public class PdfUtils {
 | 
			
		||||
 | 
			
		||||
    private static final Logger logger = LoggerFactory.getLogger(PdfUtils.class);
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.utils;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.BoundedLineReader;
 | 
			
		||||
import java.io.BufferedReader;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
@ -17,6 +16,8 @@ import java.util.concurrent.TimeUnit;
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.BoundedLineReader;
 | 
			
		||||
 | 
			
		||||
public class ProcessExecutor {
 | 
			
		||||
 | 
			
		||||
    private static final Logger logger = LoggerFactory.getLogger(ProcessExecutor.class);
 | 
			
		||||
@ -110,7 +111,10 @@ public class ProcessExecutor {
 | 
			
		||||
                                                        process.getErrorStream(),
 | 
			
		||||
                                                        StandardCharsets.UTF_8))) {
 | 
			
		||||
                                    String line;
 | 
			
		||||
                                    while ((line = BoundedLineReader.readLine(errorReader, 5_000_000)) != null) {
 | 
			
		||||
                                    while ((line =
 | 
			
		||||
                                                    BoundedLineReader.readLine(
 | 
			
		||||
                                                            errorReader, 5_000_000))
 | 
			
		||||
                                            != null) {
 | 
			
		||||
                                        errorLines.add(line);
 | 
			
		||||
                                        if (liveUpdates) logger.info(line);
 | 
			
		||||
                                    }
 | 
			
		||||
@ -131,7 +135,10 @@ public class ProcessExecutor {
 | 
			
		||||
                                                        process.getInputStream(),
 | 
			
		||||
                                                        StandardCharsets.UTF_8))) {
 | 
			
		||||
                                    String line;
 | 
			
		||||
                                    while ((line = BoundedLineReader.readLine(outputReader, 5_000_000)) != null) {
 | 
			
		||||
                                    while ((line =
 | 
			
		||||
                                                    BoundedLineReader.readLine(
 | 
			
		||||
                                                            outputReader, 5_000_000))
 | 
			
		||||
                                            != null) {
 | 
			
		||||
                                        outputLines.add(line);
 | 
			
		||||
                                        if (liveUpdates) logger.info(line);
 | 
			
		||||
                                    }
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
package stirling.software.SPDF.utils;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.net.URLEncoder;
 | 
			
		||||
@ -13,6 +12,8 @@ import org.springframework.http.MediaType;
 | 
			
		||||
import org.springframework.http.ResponseEntity;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import io.github.pixee.security.Filenames;
 | 
			
		||||
 | 
			
		||||
public class WebResponseUtils {
 | 
			
		||||
 | 
			
		||||
    public static ResponseEntity<byte[]> boasToWebResponse(
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user