2015-01-29

RHEL7: pdftops が両面印刷できないPSを生成する

RHEL6 では,
$ lpr a.pdf
$ pdftops a.pdf -| lpr
によってPDFを印刷できた. しかし, RHEL7でこの方法を使うと, 印刷はできるものの, 両面に設定しても, 片面で印刷されてしまう. どうやら, 出力されるPSの上の方に, pdfSetupPaper というマクロがあるのだが, この実装が悪いらしい. 1ページごとにページサイズを設定するのだが, ページサイズが設定されるとプリンタが両面印刷せずに排紙してしまうようだ.

もうすぐパッチが適用されると思うのだが, 待ちきれなかったので, 自分でビルドしてしまった.

対処1: sedでページを設定する pdfSetupPaper を除去する. 以下のコマンドを pdftops と lpr の間にいれる.

sed -e "s/ pdfSetupPaper/ pop pop/"

Popplerのバグジラで議論されているが, そのパッチを適用する. 他にもいろいろなパッチが出ていたのだが, pdfSetupPaper のパッチだけにした.

$ yumdownloader --source poppler
$ rpm -ivh poppler-0.22.5-6.el7.src.rpm
$ cd ~/rpmbuild/SOURCES/
$ wget -O poppler-pdfSetupPaper.patch https://bugs.freedesktop.org/attachment.cgi?id=91005
$ cd ../SPECS/
$ vim poppler.spec
$ rpmbuild -ba poppler.spec
$ cd ..
$ sudo rpm -Uvh RPM/x86_64/poppler*.rpm

以下にspecファイルの更箇所を示す.

--- poppler-orig.spec 2014-02-15 01:11:43.000000000 +0900
+++ poppler.spec 2015-01-31 00:08:23.569595075 +0900
@@ -1,7 +1,7 @@
 Summary: PDF rendering library
 Name: poppler
 Version: 0.22.5
-Release: 6%{?dist}
+Release: 6%{?dist}a
 License: (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+ and MIT
 Group: Development/Libraries
 URL:     http://poppler.freedesktop.org/
@@ -16,6 +16,9 @@
 # https://bugzilla.redhat.com/show_bug.cgi?id=1053616
 Patch2:  poppler-0.22.5-rotated-words-selection.patch
 
+# https://bugs.freedesktop.org/attachment.cgi?id=91005
+Patch3: poppler-pdfSetupPaper.patch
+
 Requires: poppler-data >= 0.4.0
 BuildRequires: automake libtool
 BuildRequires: gettext-devel
@@ -134,6 +137,7 @@
 %patch0 -p1 -b .CVE-2013-4473
 %patch1 -p1 -b .CVE-2013-4474
 %patch2 -p1 -b .rotated-word-selection
+%patch3 -p1 -b .duplex
 
 iconv -f iso-8859-1 -t utf-8 < "utils/pdftohtml.1" > "utils/pdftohtml.1.utf8"
 mv "utils/pdftohtml.1.utf8" "utils/pdftohtml.1"
@@ -256,3 +260,6 @@
 
 
 %changelog
+* Thu Jan 1 2015 My Name  - 0.22.5-6a
+- pdfSetupPaper macro modified
+

0 件のコメント:

コメントを投稿