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

Side by Side Diff: printing/print_settings_conversion.cc

Issue 2795453002: Use DPI from Print Preview on Windows, handle non square (Closed)
Patch Set: 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 int dpi_horizontal = 0;
182 int dpi_vertical = 0;
181 183
182 if (!job_settings.GetBoolean(kSettingCollate, &collate) || 184 if (!job_settings.GetBoolean(kSettingCollate, &collate) ||
183 !job_settings.GetInteger(kSettingCopies, &copies) || 185 !job_settings.GetInteger(kSettingCopies, &copies) ||
184 !job_settings.GetInteger(kSettingColor, &color) || 186 !job_settings.GetInteger(kSettingColor, &color) ||
185 !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) || 187 !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) ||
186 !job_settings.GetBoolean(kSettingLandscape, &landscape) || 188 !job_settings.GetBoolean(kSettingLandscape, &landscape) ||
187 !job_settings.GetString(kSettingDeviceName, &device_name) || 189 !job_settings.GetString(kSettingDeviceName, &device_name) ||
188 !job_settings.GetInteger(kSettingScaleFactor, &scale_factor) || 190 !job_settings.GetInteger(kSettingScaleFactor, &scale_factor) ||
189 !job_settings.GetBoolean(kSettingRasterizePdf, &rasterize_pdf)) { 191 !job_settings.GetBoolean(kSettingRasterizePdf, &rasterize_pdf) ||
192 !job_settings.GetInteger(kSettingDpiHorizontal, &dpi_horizontal) ||
193 !job_settings.GetInteger(kSettingDpiVertical, &dpi_vertical)) {
190 return false; 194 return false;
191 } 195 }
192 196
193 settings->set_collate(collate); 197 settings->set_collate(collate);
194 settings->set_copies(copies); 198 settings->set_copies(copies);
195 settings->SetOrientation(landscape); 199 settings->SetOrientation(landscape);
196 settings->set_device_name(device_name); 200 settings->set_device_name(device_name);
197 settings->set_duplex_mode(static_cast<DuplexMode>(duplex_mode)); 201 settings->set_duplex_mode(static_cast<DuplexMode>(duplex_mode));
198 settings->set_color(static_cast<ColorModel>(color)); 202 settings->set_color(static_cast<ColorModel>(color));
199 settings->set_scale_factor(static_cast<double>(scale_factor) / 100.0); 203 settings->set_scale_factor(static_cast<double>(scale_factor) / 100.0);
200 settings->set_rasterize_pdf(rasterize_pdf); 204 settings->set_rasterize_pdf(rasterize_pdf);
205 settings->set_desired_dpi(dpi_horizontal, dpi_vertical);
201 #if defined(OS_WIN) 206 #if defined(OS_WIN)
202 // Modifiable implies HTML and not other formats like PDF. 207 // Modifiable implies HTML and not other formats like PDF.
203 bool can_modify = false; 208 bool can_modify = false;
204 if (job_settings.GetBoolean(kSettingPreviewModifiable, &can_modify)) 209 if (job_settings.GetBoolean(kSettingPreviewModifiable, &can_modify))
205 settings->set_print_text_with_gdi(can_modify); 210 settings->set_print_text_with_gdi(can_modify);
206 #endif 211 #endif
207 212
208 return true; 213 return true;
209 } 214 }
210 215
(...skipping 23 matching lines...) Expand all
234 job_settings->SetInteger(kSettingCopies, settings.copies()); 239 job_settings->SetInteger(kSettingCopies, settings.copies());
235 job_settings->SetInteger(kSettingColor, settings.color()); 240 job_settings->SetInteger(kSettingColor, settings.color());
236 job_settings->SetInteger(kSettingDuplexMode, settings.duplex_mode()); 241 job_settings->SetInteger(kSettingDuplexMode, settings.duplex_mode());
237 job_settings->SetBoolean(kSettingLandscape, settings.landscape()); 242 job_settings->SetBoolean(kSettingLandscape, settings.landscape());
238 job_settings->SetString(kSettingDeviceName, settings.device_name()); 243 job_settings->SetString(kSettingDeviceName, settings.device_name());
239 244
240 // Following values are not read form JSON by InitSettings, so do not have 245 // Following values are not read form JSON by InitSettings, so do not have
241 // common public constants. So just serialize in "debug" section. 246 // common public constants. So just serialize in "debug" section.
242 base::DictionaryValue* debug = new base::DictionaryValue; 247 base::DictionaryValue* debug = new base::DictionaryValue;
243 job_settings->Set("debug", debug); 248 job_settings->Set("debug", debug);
244 debug->SetInteger("desiredDpi", settings.desired_dpi());
245 debug->SetInteger("dpi", settings.dpi()); 249 debug->SetInteger("dpi", settings.dpi());
246 debug->SetInteger("deviceUnitsPerInch", settings.device_units_per_inch()); 250 debug->SetInteger("deviceUnitsPerInch", settings.device_units_per_inch());
247 debug->SetBoolean("support_alpha_blend", settings.should_print_backgrounds()); 251 debug->SetBoolean("support_alpha_blend", settings.should_print_backgrounds());
248 debug->SetString("media_vendor_od", settings.requested_media().vendor_id); 252 debug->SetString("media_vendor_od", settings.requested_media().vendor_id);
249 SetSizeToJobSettings( 253 SetSizeToJobSettings(
250 "media_size", settings.requested_media().size_microns, debug); 254 "media_size", settings.requested_media().size_microns, debug);
251 SetMarginsToJobSettings("requested_custom_margins_in_points", 255 SetMarginsToJobSettings("requested_custom_margins_in_points",
252 settings.requested_custom_margins_in_points(), 256 settings.requested_custom_margins_in_points(),
253 debug); 257 debug);
254 const PageSetup& page_setup = settings.page_setup_device_units(); 258 const PageSetup& page_setup = settings.page_setup_device_units();
255 SetMarginsToJobSettings( 259 SetMarginsToJobSettings(
256 "effective_margins", page_setup.effective_margins(), debug); 260 "effective_margins", page_setup.effective_margins(), debug);
257 SetSizeToJobSettings("physical_size", page_setup.physical_size(), debug); 261 SetSizeToJobSettings("physical_size", page_setup.physical_size(), debug);
258 SetRectToJobSettings("overlay_area", page_setup.overlay_area(), debug); 262 SetRectToJobSettings("overlay_area", page_setup.overlay_area(), debug);
259 SetRectToJobSettings("content_area", page_setup.content_area(), debug); 263 SetRectToJobSettings("content_area", page_setup.content_area(), debug);
260 SetRectToJobSettings("printable_area", page_setup.printable_area(), debug); 264 SetRectToJobSettings("printable_area", page_setup.printable_area(), debug);
261 } 265 }
262 266
263 } // namespace printing 267 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698