convert
を使用して次の操作を行うのに問題があります。
ジオメトリが横向きのA4シートに対応する単一ページのPDFファイルがたくさんあります。実際のコンテンツは視覚的に2ページに分割されています。私がこれらの各ファイルでやろうとしていることは、基本的には次のとおりです。A3にサイズ変更し、実際には中央で垂直に分割して2ページを取得します(convert
のcrop
を試しましたが失敗しました) 、次に、2つのA4縦向きページで構成される2ページのpdfファイルとして再アセンブルします。
最終的なコンテンツは、係数sqrt(2)
でサイズ変更された元のコンテンツである必要があります。
[ ] -> [ ] -> [ | ]
[ ] [ | ]
A4 A3 2xA4
lands. lands. portrait
これの全体的な目的は、サイズ変更されたコンテンツを1つの横向きA4ではなく2つの縦向きA4シートとして印刷できるようにすることですが、実際に新しいpdfファイルを作成する方が、直接印刷するよりも優れています。いつでも再印刷して他の人と共有できるからです。その後、意図したとおりに直接印刷できるようになります。
これが un2up
、Python with pyPdf
library を使用します。少なくともバージョン1.13が必要です(以前のバージョンはスケーリングをサポートしていませんでした)。 )。テストされていません。
#!/usr/bin/env python
import copy, math, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
p.scaleBy(math.sqrt(2))
q = copy.copy(p)
(w, h) = p.mediaBox.upperRight
p.mediaBox.upperRight = (w/2, h)
q.mediaBox.upperLeft = (w/2, h)
output.addPage(p)
output.addPage(q)
output.write(sys.stdout)
@Stoneの回答で参照されている別のQ/A内のリンクをたどって見つかった、 superuser.comのこの質問 への回答に基づいてgs
ソリューションを使用して元の問題を解決することができました。現在の質問に。
スクリプトに入れる方法は次のとおりです。
#!/bin/bash
################################################################
# Make two portrait A4 sheets out of one landscape A4 sheet, by
# splitting and resizing adequately
################################################################
# solution based on:
# https://superuser.com/questions/235074/freeware-to-split-a-pdfs-pages-down-the-middle/235401#235401
################################################################
IN=$1
OUT=$2
TMPLEFT=/tmp/left.pdf
TMPRIGHT=/tmp/right.pdf
# left side
gs -o $TMPLEFT -sDEVICE=pdfwrite -g5955x8420 -c "<</PageOffset [0 0]>>" setpagedevice -f $IN
# right side
gs -o $TMPRIGHT -sDEVICE=pdfwrite -g5955x8420 -c "<</PageOffset [-595.5 0]>>" setpagedevice -f $IN
# join
pdfunite $TMPLEFT $TMPRIGHT $OUT
もっと簡単な方法があるはずだと思いますが、これは機能し、ImageMagick convert
の欠点を回避します。
11x17から8.5x11の数ページの場合、Adobe AcrobatProツールを使用すると簡単です。
開く元のファイル、
設定横向きに。
保存別の名前のファイル(「元のv2p1.pdf」のように言う)
選択 [詳細設定]タブ
選択 "印刷物の作成"
選択 "クロップページ"
切り抜きページの右側または左側の半分。
保存ファイル( "元のv2p1.pdf)。これでページ1ができました。
Open "Original.pdf、オリジナル。
保存別の名前が関連付けられたファイル(2ページ目は「元のv2p2.pdf」の場合があります)
Crop反対側からページの半分。
保存ファイル( "元のv2p2.pdf)。これで2ページ目です。
私はpsutilsの一部であるpsnupが好きです。これがあなたが探していることを達成するための方法です: