// 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";
import "url/mojom/url.mojom";
// Converts a PDF to EMF, page-by-page.
interface PdfToEmfConverter {
// Converts the page at `page_index` in the PDF. The PdfToEmfConverterFactory
// that created this PdfToEmfConverter returned how many pages are in PDF.
// For the given page, returns the converted EMF data, if successful, and the
// scale factor for that page.
ConvertPage(uint32 page_index) =>
(mojo_base.mojom.ReadOnlySharedMemoryRegion? emf_region,
float scale_factor);
// Tells the service what URL is committed in the main frame of the
// WebContents that is printing, for use in crash diagnosis.
SetWebContentsURL(url.mojom.Url url);
// Sets the status for enterprise policy `kPdfUseSkiaRendererEnabled`. It
// should be called immediately once `PdfToEmfConverter` remote is created
// and only when the enterprise policy is managed.
SetUseSkiaRendererPolicy(bool use_skia);
};
// Generates a PdfToEmfConverter, for converting a PDF to EMF.
interface PdfToEmfConverterFactory {
// Sends the PDF data in `pdf_region`, along with the `render_settings` to
// use. Returns a PdfToEmfConverter and how many pages are in the PDF.
CreateConverter(mojo_base.mojom.ReadOnlySharedMemoryRegion pdf_region,
PdfRenderSettings render_settings)
=> (pending_remote<PdfToEmfConverter> converter, uint32 page_count);
};