Stirling-PDF/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java

99 lines
2.7 KiB
Java
Raw Normal View History

package stirling.software.SPDF.controller.web;
2023-07-09 20:36:41 +02:00
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import io.swagger.v3.oas.annotations.Hidden;
2023-06-25 10:16:32 +02:00
import io.swagger.v3.oas.annotations.tags.Tag;
@Controller
2023-06-25 10:16:32 +02:00
@Tag(name = "General", description = "General APIs")
public class GeneralWebController {
2023-06-13 01:32:15 +02:00
@GetMapping("/pipeline")
@Hidden
public String pipelineForm(Model model) {
model.addAttribute("currentPage", "pipeline");
return "pipeline";
}
@GetMapping("/merge-pdfs")
@Hidden
public String mergePdfForm(Model model) {
model.addAttribute("currentPage", "merge-pdfs");
return "merge-pdfs";
}
2023-06-25 10:16:32 +02:00
2023-04-29 23:26:16 +02:00
@GetMapping("/multi-tool")
@Hidden
public String multiToolForm(Model model) {
model.addAttribute("currentPage", "multi-tool");
return "multi-tool";
}
2023-06-25 10:16:32 +02:00
@GetMapping("/remove-pages")
@Hidden
public String pageDeleter(Model model) {
model.addAttribute("currentPage", "remove-pages");
return "remove-pages";
}
@GetMapping("/pdf-organizer")
@Hidden
public String pageOrganizer(Model model) {
model.addAttribute("currentPage", "pdf-organizer");
return "pdf-organizer";
}
@GetMapping("/rotate-pdf")
@Hidden
public String rotatePdfForm(Model model) {
model.addAttribute("currentPage", "rotate-pdf");
return "rotate-pdf";
}
@GetMapping("/split-pdfs")
@Hidden
public String splitPdfForm(Model model) {
model.addAttribute("currentPage", "split-pdfs");
return "split-pdfs";
}
2023-05-02 23:59:16 +02:00
@GetMapping("/sign")
@Hidden
public String signForm(Model model) {
model.addAttribute("currentPage", "sign");
2023-07-09 20:36:41 +02:00
model.addAttribute("fonts", getFontNames());
2023-05-02 23:59:16 +02:00
return "sign";
}
2023-07-09 20:36:41 +02:00
private List<String> getFontNames() {
try {
return Files.list(Paths.get("src/main/resources/static/fonts"))
.map(Path::getFileName)
.map(Path::toString)
.filter(name -> name.endsWith(".woff2"))
.map(name -> name.substring(0, name.length() - 6)) // Remove .woff2 extension
.collect(Collectors.toList());
} catch (IOException e) {
throw new RuntimeException("Failed to read font directory", e);
}
}
@GetMapping("/crop")
@Hidden
public String cropForm(Model model) {
model.addAttribute("currentPage", "crop");
return "crop";
}
}