Browse Source

Warnung vor dem Überschreiben von Dateien implementiert

main
Stephan Richter 10 months ago
parent
commit
02118d0887
  1. 1
      doc/manual-de.md
  2. 2
      resources/translations/Application.de.translation
  3. 16
      src/main/java/de/srsoftware/belegscanner/Worker.java

1
doc/manual-de.md

@ -9,7 +9,6 @@ Diese Anwendung soll helfen @@ -9,7 +9,6 @@ Diese Anwendung soll helfen
## TODOs
* Warnen beim Überschreiben
* Zusatzfelder zum aktuellen Profile mit speichern
* diese Anleitung vervollständigen
* vordefinierte Platzhalter

2
resources/translations/Application.de.translation

@ -17,6 +17,7 @@ drop file : Datei löschen @@ -17,6 +17,7 @@ drop file : Datei löschen
done : fertig
Error code\: {} for {} : Fehlercode: {} für {}
February : Februar
File "{}" does already exist and would be overwritten. Continue? : Die Datei „{}“ existiert bereits. Soll sie überschrieben werden?
Finished text recognition. : Texterkennung beendet.
German language support missing! : Unterstützung für deutsche Sprache fehlt!
Height : Höhe
@ -35,6 +36,7 @@ month : monat @@ -35,6 +36,7 @@ month : monat
OCR failed. : OCR fehlgeschlagen.
October : Oktober
open folder : Ordner öffnen
Overwrite file : Datei überschreiben
PAGE : SEITE
Path '{}' does not exist! : Pfad '{}' existiert nicht!
Path : Pfad

16
src/main/java/de/srsoftware/belegscanner/Worker.java

@ -205,8 +205,12 @@ public class Worker { @@ -205,8 +205,12 @@ public class Worker {
var project = docTable.getProject(resolvedPath).orElseGet(() -> docTable.createProject(resolvedPath));
int rotation = this.rotationAngle;
File targetFile = prepareProject(project);
File jpeg = new File(targetFile+".jpg");
File pdf = new File(targetFile+".pdf");
if (!JPG.equals(type) && overwriteAbort(pdf)) return; // if PDF conversion is sheduled: avoid overwriting pdf
if (overwriteAbort(jpeg)) return;
var type = getType();
var page = project.addPage(new File(targetFile+".jpg"));
var page = project.addPage(jpeg);
scanJpeg(targetFile,project);
improveJpeg(targetFile,project,rotation);
@ -232,6 +236,12 @@ public class Worker { @@ -232,6 +236,12 @@ public class Worker {
preview(page);
}
private boolean overwriteAbort(File targetFile) {
if (!targetFile.exists()) return false;
var answer = JOptionPane.showConfirmDialog(mainFrame,t("File \"{}\" does already exist and would be overwritten. Continue?",targetFile),t("Overwrite file"),JOptionPane.YES_NO_OPTION);
return answer != JOptionPane.YES_OPTION;
}
private void performTextRecognition(File targetFile, Project project) {
String pdf = targetFile.getName() + ".tmp.pdf";
String ocr = targetFile.getName() + ".pdf";
@ -546,8 +556,8 @@ public class Worker { @@ -546,8 +556,8 @@ public class Worker {
cmd.add("output");
var pageReplace = removePageOnStitching ? "" : firstPage+"…"+lastPage;
File joinedPDF = new File(project.pattern().replace("["+PAGE+"]",pageReplace).trim()+".pdf");
String target = joinedPDF.getName();
cmd.add(target);
cmd.add(joinedPDF.getName());
if (overwriteAbort(joinedPDF)) return;
LOG.debug("executing {}",cmd);
var builder = new ProcessBuilder(cmd);

Loading…
Cancel
Save