• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_PRINTING_PDF_TO_EMF_CONVERTER_H_
6 #define CHROME_BROWSER_PRINTING_PDF_TO_EMF_CONVERTER_H_
7 
8 #include "base/callback.h"
9 #include "base/memory/ref_counted_memory.h"
10 #include "base/memory/scoped_ptr.h"
11 
12 namespace base {
13 class FilePath;
14 }
15 
16 namespace printing {
17 
18 class MetafilePlayer;
19 class PdfRenderSettings;
20 
21 class PdfToEmfConverter {
22  public:
23   typedef base::Callback<void(int page_count)> StartCallback;
24   typedef base::Callback<void(int page_number,
25                               double scale_factor,
26                               scoped_ptr<MetafilePlayer> emf)> GetPageCallback;
27 
28   virtual ~PdfToEmfConverter();
29 
30   static scoped_ptr<PdfToEmfConverter> CreateDefault();
31 
32   // Starts conversion of PDF provided as |data|. Calls |start_callback|
33   // with positive |page_count|. |page_count| is 0 if initialization failed.
34   virtual void Start(const scoped_refptr<base::RefCountedMemory>& data,
35                      const PdfRenderSettings& conversion_settings,
36                      const StartCallback& start_callback) = 0;
37 
38   // Requests conversion of the page. |page_number| is 0-base page number in
39   // PDF provided in Start() call.
40   // Calls |get_page_callback| after conversion. |emf| of callback in not NULL
41   // if conversion succeeded.
42   virtual void GetPage(int page_number,
43                        const GetPageCallback& get_page_callback) = 0;
44 };
45 
46 }  // namespace printing
47 
48 #endif  // CHROME_BROWSER_PRINTING_PDF_TO_EMF_CONVERTER_H_
49