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.
5 #ifndef CHROME_BROWSER_PRINTING_PDF_TO_EMF_CONVERTER_H_
6 #define CHROME_BROWSER_PRINTING_PDF_TO_EMF_CONVERTER_H_
8 #include "base/callback.h"
9 #include "base/memory/ref_counted_memory.h"
10 #include "base/memory/scoped_ptr.h"
19 class PdfRenderSettings
;
21 class PdfToEmfConverter
{
23 typedef base::Callback
<void(int page_count
)> StartCallback
;
24 typedef base::Callback
<void(int page_number
,
26 scoped_ptr
<MetafilePlayer
> emf
)> GetPageCallback
;
28 virtual ~PdfToEmfConverter();
30 static scoped_ptr
<PdfToEmfConverter
> CreateDefault();
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;
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;
46 } // namespace printing
48 #endif // CHROME_BROWSER_PRINTING_PDF_TO_EMF_CONVERTER_H_