chromium/chromeos/utils/pdf_conversion.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMEOS_UTILS_PDF_CONVERSION_H_
#define CHROMEOS_UTILS_PDF_CONVERSION_H_

#include <optional>
#include <string>
#include <vector>

namespace base {
class FilePath;
}  // namespace base

namespace chromeos {

// Converts `jpg_images` to a single PDF, and writes the PDF to `file_path`. If
// `rotate_alternate_pages` is true, every other page is rotated 180 degrees. If
// the DPI is specified, use it to calculate proper page and media box size.
// Returns whether the PDF was successfully saved.
bool ConvertJpgImagesToPdf(const std::vector<std::string>& jpg_images,
                           const base::FilePath& file_path,
                           bool rotate_alternate_pages,
                           std::optional<int> dpi);

// Converts `jpg_images` to a single PDF, and saved the result into `output`.
bool ConvertJpgImagesToPdf(const std::vector<std::vector<uint8_t>>& jpg_images,
                           std::vector<uint8_t>* output);

}  // namespace chromeos

#endif  // CHROMEOS_UTILS_PDF_CONVERSION_H_