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

Side by Side Diff: printing/print_settings_conversion.cc

Issue 2795453002: Use DPI from Print Preview on Windows, handle non square (Closed)
Patch Set: Rebase Created 3 years, 8 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 "printing/print_settings_conversion.h" 5 #include "printing/print_settings_conversion.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 settings->set_ranges(new_ranges); 171 settings->set_ranges(new_ranges);
172 172
173 int color = 0; 173 int color = 0;
174 bool landscape = false; 174 bool landscape = false;
175 int duplex_mode = 0; 175 int duplex_mode = 0;
176 base::string16 device_name; 176 base::string16 device_name;
177 bool collate = false; 177 bool collate = false;
178 int copies = 1; 178 int copies = 1;
179 int scale_factor = 100; 179 int scale_factor = 100;
180 bool rasterize_pdf = false; 180 bool rasterize_pdf = false;
181
182 if (!job_settings.GetBoolean(kSettingCollate, &collate) || 181 if (!job_settings.GetBoolean(kSettingCollate, &collate) ||
183 !job_settings.GetInteger(kSettingCopies, &copies) || 182 !job_settings.GetInteger(kSettingCopies, &copies) ||
184 !job_settings.GetInteger(kSettingColor, &color) || 183 !job_settings.GetInteger(kSettingColor, &color) ||
185 !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) || 184 !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) ||
186 !job_settings.GetBoolean(kSettingLandscape, &landscape) || 185 !job_settings.GetBoolean(kSettingLandscape, &landscape) ||
187 !job_settings.GetString(kSettingDeviceName, &device_name) || 186 !job_settings.GetString(kSettingDeviceName, &device_name) ||
188 !job_settings.GetInteger(kSettingScaleFactor, &scale_factor) || 187 !job_settings.GetInteger(kSettingScaleFactor, &scale_factor) ||
189 !job_settings.GetBoolean(kSettingRasterizePdf, &rasterize_pdf)) { 188 !job_settings.GetBoolean(kSettingRasterizePdf, &rasterize_pdf)) {
190 return false; 189 return false;
191 } 190 }
191 #if defined(OS_WIN)
192 int dpi_horizontal = 0;
193 int dpi_vertical = 0;
194 if (!job_settings.GetInteger(kSettingDpiHorizontal, &dpi_horizontal) ||
195 !job_settings.GetInteger(kSettingDpiVertical, &dpi_vertical)) {
196 return false;
197 }
198 #endif
192 199
193 settings->set_collate(collate); 200 settings->set_collate(collate);
194 settings->set_copies(copies); 201 settings->set_copies(copies);
195 settings->SetOrientation(landscape); 202 settings->SetOrientation(landscape);
196 settings->set_device_name(device_name); 203 settings->set_device_name(device_name);
197 settings->set_duplex_mode(static_cast<DuplexMode>(duplex_mode)); 204 settings->set_duplex_mode(static_cast<DuplexMode>(duplex_mode));
198 settings->set_color(static_cast<ColorModel>(color)); 205 settings->set_color(static_cast<ColorModel>(color));
199 settings->set_scale_factor(static_cast<double>(scale_factor) / 100.0); 206 settings->set_scale_factor(static_cast<double>(scale_factor) / 100.0);
200 settings->set_rasterize_pdf(rasterize_pdf); 207 settings->set_rasterize_pdf(rasterize_pdf);
201 #if defined(OS_WIN) 208 #if defined(OS_WIN)
202 // Modifiable implies HTML and not other formats like PDF. 209 // Modifiable implies HTML and not other formats like PDF.
203 bool can_modify = false; 210 bool can_modify = false;
204 if (job_settings.GetBoolean(kSettingPreviewModifiable, &can_modify)) 211 if (job_settings.GetBoolean(kSettingPreviewModifiable, &can_modify))
205 settings->set_print_text_with_gdi(can_modify); 212 settings->set_print_text_with_gdi(can_modify);
213 settings->set_dpi(dpi_horizontal, dpi_vertical);
206 #endif 214 #endif
207 215
208 return true; 216 return true;
209 } 217 }
210 218
211 void PrintSettingsToJobSettingsDebug(const PrintSettings& settings, 219 void PrintSettingsToJobSettingsDebug(const PrintSettings& settings,
212 base::DictionaryValue* job_settings) { 220 base::DictionaryValue* job_settings) {
213 job_settings->SetBoolean(kSettingHeaderFooterEnabled, 221 job_settings->SetBoolean(kSettingHeaderFooterEnabled,
214 settings.display_header_footer()); 222 settings.display_header_footer());
215 job_settings->SetString(kSettingHeaderFooterTitle, settings.title()); 223 job_settings->SetString(kSettingHeaderFooterTitle, settings.title());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 const PageSetup& page_setup = settings.page_setup_device_units(); 261 const PageSetup& page_setup = settings.page_setup_device_units();
254 SetMarginsToJobSettings( 262 SetMarginsToJobSettings(
255 "effective_margins", page_setup.effective_margins(), debug); 263 "effective_margins", page_setup.effective_margins(), debug);
256 SetSizeToJobSettings("physical_size", page_setup.physical_size(), debug); 264 SetSizeToJobSettings("physical_size", page_setup.physical_size(), debug);
257 SetRectToJobSettings("overlay_area", page_setup.overlay_area(), debug); 265 SetRectToJobSettings("overlay_area", page_setup.overlay_area(), debug);
258 SetRectToJobSettings("content_area", page_setup.content_area(), debug); 266 SetRectToJobSettings("content_area", page_setup.content_area(), debug);
259 SetRectToJobSettings("printable_area", page_setup.printable_area(), debug); 267 SetRectToJobSettings("printable_area", page_setup.printable_area(), debug);
260 } 268 }
261 269
262 } // namespace printing 270 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698