| 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 bool PrintingHandler::OnMessageReceived(const IPC::Message& message) { | 63 bool PrintingHandler::OnMessageReceived(const IPC::Message& message) { |
| 64 bool handled = true; | 64 bool handled = true; |
| 65 IPC_BEGIN_MESSAGE_MAP(PrintingHandler, message) | 65 IPC_BEGIN_MESSAGE_MAP(PrintingHandler, message) |
| 66 #if defined(OS_WIN) | 66 #if defined(OS_WIN) |
| 67 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles, | 67 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles, |
| 68 OnRenderPDFPagesToMetafile) | 68 OnRenderPDFPagesToMetafile) |
| 69 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_GetPage, | 69 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_GetPage, |
| 70 OnRenderPDFPagesToMetafileGetPage) | 70 OnRenderPDFPagesToMetafileGetPage) |
| 71 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_Stop, | 71 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_Stop, |
| 72 OnRenderPDFPagesToMetafileStop) | 72 OnRenderPDFPagesToMetafileStop) |
| 73 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToPostScript_Start, | |
| 74 OnRenderPDFPagesToPostScriptStart) | |
| 75 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToPostScript_GetPage, | |
| 76 OnRenderPDFPagesToPostScriptGetPage) | |
| 77 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToPostScript_Stop, | |
| 78 OnRenderPDFPagesToPostScriptStop) | |
| 79 #endif // OS_WIN | 73 #endif // OS_WIN |
| 80 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) | 74 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) |
| 81 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToPWGRaster, | 75 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToPWGRaster, |
| 82 OnRenderPDFPagesToPWGRaster) | 76 OnRenderPDFPagesToPWGRaster) |
| 83 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_GetPrinterCapsAndDefaults, | 77 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_GetPrinterCapsAndDefaults, |
| 84 OnGetPrinterCapsAndDefaults) | 78 OnGetPrinterCapsAndDefaults) |
| 85 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_GetPrinterSemanticCapsAndDefaults, | 79 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_GetPrinterSemanticCapsAndDefaults, |
| 86 OnGetPrinterSemanticCapsAndDefaults) | 80 OnGetPrinterSemanticCapsAndDefaults) |
| 87 #endif // ENABLE_PRINT_PREVIEW | 81 #endif // ENABLE_PRINT_PREVIEW |
| 88 IPC_MESSAGE_UNHANDLED(handled = false) | 82 IPC_MESSAGE_UNHANDLED(handled = false) |
| 89 IPC_END_MESSAGE_MAP() | 83 IPC_END_MESSAGE_MAP() |
| 90 return handled; | 84 return handled; |
| 91 } | 85 } |
| 92 | 86 |
| 93 #if defined(OS_WIN) | 87 #if defined(OS_WIN) |
| 94 void PrintingHandler::OnRenderPDFPagesToMetafile( | 88 void PrintingHandler::OnRenderPDFPagesToMetafile( |
| 95 IPC::PlatformFileForTransit pdf_transit, | 89 IPC::PlatformFileForTransit pdf_transit, |
| 96 const PdfRenderSettings& settings) { | 90 const PdfRenderSettings& settings) { |
| 97 pdf_rendering_settings_ = settings; | 91 pdf_rendering_settings_ = settings; |
| 98 chrome_pdf::SetPDFPostscriptPrintingLevel(0); // Not using postscript. | 92 chrome_pdf::SetPDFPostscriptPrintingLevel(0); // Not using postscript. |
| 99 chrome_pdf::SetPDFUseGDIPrinting(pdf_rendering_settings_.mode == | 93 chrome_pdf::SetPDFUseGDIPrinting(pdf_rendering_settings_.mode == |
| 100 PdfRenderSettings::Mode::GDI_TEXT); | 94 PdfRenderSettings::Mode::GDI_TEXT); |
| 95 if (pdf_rendering_settings_.mode == |
| 96 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2) { |
| 97 chrome_pdf::SetPDFPostscriptPrintingLevel(2); |
| 98 } else if (pdf_rendering_settings_.mode == |
| 99 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3) { |
| 100 chrome_pdf::SetPDFPostscriptPrintingLevel(3); |
| 101 } |
| 101 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit); | 102 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit); |
| 102 int page_count = LoadPDF(std::move(pdf_file)); | 103 int page_count = LoadPDF(std::move(pdf_file)); |
| 103 Send( | 104 Send( |
| 104 new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageCount(page_count)); | 105 new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageCount(page_count)); |
| 105 } | 106 } |
| 106 | 107 |
| 107 void PrintingHandler::OnRenderPDFPagesToMetafileGetPage( | 108 void PrintingHandler::OnRenderPDFPagesToMetafileGetPage( |
| 108 int page_number, | 109 int page_number, |
| 109 IPC::PlatformFileForTransit output_file) { | 110 IPC::PlatformFileForTransit output_file) { |
| 110 base::File emf_file = IPC::PlatformFileForTransitToFile(output_file); | 111 base::File emf_file = IPC::PlatformFileForTransitToFile(output_file); |
| 111 float scale_factor = 1.0f; | 112 float scale_factor = 1.0f; |
| 112 bool success = | 113 bool success = false; |
| 113 RenderPdfPageToMetafile(page_number, std::move(emf_file), &scale_factor); | 114 if (pdf_rendering_settings_.mode == |
| 115 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2 || |
| 116 pdf_rendering_settings_.mode == |
| 117 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3) { |
| 118 success = RenderPdfPageToPostScript(page_number, std::move(emf_file)); |
| 119 } else { |
| 120 success = RenderPdfPageToMetafile(page_number, std::move(emf_file), |
| 121 &scale_factor); |
| 122 } |
| 123 |
| 114 Send(new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageDone( | 124 Send(new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageDone( |
| 115 success, scale_factor)); | 125 success, scale_factor)); |
| 116 } | 126 } |
| 117 | 127 |
| 118 void PrintingHandler::OnRenderPDFPagesToMetafileStop() { | 128 void PrintingHandler::OnRenderPDFPagesToMetafileStop() { |
| 119 ReleaseProcessIfNeeded(); | 129 ReleaseProcessIfNeeded(); |
| 120 } | 130 } |
| 121 | 131 |
| 122 void PrintingHandler::OnRenderPDFPagesToPostScriptStart( | |
| 123 IPC::PlatformFileForTransit pdf_transit, | |
| 124 const PdfRenderSettings& settings) { | |
| 125 pdf_rendering_settings_ = settings; | |
| 126 if (pdf_rendering_settings_.mode == | |
| 127 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2) { | |
| 128 chrome_pdf::SetPDFPostscriptPrintingLevel(2); | |
| 129 } else if (pdf_rendering_settings_.mode == | |
| 130 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3) { | |
| 131 chrome_pdf::SetPDFPostscriptPrintingLevel(3); | |
| 132 } | |
| 133 | |
| 134 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit); | |
| 135 int page_count = LoadPDF(std::move(pdf_file)); | |
| 136 Send(new ChromeUtilityHostMsg_RenderPDFPagesToPostScript_PageCount( | |
| 137 page_count)); | |
| 138 } | |
| 139 | |
| 140 void PrintingHandler::OnRenderPDFPagesToPostScriptGetPage( | |
| 141 int page_number, | |
| 142 IPC::PlatformFileForTransit output_file) { | |
| 143 base::File ps_file = IPC::PlatformFileForTransitToFile(output_file); | |
| 144 bool success = RenderPdfPageToPostScript(page_number, std::move(ps_file)); | |
| 145 Send(new ChromeUtilityHostMsg_RenderPDFPagesToPostScript_PageDone(success)); | |
| 146 } | |
| 147 | |
| 148 void PrintingHandler::OnRenderPDFPagesToPostScriptStop() { | |
| 149 ReleaseProcessIfNeeded(); | |
| 150 } | |
| 151 #endif // defined(OS_WIN) | 132 #endif // defined(OS_WIN) |
| 152 | 133 |
| 153 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) | 134 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) |
| 154 void PrintingHandler::OnRenderPDFPagesToPWGRaster( | 135 void PrintingHandler::OnRenderPDFPagesToPWGRaster( |
| 155 IPC::PlatformFileForTransit pdf_transit, | 136 IPC::PlatformFileForTransit pdf_transit, |
| 156 const PdfRenderSettings& settings, | 137 const PdfRenderSettings& settings, |
| 157 const PwgRasterSettings& bitmap_settings, | 138 const PwgRasterSettings& bitmap_settings, |
| 158 IPC::PlatformFileForTransit bitmap_transit) { | 139 IPC::PlatformFileForTransit bitmap_transit) { |
| 159 base::File pdf = IPC::PlatformFileForTransitToFile(pdf_transit); | 140 base::File pdf = IPC::PlatformFileForTransitToFile(pdf_transit); |
| 160 base::File bitmap = IPC::PlatformFileForTransitToFile(bitmap_transit); | 141 base::File bitmap = IPC::PlatformFileForTransitToFile(bitmap_transit); |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 printer_name, printer_info)); | 346 printer_name, printer_info)); |
| 366 } else { | 347 } else { |
| 367 Send(new ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed( | 348 Send(new ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed( |
| 368 printer_name)); | 349 printer_name)); |
| 369 } | 350 } |
| 370 ReleaseProcessIfNeeded(); | 351 ReleaseProcessIfNeeded(); |
| 371 } | 352 } |
| 372 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) | 353 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) |
| 373 | 354 |
| 374 } // namespace printing | 355 } // namespace printing |
| OLD | NEW |