Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: chrome/utility/printing_handler.cc

Issue 2970473002: Add generic text printing (Closed)
Patch Set: Clean up Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 return handled; 84 return handled;
85 } 85 }
86 86
87 #if defined(OS_WIN) 87 #if defined(OS_WIN)
88 void PrintingHandler::OnRenderPDFPagesToMetafile( 88 void PrintingHandler::OnRenderPDFPagesToMetafile(
89 IPC::PlatformFileForTransit pdf_transit, 89 IPC::PlatformFileForTransit pdf_transit,
90 const PdfRenderSettings& settings) { 90 const PdfRenderSettings& settings) {
91 pdf_rendering_settings_ = settings; 91 pdf_rendering_settings_ = settings;
92 chrome_pdf::SetPDFUseGDIPrinting(pdf_rendering_settings_.mode == 92 chrome_pdf::SetPDFUseGDIPrinting(pdf_rendering_settings_.mode ==
93 PdfRenderSettings::Mode::GDI_TEXT); 93 PdfRenderSettings::Mode::GDI_TEXT);
94 chrome_pdf::SetPDFUseTextOnlyPrinting(pdf_rendering_settings_.mode ==
95 PdfRenderSettings::Mode::TEXTONLY);
94 int postscript_level; 96 int postscript_level;
95 switch (pdf_rendering_settings_.mode) { 97 switch (pdf_rendering_settings_.mode) {
96 case PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2: 98 case PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2:
97 postscript_level = 2; 99 postscript_level = 2;
98 break; 100 break;
99 case PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3: 101 case PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3:
100 postscript_level = 3; 102 postscript_level = 3;
101 break; 103 break;
102 default: 104 default:
103 postscript_level = 0; // Not using postscript. 105 postscript_level = 0; // Not using postscript.
104 } 106 }
105 chrome_pdf::SetPDFPostscriptPrintingLevel(postscript_level); 107 chrome_pdf::SetPDFPostscriptPrintingLevel(postscript_level);
106 108
107 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit); 109 base::File pdf_file = IPC::PlatformFileForTransitToFile(pdf_transit);
108 int page_count = LoadPDF(std::move(pdf_file)); 110 int page_count = LoadPDF(std::move(pdf_file));
109 Send( 111 Send(
110 new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageCount(page_count)); 112 new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageCount(page_count));
111 } 113 }
112 114
113 void PrintingHandler::OnRenderPDFPagesToMetafileGetPage( 115 void PrintingHandler::OnRenderPDFPagesToMetafileGetPage(
114 int page_number, 116 int page_number,
115 IPC::PlatformFileForTransit output_file) { 117 IPC::PlatformFileForTransit output_file) {
116 base::File emf_file = IPC::PlatformFileForTransitToFile(output_file); 118 base::File emf_file = IPC::PlatformFileForTransitToFile(output_file);
117 float scale_factor = 1.0f; 119 float scale_factor = 1.0f;
118 bool postscript = pdf_rendering_settings_.mode == 120 bool postscript =
119 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2 || 121 pdf_rendering_settings_.mode ==
120 pdf_rendering_settings_.mode == 122 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2 ||
121 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3; 123 pdf_rendering_settings_.mode ==
124 PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3 ||
125 pdf_rendering_settings_.mode == PdfRenderSettings::Mode::TEXTONLY;
Lei Zhang 2017/07/05 23:27:08 TEXTONLY is postscript?
rbpotter 2017/07/06 01:31:17 Did this initially to avoid scaling the DC, but th
122 bool success = RenderPdfPageToMetafile(page_number, std::move(emf_file), 126 bool success = RenderPdfPageToMetafile(page_number, std::move(emf_file),
123 &scale_factor, postscript); 127 &scale_factor, postscript);
124 Send(new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageDone( 128 Send(new ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_PageDone(
125 success, scale_factor)); 129 success, scale_factor));
126 } 130 }
127 131
128 void PrintingHandler::OnRenderPDFPagesToMetafileStop() { 132 void PrintingHandler::OnRenderPDFPagesToMetafileStop() {
129 ReleaseProcessIfNeeded(); 133 ReleaseProcessIfNeeded();
130 } 134 }
131 135
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 printer_name, printer_info)); 339 printer_name, printer_info));
336 } else { 340 } else {
337 Send(new ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed( 341 Send(new ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed(
338 printer_name)); 342 printer_name));
339 } 343 }
340 ReleaseProcessIfNeeded(); 344 ReleaseProcessIfNeeded();
341 } 345 }
342 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) 346 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
343 347
344 } // namespace printing 348 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698