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

Unified Diff: printing/printing_context_win.cc

Issue 333993003: Add paper size support for printing to local printer on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Mon 06/16/2014 11:56:53.27 Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « printing/backend/print_backend_win.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: printing/printing_context_win.cc
diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc
index 6d81cd9c94822fbefbcf0203dd7775f8ddf2dc0e..b32b3d2faa07c2afc7338995acd2a69e4565023d 100644
--- a/printing/printing_context_win.cc
+++ b/printing/printing_context_win.cc
@@ -10,6 +10,7 @@
#include "base/message_loop/message_loop.h"
#include "base/metrics/histogram.h"
+#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "printing/backend/print_backend.h"
@@ -343,6 +344,22 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings(
dev_mode->dmFields |= DM_ORIENTATION;
dev_mode->dmOrientation = settings_.landscape() ? DMORIENT_LANDSCAPE :
DMORIENT_PORTRAIT;
+
+ const PrintSettings::RequestedMedia& requested_media =
+ settings_.requested_media();
+ static const int kFromUm = 100; // Windows uses 0.1mm.
+ int width = requested_media.size_microns.width() / kFromUm;
+ int height = requested_media.size_microns.height() / kFromUm;
+ unsigned id = 0;
+ if (base::StringToUint(requested_media.vendor_id, &id) && id) {
+ dev_mode->dmFields |= DM_PAPERSIZE;
+ dev_mode->dmPaperSize = static_cast<short>(id);
+ } else if (width > 0 && height > 0) {
+ dev_mode->dmFields |= DM_PAPERWIDTH;
+ dev_mode->dmPaperWidth = width;
+ dev_mode->dmFields |= DM_PAPERLENGTH;
+ dev_mode->dmPaperLength = height;
+ }
}
// Update data using DocumentProperties.
« no previous file with comments | « printing/backend/print_backend_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698