// Copyright 2017 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 "chrome/services/printing/public/mojom/pdf_render_settings.mojom";
import "mojo/public/mojom/base/shared_memory.mojom";
// Corresponds to `printing::PwgRasterSettings` in
// printing/pwg_raster_settings.h.
struct PwgRasterSettings {
enum TransformType {
TRANSFORM_NORMAL,
TRANSFORM_ROTATE_180,
TRANSFORM_FLIP_HORIZONTAL,
TRANSFORM_FLIP_VERTICAL
};
enum DuplexMode {
SIMPLEX,
LONG_EDGE,
SHORT_EDGE,
};
DuplexMode duplex_mode;
// How to transform odd-numbered pages.
TransformType odd_page_transform;
// Rotate all pages (on top of odd-numbered page transform).
bool rotate_all_pages;
// Rasterize pages in reverse order.
bool reverse_page_order;
// Rasterize pages in color.
bool use_color;
};
interface PdfToPwgRasterConverter {
Convert(mojo_base.mojom.ReadOnlySharedMemoryRegion pdf_region,
PdfRenderSettings pdf_settings,
PwgRasterSettings pwg_raster_settings)
=> (mojo_base.mojom.ReadOnlySharedMemoryRegion? pwg_raster_region,
uint32 page_count);
// Sets the status for enterprise policy `kPdfUseSkiaRendererEnabled`. It
// should be called immediately once `mojom::PdfToPwgRasterConverter` remote
// is bound and only when this policy is managed.
SetUseSkiaRendererPolicy(bool use_skia);
};