fix: remove blank pages not handling EXIT_FAILURE code properly

This commit is contained in:
sbplat 2024-01-22 10:39:29 -05:00
parent b59651a0fb
commit 06ef09035d
3 changed files with 18 additions and 12 deletions

View file

@ -33,7 +33,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import stirling.software.SPDF.model.api.misc.RemoveBlankPagesRequest; import stirling.software.SPDF.model.api.misc.RemoveBlankPagesRequest;
import stirling.software.SPDF.utils.PdfUtils; import stirling.software.SPDF.utils.PdfUtils;
import stirling.software.SPDF.utils.ProcessExecutor; import stirling.software.SPDF.utils.ProcessExecutor;
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
import stirling.software.SPDF.utils.WebResponseUtils; import stirling.software.SPDF.utils.WebResponseUtils;
@RestController @RestController
@ -85,7 +84,7 @@ public class BlankPageController {
List<String> command = List<String> command =
new ArrayList<>( new ArrayList<>(
Arrays.asList( Arrays.asList(
"python3", "python",
System.getProperty("user.dir") System.getProperty("user.dir")
+ "/scripts/detect-blank-pages.py", + "/scripts/detect-blank-pages.py",
tempFile.toString(), tempFile.toString(),
@ -94,18 +93,25 @@ public class BlankPageController {
"--white_percent", "--white_percent",
String.valueOf(whitePercent))); String.valueOf(whitePercent)));
Boolean blank = false;
// Run CLI command // Run CLI command
ProcessExecutorResult returnCode = try {
ProcessExecutor.getInstance(ProcessExecutor.Processes.PYTHON_OPENCV) ProcessExecutor.getInstance(ProcessExecutor.Processes.PYTHON_OPENCV)
.runCommandWithOutputHandling(command); .runCommandWithOutputHandling(command);
} catch (IOException e) {
// From detect-blank-pages.py
// Return code 1: The image is considered blank.
// Return code 0: The image is not considered blank.
// Since the process returned with a failure code, it should be blank.
blank = true;
}
// does contain data if (blank) {
if (returnCode.getRc() == 0) { System.out.println("Skipping, Image was blank for page #" + pageIndex);
} else {
System.out.println( System.out.println(
"page " + pageIndex + " has image which is not blank"); "page " + pageIndex + " has image which is not blank");
pagesToKeepIndex.add(pageIndex); pagesToKeepIndex.add(pageIndex);
} else {
System.out.println("Skipping, Image was blank for page #" + pageIndex);
} }
} }
} }