From e541dc698f38aaa522f99e23b57c695da2981c29 Mon Sep 17 00:00:00 2001 From: Till Kamppeter Date: Sat, 5 Feb 2022 15:34:21 -0300 Subject: [PATCH] libcupsfilters: In pdftopdf() add 2% tolerance for input size larger output page When "print-scaling=auto" or "print-scaling=auto-fit" is used, the input pages are scaled when they do not fit into the output page size. Often input ad out page sizes are supposed to be equal, for example both A4, but rounding errors could make the input considered larger and unnecessarily scaled. Therefore we add 2% of tolerance before considering an input page too large. --- cupsfilters/pdftopdf/pdftopdf_processor.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cupsfilters/pdftopdf/pdftopdf_processor.cc b/cupsfilters/pdftopdf/pdftopdf_processor.cc index 83f84777d..0be531387 100644 --- a/cupsfilters/pdftopdf/pdftopdf_processor.cc +++ b/cupsfilters/pdftopdf/pdftopdf_processor.cc @@ -228,8 +228,8 @@ bool processPDFTOPDF(PDFTOPDF_Processor &proc,ProcessingParameters ¶m,pdftop for (int i = 0; i < (int)input_page_range_list.size(); i ++) { PageRect r = input_page_range_list[i]->getRect(); - int w = r.width; - int h = r.height; + int w = r.width * 100 / 102; // 2% of tolerance + int h = r.height * 100 / 102; if ((w > param.page.width || h > param.page.height) && (h > param.page.width || w > param.page.height)) { -- 2.47.3