OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef PDF_PDF_ENGINE_H_ | 5 #ifndef PDF_PDF_ENGINE_H_ |
6 #define PDF_PDF_ENGINE_H_ | 6 #define PDF_PDF_ENGINE_H_ |
7 | 7 |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
9 | 9 |
10 #if defined(OS_WIN) | 10 #if defined(OS_WIN) |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 #endif // OS_MACOSX | 42 #endif // OS_MACOSX |
43 | 43 |
44 // Do one time initialization of the SDK. | 44 // Do one time initialization of the SDK. |
45 bool InitializeSDK(); | 45 bool InitializeSDK(); |
46 // Tells the SDK that we're shutting down. | 46 // Tells the SDK that we're shutting down. |
47 void ShutdownSDK(); | 47 void ShutdownSDK(); |
48 | 48 |
49 // This class encapsulates a PDF rendering engine. | 49 // This class encapsulates a PDF rendering engine. |
50 class PDFEngine { | 50 class PDFEngine { |
51 public: | 51 public: |
52 | |
53 enum DocumentPermission { | 52 enum DocumentPermission { |
54 PERMISSION_COPY, | 53 PERMISSION_COPY, |
55 PERMISSION_COPY_ACCESSIBLE, | 54 PERMISSION_COPY_ACCESSIBLE, |
56 PERMISSION_PRINT_LOW_QUALITY, | 55 PERMISSION_PRINT_LOW_QUALITY, |
57 PERMISSION_PRINT_HIGH_QUALITY, | 56 PERMISSION_PRINT_HIGH_QUALITY, |
58 }; | 57 }; |
59 | 58 |
60 // The interface that's provided to the rendering engine. | 59 // The interface that's provided to the rendering engine. |
61 class Client { | 60 class Client { |
62 public: | 61 public: |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 // Notifies the client about focus changes for form text fields. | 170 // Notifies the client about focus changes for form text fields. |
172 virtual void FormTextFieldFocusChange(bool in_focus) = 0; | 171 virtual void FormTextFieldFocusChange(bool in_focus) = 0; |
173 | 172 |
174 // Returns true if the plugin has been opened within print preview. | 173 // Returns true if the plugin has been opened within print preview. |
175 virtual bool IsPrintPreview() = 0; | 174 virtual bool IsPrintPreview() = 0; |
176 | 175 |
177 // Get the background color of the PDF. | 176 // Get the background color of the PDF. |
178 virtual uint32 GetBackgroundColor() = 0; | 177 virtual uint32 GetBackgroundColor() = 0; |
179 | 178 |
180 // Sets selection status. | 179 // Sets selection status. |
181 virtual void IsSelectingChanged(bool is_selecting){}; | 180 virtual void IsSelectingChanged(bool is_selecting) {} |
182 }; | 181 }; |
183 | 182 |
184 // Factory method to create an instance of the PDF Engine. | 183 // Factory method to create an instance of the PDF Engine. |
185 static PDFEngine* Create(Client* client); | 184 static PDFEngine* Create(Client* client); |
186 | 185 |
187 virtual ~PDFEngine() {} | 186 virtual ~PDFEngine() {} |
188 // Most of these functions are similar to the Pepper functions of the same | 187 // Most of these functions are similar to the Pepper functions of the same |
189 // name, so not repeating the description here unless it's different. | 188 // name, so not repeating the description here unless it's different. |
190 virtual bool New(const char* url) = 0; | 189 virtual bool New(const char* url) = 0; |
191 virtual bool New(const char* url, | 190 virtual bool New(const char* url, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 virtual void SetGrayscale(bool grayscale) = 0; | 243 virtual void SetGrayscale(bool grayscale) = 0; |
245 // Callback for timer that's set with ScheduleCallback(). | 244 // Callback for timer that's set with ScheduleCallback(). |
246 virtual void OnCallback(int id) = 0; | 245 virtual void OnCallback(int id) = 0; |
247 // Gets the JSON representation of the PDF file | 246 // Gets the JSON representation of the PDF file |
248 virtual std::string GetPageAsJSON(int index) = 0; | 247 virtual std::string GetPageAsJSON(int index) = 0; |
249 // Gets the PDF document's print scaling preference. True if the document can | 248 // Gets the PDF document's print scaling preference. True if the document can |
250 // be scaled to fit. | 249 // be scaled to fit. |
251 virtual bool GetPrintScaling() = 0; | 250 virtual bool GetPrintScaling() = 0; |
252 // Returns number of copies to be printed. | 251 // Returns number of copies to be printed. |
253 virtual int GetCopiesToPrint() = 0; | 252 virtual int GetCopiesToPrint() = 0; |
| 253 // Returns the duplex setting. |
| 254 virtual int GetDuplexType() = 0; |
254 | 255 |
255 // Returns a VarArray of Bookmarks, each a VarDictionary containing the | 256 // Returns a VarArray of Bookmarks, each a VarDictionary containing the |
256 // following key/values: | 257 // following key/values: |
257 // - "title" - a string Var. | 258 // - "title" - a string Var. |
258 // - "page" - an int Var. | 259 // - "page" - an int Var. |
259 // - "children" - a VarArray(), with each entry containing a VarDictionary of | 260 // - "children" - a VarArray(), with each entry containing a VarDictionary of |
260 // the same structure. | 261 // the same structure. |
261 virtual pp::VarArray GetBookmarks() = 0; | 262 virtual pp::VarArray GetBookmarks() = 0; |
262 | 263 |
263 // Append blank pages to make a 1-page document to a |num_pages| document. | 264 // Append blank pages to make a 1-page document to a |num_pages| document. |
264 // Always retain the first page data. | 265 // Always retain the first page data. |
265 virtual void AppendBlankPages(int num_pages) = 0; | 266 virtual void AppendBlankPages(int num_pages) = 0; |
266 // Append the first page of the document loaded with the |engine| to this | 267 // Append the first page of the document loaded with the |engine| to this |
267 // document at page |index|. | 268 // document at page |index|. |
268 virtual void AppendPage(PDFEngine* engine, int index) = 0; | 269 virtual void AppendPage(PDFEngine* engine, int index) = 0; |
269 | 270 |
270 // Allow client to query and reset scroll positions in document coordinates. | 271 // Allow client to query and reset scroll positions in document coordinates. |
271 // Note that this is meant for cases where the device scale factor changes, | 272 // Note that this is meant for cases where the device scale factor changes, |
272 // and not for general scrolling - the engine will not repaint due to this. | 273 // and not for general scrolling - the engine will not repaint due to this. |
273 virtual pp::Point GetScrollPosition() = 0; | 274 virtual pp::Point GetScrollPosition() = 0; |
274 virtual void SetScrollPosition(const pp::Point& position) = 0; | 275 virtual void SetScrollPosition(const pp::Point& position) = 0; |
275 | 276 |
276 virtual bool IsProgressiveLoad() = 0; | 277 virtual bool IsProgressiveLoad() = 0; |
277 }; | 278 }; |
278 | 279 |
279 // Interface for exports that wrap the PDF engine. | 280 // Interface for exports that wrap the PDF engine. |
280 class PDFEngineExports { | 281 class PDFEngineExports { |
281 public: | 282 public: |
282 struct RenderingSettings { | 283 struct RenderingSettings { |
283 RenderingSettings(int dpi_x, | 284 RenderingSettings(int dpi_x, |
284 int dpi_y, | 285 int dpi_y, |
285 const pp::Rect& bounds, | 286 const pp::Rect& bounds, |
286 bool fit_to_bounds, | 287 bool fit_to_bounds, |
287 bool stretch_to_bounds, | 288 bool stretch_to_bounds, |
288 bool keep_aspect_ratio, | 289 bool keep_aspect_ratio, |
289 bool center_in_bounds, | 290 bool center_in_bounds, |
290 bool autorotate) | 291 bool autorotate) |
291 : dpi_x(dpi_x), dpi_y(dpi_y), bounds(bounds), | 292 : dpi_x(dpi_x), dpi_y(dpi_y), bounds(bounds), |
292 fit_to_bounds(fit_to_bounds), stretch_to_bounds(stretch_to_bounds), | 293 fit_to_bounds(fit_to_bounds), stretch_to_bounds(stretch_to_bounds), |
293 keep_aspect_ratio(keep_aspect_ratio), | 294 keep_aspect_ratio(keep_aspect_ratio), |
294 center_in_bounds(center_in_bounds), autorotate(autorotate) { | 295 center_in_bounds(center_in_bounds), autorotate(autorotate) { |
295 } | 296 } |
296 int dpi_x; | 297 int dpi_x; |
297 int dpi_y; | 298 int dpi_y; |
298 pp::Rect bounds; | 299 pp::Rect bounds; |
299 bool fit_to_bounds; | 300 bool fit_to_bounds; |
300 bool stretch_to_bounds; | 301 bool stretch_to_bounds; |
301 bool keep_aspect_ratio; | 302 bool keep_aspect_ratio; |
(...skipping 26 matching lines...) Expand all Loading... |
328 | 329 |
329 // See the definition of GetPDFPageSizeByIndex in pdf.cc for details. | 330 // See the definition of GetPDFPageSizeByIndex in pdf.cc for details. |
330 virtual bool GetPDFPageSizeByIndex(const void* pdf_buffer, | 331 virtual bool GetPDFPageSizeByIndex(const void* pdf_buffer, |
331 int pdf_buffer_size, int page_number, | 332 int pdf_buffer_size, int page_number, |
332 double* width, double* height) = 0; | 333 double* width, double* height) = 0; |
333 }; | 334 }; |
334 | 335 |
335 } // namespace chrome_pdf | 336 } // namespace chrome_pdf |
336 | 337 |
337 #endif // PDF_PDF_ENGINE_H_ | 338 #endif // PDF_PDF_ENGINE_H_ |
OLD | NEW |