| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 #include "chrome/utility/printing_handler.h" | 5 #include "chrome/utility/printing_handler.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 namespace { | 33 namespace { |
| 34 | 34 |
| 35 bool Send(IPC::Message* message) { | 35 bool Send(IPC::Message* message) { |
| 36 return content::UtilityThread::Get()->Send(message); | 36 return content::UtilityThread::Get()->Send(message); |
| 37 } | 37 } |
| 38 | 38 |
| 39 void ReleaseProcessIfNeeded() { | 39 void ReleaseProcessIfNeeded() { |
| 40 content::UtilityThread::Get()->ReleaseProcessIfNeeded(); | 40 content::UtilityThread::Get()->ReleaseProcessIfNeeded(); |
| 41 } | 41 } |
| 42 | 42 |
| 43 #if defined(OS_WIN) |
| 44 void PreCacheFontCharacters(const LOGFONT* logfont, |
| 45 const wchar_t* text, |
| 46 size_t text_length) { |
| 47 Send(new ChromeUtilityHostMsg_PreCacheFontCharacters( |
| 48 *logfont, base::string16(text, text_length))); |
| 49 } |
| 50 #endif |
| 51 |
| 43 } // namespace | 52 } // namespace |
| 44 | 53 |
| 45 PrintingHandler::PrintingHandler() {} | 54 PrintingHandler::PrintingHandler() { |
| 55 #if defined(OS_WIN) |
| 56 chrome_pdf::SetPDFEnsureTypefaceCharactersAccessible(PreCacheFontCharacters); |
| 57 #endif |
| 58 } |
| 46 | 59 |
| 47 PrintingHandler::~PrintingHandler() {} | 60 PrintingHandler::~PrintingHandler() {} |
| 48 | 61 |
| 49 bool PrintingHandler::OnMessageReceived(const IPC::Message& message) { | 62 bool PrintingHandler::OnMessageReceived(const IPC::Message& message) { |
| 50 bool handled = true; | 63 bool handled = true; |
| 51 IPC_BEGIN_MESSAGE_MAP(PrintingHandler, message) | 64 IPC_BEGIN_MESSAGE_MAP(PrintingHandler, message) |
| 52 #if defined(OS_WIN) | 65 #if defined(OS_WIN) |
| 53 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles, | 66 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles, |
| 54 OnRenderPDFPagesToMetafile) | 67 OnRenderPDFPagesToMetafile) |
| 55 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_GetPage, | 68 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_GetPage, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 66 OnGetPrinterSemanticCapsAndDefaults) | 79 OnGetPrinterSemanticCapsAndDefaults) |
| 67 #endif // ENABLE_PRINT_PREVIEW | 80 #endif // ENABLE_PRINT_PREVIEW |
| 68 IPC_MESSAGE_UNHANDLED(handled = false) | 81 IPC_MESSAGE_UNHANDLED(handled = false) |
| 69 IPC_END_MESSAGE_MAP() | 82 IPC_END_MESSAGE_MAP() |
| 70 return handled; | 83 return handled; |
| 71 } | 84 } |
| 72 | 85 |
| 73 #if defined(OS_WIN) | 86 #if defined(OS_WIN) |
| 74 void PrintingHandler::OnRenderPDFPagesToMetafile( | 87 void PrintingHandler::OnRenderPDFPagesToMetafile( |
| 75 IPC::PlatformFileForTransit pdf_transit, | 88 IPC::PlatformFileForTransit pdf_transit, |
| 76 const PdfRenderSettings& settings) { | 89 const PdfRenderSettings& settings, |
| 90 bool print_text_with_gdi) { |
| 77 pdf_rendering_settings_ = settings; | 91 pdf_rendering_settings_ = settings; |
| 92 chrome_pdf::SetPDFUseGDIPrinting(print_text_with_gdi); |
| 78 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit); | 93 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit); |
| 79 int page_count = LoadPDF(std::move(pdf_file)); | 94 int page_count = LoadPDF(std::move(pdf_file)); |
| 80 Send( | 95 Send( |
| 81 new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageCount(page_count)); | 96 new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageCount(page_count)); |
| 82 } | 97 } |
| 83 | 98 |
| 84 void PrintingHandler::OnRenderPDFPagesToMetafileGetPage( | 99 void PrintingHandler::OnRenderPDFPagesToMetafileGetPage( |
| 85 int page_number, | 100 int page_number, |
| 86 IPC::PlatformFileForTransit output_file) { | 101 IPC::PlatformFileForTransit output_file) { |
| 87 base::File emf_file = IPC::PlatformFileForTransitToFile(output_file); | 102 base::File emf_file = IPC::PlatformFileForTransitToFile(output_file); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 printer_name, printer_info)); | 319 printer_name, printer_info)); |
| 305 } else { | 320 } else { |
| 306 Send(new ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed( | 321 Send(new ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed( |
| 307 printer_name)); | 322 printer_name)); |
| 308 } | 323 } |
| 309 ReleaseProcessIfNeeded(); | 324 ReleaseProcessIfNeeded(); |
| 310 } | 325 } |
| 311 #endif // ENABLE_PRINT_PREVIEW | 326 #endif // ENABLE_PRINT_PREVIEW |
| 312 | 327 |
| 313 } // namespace printing | 328 } // namespace printing |
| OLD | NEW |