summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom
blob: a7d58318338e8772277560639494939e91f1a0c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright 2017 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 "chrome/services/printing/public/mojom/pdf_render_settings.mojom";
import "mojo/public/mojom/base/shared_memory.mojom";
import "mojo/public/mojom/base/string16.mojom";

// This set of interfaces is used to convert PDF files to EMF.
// Usage:
// - generate a PdfToEmfConverter by binding the PdfToEmfConverterFactory
//   interface and calling PdfToEmfConverterFactory.CreateConverter(). This also
//   returns the number of pages that will be generated.
// - call PdfToEmfConverter.ConvertPage() for each page to generate the EMF
//   files.

interface PdfToEmfConverterClient {
  [Sync]
  PreCacheFontCharacters(array<uint8> logfont,
                         mojo_base.mojom.String16 characters) => ();
};

interface PdfToEmfConverter {
  ConvertPage(uint32 page_number) =>
      (mojo_base.mojom.ReadOnlySharedMemoryRegion? emf_region,
       float scale_factor);
};

interface PdfToEmfConverterFactory {
  CreateConverter(mojo_base.mojom.ReadOnlySharedMemoryRegion pdf_region,
                  PdfRenderSettings render_settings,
                  PdfToEmfConverterClient client) =>
      (PdfToEmfConverter converter, uint32 page_count);
};