diff options
author | Lei Zhang <thestig@chromium.org> | 2018-04-25 21:10:05 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-25 21:10:05 +0000 |
commit | 9ed6bd7150a9333cb28d149c98e3d316c3ededdf (patch) | |
tree | d8b293aaec7be2acc7645150a194d9625a344758 /core/fxge/win32/fx_win32_print.cpp | |
parent | d7f3f1e1b99f1e10bfce83d779303c678965b57c (diff) | |
download | pdfium-9ed6bd7150a9333cb28d149c98e3d316c3ededdf.tar.xz |
Add PostScript PASSTHROUGH options to FPDF_SetPrintMode().
The existing PostScript modes write data into EMF comments. This
satisfies Chromium's use case, but other embedders want to write data
out via ExtEscape() in PASSTHROUGH mode.
BUG=pdfium:1068
Change-Id: I998035e99fbb84b16dcd244b750b476cecc3bd22
Reviewed-on: https://pdfium-review.googlesource.com/31299
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Diffstat (limited to 'core/fxge/win32/fx_win32_print.cpp')
-rw-r--r-- | core/fxge/win32/fx_win32_print.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/core/fxge/win32/fx_win32_print.cpp b/core/fxge/win32/fx_win32_print.cpp index da40b8a762..f36fa84364 100644 --- a/core/fxge/win32/fx_win32_print.cpp +++ b/core/fxge/win32/fx_win32_print.cpp @@ -334,8 +334,18 @@ CPSPrinterDriver::CPSPrinterDriver(HDC hDC, : m_hDC(hDC), m_bCmykOutput(bCmykOutput) { // |mode| should be PostScript. ASSERT(mode == WindowsPrintMode::kModePostScript2 || - mode == WindowsPrintMode::kModePostScript3); - int pslevel = mode == WindowsPrintMode::kModePostScript2 ? 2 : 3; + mode == WindowsPrintMode::kModePostScript3 || + mode == WindowsPrintMode::kModePostScript2PassThrough || + mode == WindowsPrintMode::kModePostScript3PassThrough); + int pslevel = (mode == WindowsPrintMode::kModePostScript2 || + mode == WindowsPrintMode::kModePostScript2PassThrough) + ? 2 + : 3; + CPSOutput::OutputMode output_mode = + (mode == WindowsPrintMode::kModePostScript2 || + mode == WindowsPrintMode::kModePostScript3) + ? CPSOutput::OutputMode::kGdiComment + : CPSOutput::OutputMode::kExtEscape; m_HorzSize = ::GetDeviceCaps(m_hDC, HORZSIZE); m_VertSize = ::GetDeviceCaps(m_hDC, VERTSIZE); @@ -343,8 +353,8 @@ CPSPrinterDriver::CPSPrinterDriver(HDC hDC, m_Height = ::GetDeviceCaps(m_hDC, VERTRES); m_nBitsPerPixel = ::GetDeviceCaps(m_hDC, BITSPIXEL); - m_PSRenderer.Init(pdfium::MakeRetain<CPSOutput>(m_hDC), pslevel, m_Width, - m_Height, bCmykOutput); + m_PSRenderer.Init(pdfium::MakeRetain<CPSOutput>(m_hDC, output_mode), pslevel, + m_Width, m_Height, bCmykOutput); HRGN hRgn = ::CreateRectRgn(0, 0, 1, 1); int ret = ::GetClipRgn(hDC, hRgn); if (ret == 1) { |