Package: pdfedit
Version: 0.4.5-1db1
Severity: normal
Tags: upstream patch
Hi Varun;
pdfedit cuts off wide text on rotated pages. Luckily upstream recently
fixed this bug in CVS. I have extracted the patch from CVS, and
rebuilt pdfedit with it. It seems to cause no harm, and fix the bug.
Would you mind carrying this patch in debian until upstream does
another release?
David
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (900, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages pdfedit depends on:
ii libc6 2.11.2-6 Embedded GNU C Library: Shared lib
ii libfreetype6 2.4.2-1 FreeType 2 font engine, shared lib
ii libgcc1 1:4.4.4-8 GCC support library
ii libqt3-mt 3:3.3.8b-7+b1 Qt GUI Library (Threaded runtime v
ii libstdc++6 4.4.4-8 The GNU Standard C++ Library v3
ii libx11-6 2:1.3.3-3 X11 client-side library
ii libxext6 2:1.1.2-1 X11 miscellaneous extension librar
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
pdfedit recommends no packages.
pdfedit suggests no packages.
-- no debconf information
commit 450da4b84eeaa9614e5cbc73957ff165d1dda974
Author: misuj1am <misuj1am>
Date: Fri Jul 30 07:31:13 2010 +0000
use page media box/rotation when getting text from a page instead of
relying on the default values.
diff --git a/src/kernel/cpagecontents.cc b/src/kernel/cpagecontents.cc
index bf2240e..3bc8d63 100644
--- a/src/kernel/cpagecontents.cc
+++ b/src/kernel/cpagecontents.cc
@@ -400,6 +400,12 @@ CPageContents::getText (std::string& text, const string*
encoding, const libs::R
// Get the text
libs::Rectangle rec = (rc)? *rc : _page->display()->getPageRect();
+ // if we use rotation 90,270 then we must change the rectangle from
which we want the text
+ // accordingly (TODO - verify for all rotations)
+ int rot = _page->getRotation ();
+ if (90 == rot || 270 == rot)
+ std::swap (rec.xright, rec.yright);
+
scoped_ptr<GString> gtxt (textDev->getText(rec.xleft, rec.yleft,
rec.xright, rec.yright));
text = gtxt->getCString();
}
diff --git a/src/tools/pdf_to_text.cc b/src/tools/pdf_to_text.cc
index dcf8626..97d2f4d 100644
--- a/src/tools/pdf_to_text.cc
+++ b/src/tools/pdf_to_text.cc
@@ -47,6 +47,14 @@ namespace {
struct _textify {
string operator () (shared_ptr<CPage> page)
{
+ // Update display params to use media box not default
page rect (DEFAULT_PAGE_RX, DEFAULT_PAGE_RY)
+ // TODO upsidedown? get/set
+ DisplayParams dp;
+ dp.useMediaBox = gTrue;
+ dp.crop = gFalse;
+ dp.rotate = page->getRotation ();
+ page->setDisplayParams (dp);
+
string text;
static const std::string encoding="UTF-8";
page->getText (text, &encoding);