Chrome без головы выполнен на Java

В настоящее время я пытаюсь улучшить существующий PDF-сервис, написанный на Java, с помощью простой функции web-PDF с использованием безголового хрома.

У меня есть работающий прототип, и сейчас я пытаюсь разобраться с некоторыми деталями: есть ли способ, чтобы рендеринг PDF был только в памяти, а не сначала записывать его в файл? Если нужен временный файл, каков наилучший подход для временной папки, которая работает в системах Windows и NIX, когда я хочу сохранить свой исполняемый файл без дополнительного параметра?

Фрагмент кода (Windows):

private static final String HEADLES_PARAM = "--headless";
private static final String GPU_PARAM = "--disable-gpu";
private static final String PDF_PARAM = "--print-to-pdf";

private byte[] printToPDF(String path, String fileName) throws IOException, InterruptedException {
    String filePath = "C:\\Users\\thomas.amsler\\Documents\\" + fileName;
    String pdfParam = PDF_PARAM + "=" + filePath;
    ProcessBuilder pb = new ProcessBuilder("chrome", HEADLES_PARAM, GPU_PARAM, pdfParam, path);
    Process process = pb.start();
    process.waitFor(TIMEOUT_IN_MS, TimeUnit.MILLISECONDS);
    return Files.readAllBytes(Paths.get(filePath));
}

Дополнительный вопрос: есть ли способ поддерживать работу Chrome во время работы службы?

0 ответов

Другие вопросы по тегам