blob: 46f60cee5374b378e216f073bd0e8a381d564a7b [file] [log] [blame]
// 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);