From 5dee6299cc103e5e0bfb138198f2369856ee81a9 Mon Sep 17 00:00:00 2001 From: Scott Byer Date: Tue, 5 May 2015 17:02:40 -0700 Subject: Expose additional flags for rasterization. These flags are unused in Chromium, but are needed for the Cloud Print conversion process, which takes PDF and produces a raster for low-end printers. Certain low-end printers (e.g., B&W laser printers) will turn anti-aliased text into a mess. The existing printing flag isn't sufficient, as other kinds of printers will still want some kinds of anti-aliasing to occur for best results. BUG=482253 TEST=none R=vitalybuka@chromium.org Review URL: https://codereview.chromium.org/1115513002 Patch from Scott Byer . --- fpdfsdk/include/fpdfview.h | 3 +++ fpdfsdk/src/fpdfview.cpp | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/fpdfsdk/include/fpdfview.h b/fpdfsdk/include/fpdfview.h index f9df4083a8..21cddabd9d 100644 --- a/fpdfsdk/include/fpdfview.h +++ b/fpdfsdk/include/fpdfview.h @@ -336,6 +336,9 @@ DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, int page_i #define FPDF_RENDER_LIMITEDIMAGECACHE 0x200 // Limit image cache size. #define FPDF_RENDER_FORCEHALFTONE 0x400 // Always use halftone for image stretching. #define FPDF_PRINTING 0x800 // Render for printing. +#define FPDF_RENDER_NO_SMOOTHTEXT 0x1000 // Set to disable anti-aliasing on text. +#define FPDF_RENDER_NO_SMOOTHIMAGE 0x2000 // Set to disable anti-aliasing on images. +#define FPDF_RENDER_NO_SMOOTHPATH 0x4000 // Set to disable anti-aliasing on paths. #define FPDF_REVERSE_BYTE_ORDER 0x10 //set whether render in a reverse Byte order, this flag only //enable when render to a bitmap. #ifdef _WIN32 diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp index 5df563ffa4..3207ebe336 100644 --- a/fpdfsdk/src/fpdfview.cpp +++ b/fpdfsdk/src/fpdfview.cpp @@ -689,6 +689,12 @@ void FPDF_RenderPage_Retail(CRenderContext* pContext, FPDF_PAGE page, int start_ pContext->m_pOptions->m_Flags |= RENDER_LIMITEDIMAGECACHE; if (flags & FPDF_RENDER_FORCEHALFTONE) pContext->m_pOptions->m_Flags |= RENDER_FORCE_HALFTONE; + if (flags & FPDF_RENDER_NO_SMOOTHTEXT) + pContext->m_pOptions->m_Flags |= RENDER_NOTEXTSMOOTH; + if (flags & FPDF_RENDER_NO_SMOOTHIMAGE) + pContext->m_pOptions->m_Flags |= RENDER_NOIMAGESMOOTH; + if (flags & FPDF_RENDER_NO_SMOOTHPATH) + pContext->m_pOptions->m_Flags |= RENDER_NOPATHSMOOTH; //Grayscale output if (flags & FPDF_GRAYSCALE) { -- cgit v1.2.3