Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:smarty12:Python
pdfposter
0001-Add-trimbox-option.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Add-trimbox-option.patch of Package pdfposter
From f29a324884d99c8cddc5271a77bf44737cf67517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf@suse.de> Date: Mon, 29 Feb 2016 12:58:18 +0100 Subject: [PATCH 1/4] Add --trimbox option --- pdfposter.rst | 4 ++++ pdftools/pdfposter/__init__.py | 13 ++++++++----- pdftools/pdfposter/cmd.py | 2 ++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pdfposter.rst b/pdfposter.rst index 4190c0b15c2e..9b151b28905c 100644 --- a/pdfposter.rst +++ b/pdfposter.rst @@ -67,6 +67,10 @@ General Options pages. Can be used more than once to increase the verbosity. -n, --dry-run Show what would have been done, but do not generate files. +-t, --trimpage Save the minimal bounding box with each page. This option is + only optional in version 0.6.0dev.jw; older versions always + trim their output pages. With -t, printers may center the + pages (giving unpredictable margins). Defining Input diff --git a/pdftools/pdfposter/__init__.py b/pdftools/pdfposter/__init__.py index 263aec4ddba6..9e22330cd4a2 100755 --- a/pdftools/pdfposter/__init__.py +++ b/pdftools/pdfposter/__init__.py @@ -256,7 +256,7 @@ def _scale_pdf_page(outpdf, page, factor): page[NameObject('/Contents')] = outpdf._addObject(content) -def posterize(outpdf, page, mediabox, posterbox, scale, use_ArtBox=False): +def posterize(outpdf, page, mediabox, posterbox, scale, use_ArtBox=False, trimpage=False): """ page: input page mediabox : size secs of the media to print on @@ -298,9 +298,12 @@ def posterize(outpdf, page, mediabox, posterbox, scale, use_ArtBox=False): newpage.mediaBox = RectangleObject((h_pos, v_pos, h_pos + h_step, v_pos + v_step)) - newpage.trimBox = RectangleObject((h_pos, v_pos, - min(h_max, h_pos + h_step), - min(v_max, v_pos + v_step))) + if trimpage: + newpage.trimBox = RectangleObject((h_pos, v_pos, + min(h_max, h_pos + h_step), + min(v_max, v_pos + v_step))) + else: + newpage.trimBox = newpage.mediaBox newpage.artBox = newpage.trimBox outpdf.addPage(newpage) v_pos -= v_step @@ -341,7 +344,7 @@ def main(opts, infilename, outfilename, password_hook=password_hook): page = inpdf.getPage(i) log(19, '---- processing page %i -----', i+1) posterize(outpdf, page, opts.media_size, opts.poster_size, opts.scale, - opts.use_ArtBox) + opts.use_ArtBox, opts.trimpage) if not opts.dry_run: outpdf.write(open(outfilename, 'wb')) diff --git a/pdftools/pdfposter/cmd.py b/pdftools/pdfposter/cmd.py index 2b13a90c9016..8588c9575906 100644 --- a/pdftools/pdfposter/cmd.py +++ b/pdftools/pdfposter/cmd.py @@ -84,6 +84,8 @@ def run(): help='Be verbose. Tell about scaling, rotation and number of pages. Can be used more than once to increase the verbosity. ') parser.add_option('-n', '--dry-run', action='store_true', help='Show what would have been done, but do not generate files.') + parser.add_option('-t', '--trimpage', action='store_true', + help='Save the minimal bounding box with each page. Default: entire pages.') group = parser.add_option_group('Define Input') group.add_option('-f', '--first', type=int, dest='first_page', -- 2.7.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor