|
|
@ -12,11 +12,11 @@ import java.nio.file.Files;
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
public class LatexService {
|
|
|
|
public class LatexService {
|
|
|
|
|
|
|
|
private final String pdfLatexError = "Errors occurred while executing pdfLaTeX.";
|
|
|
|
|
|
|
|
private final String bibtexError = "Errors occurred while executing bibtex.";
|
|
|
|
private String errorMessage;
|
|
|
|
private String errorMessage;
|
|
|
|
private File pdfFile;
|
|
|
|
private File pdfFile;
|
|
|
|
private FileService fileService;
|
|
|
|
private FileService fileService;
|
|
|
|
private final String pdfLatexError = "Errors occurred while executing pdfLaTeX.";
|
|
|
|
|
|
|
|
private final String bibtexError = "Errors occurred while executing bibtex.";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public LatexService(FileService fileService) {
|
|
|
|
public LatexService(FileService fileService) {
|
|
|
|
this.fileService = fileService;
|
|
|
|
this.fileService = fileService;
|
|
|
@ -42,7 +42,9 @@ public class LatexService {
|
|
|
|
InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
|
|
|
|
InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
|
|
|
|
|
|
|
|
|
|
|
|
try (BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
|
|
|
|
try (BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
|
|
|
|
while ((bufferedReader.readLine()) != null) ;
|
|
|
|
while ((bufferedReader.readLine()) != null) {
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int exitCode = process.waitFor();
|
|
|
|
int exitCode = process.waitFor();
|
|
|
@ -55,16 +57,18 @@ public class LatexService {
|
|
|
|
private boolean generate(String filename, File dir) throws IOException, InterruptedException {
|
|
|
|
private boolean generate(String filename, File dir) throws IOException, InterruptedException {
|
|
|
|
startProcess(new String[]{"pdflatex", filename, "--interaction=nonstopmode"}, dir, pdfLatexError);
|
|
|
|
startProcess(new String[]{"pdflatex", filename, "--interaction=nonstopmode"}, dir, pdfLatexError);
|
|
|
|
startProcess(new String[]{"bibtex", filename}, dir, bibtexError);
|
|
|
|
startProcess(new String[]{"bibtex", filename}, dir, bibtexError);
|
|
|
|
if (startProcess(new String[]{"pdflatex", filename, "--interaction=nonstopmode"}, dir, pdfLatexError) != 0)
|
|
|
|
if (startProcess(new String[]{"pdflatex", filename, "--interaction=nonstopmode"}, dir, pdfLatexError) != 0) {
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
return checkPdf(filename, dir);
|
|
|
|
return checkPdf(filename, dir);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean checkPdf(String filename, File dir) {
|
|
|
|
private boolean checkPdf(String filename, File dir) {
|
|
|
|
pdfFile = new File(dir.getAbsolutePath() + File.separator + filename + ".pdf");
|
|
|
|
pdfFile = new File(dir.getAbsolutePath() + File.separator + filename + ".pdf");
|
|
|
|
|
|
|
|
|
|
|
|
if (pdfFile.isFile()) return true;
|
|
|
|
if (pdfFile.isFile()) {
|
|
|
|
else {
|
|
|
|
return true;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
errorMessage = "The pdf file could not be created.";
|
|
|
|
errorMessage = "The pdf file could not be created.";
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|