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

module printing.mojom;

import "mojo/public/mojom/base/shared_memory.mojom";
import "skia/public/mojom/bitmap.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";

// Parameters controlling rendering details, such as size, of the thumbnail.
struct ThumbParams {
  // The dimensions of the thumbnail.
  gfx.mojom.Size size_px;

  // The resolution, in dots per inch, of the thumbnail.
  gfx.mojom.Size dpi;

  // Whether or not to stretch the thumbnail to fill the supplied size.
  bool stretch;

  // Whether or not to preserve the aspect ratio.
  bool keep_aspect;
};

// Interface used to generate a thumbnail for a PDF contents given as a set of
// bytes. Used by Chrome OS to generate thumbnails for local PDF files.
interface PdfThumbnailer {
  // Generates a thumbnail for a PDF content.
  // |params| dictate details (e.g., size) of the thumbnail. |pdf_region|
  // should hold bytes of the PDF for which the thumbnail is generated.
  // |bitmap| contains the generated PDF thumbnail.
  GetThumbnail(ThumbParams params,
               mojo_base.mojom.ReadOnlySharedMemoryRegion pdf_region)
      => (skia.mojom.BitmapN32? bitmap);
};
