| // Copyright 2020 The Chromium Authors |
| // 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); |
| |
| // Sets the status for enterprise policy `kPdfUseSkiaRendererEnabled`. It |
| // should be called immediately once `mojom::PdfThumbnailer` remote is bound |
| // and only when this policy is managed. |
| SetUseSkiaRendererPolicy(bool use_skia); |
| }; |