Вот маленький сценарий Python, пользующийся библиотекой PyPdf, которая делает задание аккуратно. Сохраните его в названном сценарии un2up
(или независимо от того, что Вам нравится), сделайте это исполняемым файлом (chmod +x un2up
), и выполненный это как фильтр (un2up <2up.pdf >1up.pdf
).
#!/usr/bin/env python
import copy, 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())]:
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)
Проигнорируйте любые предупреждения депрекации; только специалисты по обслуживанию PyPdf должны касаться тех.
Если вход ориентирован необычным способом, Вы, возможно, должны использовать различные координаты при усечении страниц. Посмотрите, Почему мой код не правильно разделил каждую страницу в просканированном PDF?
На всякий случай это полезно, вот мой более ранний ответ, который использует комбинацию двух инструментов плюс некоторое ручное вмешательство:
Оба инструмента необходимы, потому что насколько я могу сказать, pdfpages не может применить два различных преобразования к той же странице в одном потоке. В вызове к pdftk
, замените 42 числом страниц во входном документе (2up.pdf
).
pdfjam -o odd.pdf --trim '0cm 0cm 14.85cm 0cm' --scale 1.141 2up.pdf
pdfjam -o even.pdf --trim '14.85cm 0cm 0cm 0cm' --scale 1.141 2up.pdf
pdftk O=odd.pdf E=even.pdf cat $(i=1; while [ $i -le 42 ]; do echo O$i E$i; i=$(($i+1)); done) output all.pdf
В случае, если у Вас нет pdfjam 2.0, достаточно иметь установку PDFLaTeX с pdfpages пакетом (на Ubuntu: Вам нужен texlive-latex-recommended и возможно (на Ubuntu: texlive-fonts-recommended ), и использование следующий файл драйвера driver.tex
:
\batchmode
\documentclass{minimal}
\usepackage{pdfpages}
\begin{document}
\includepdfmerge[trim=0cm 0cm 14.85cm 0cm,scale=1.141]{2up.pdf,-}
\includepdfmerge[trim=14.85cm 0cm 0cm 0cm,scale=1.141]{2up.pdf,-}
\end{document}
Затем выполните следующие команды, заменив 42 числом страниц во входном файле (который нужно назвать 2up.pdf
):
pdflatex driver
pdftk driver.pdf cat $(i=1; pages=42; while [ $i -le $pages ]; do echo $i $(($pages+$i)); i=$(($i+1)); done) output 1up.pdf
Выполнитесь:
grep flags /proc/cpuinfo
Найдите флаг 'lm'. Если это присутствует, это означает, что Ваш ЦП составляет 64 бита, и это поддерживает ОС на 64 бита. 'lm' обозначает длинный режим.
С другой стороны, выполнитесь:
grep flags /proc/cpuinfo | grep " lm "
Отметьте пробелы в " lm "
. Если это дает вывод вообще, Ваш ЦП составляет 64 бита.
Обновление: можно использовать следующее в терминале также:
lshw -C processor | grep width
Это работает над Ubuntu, не уверенной, если необходимо установить дополнительные пакеты для Fedora.
Если Ваш ЦП является на 64 бита (x86-64), можно использовать его с ОС на 64 бита.
Вот список центральных процессоров на 64 бита: http://en.wikipedia.org/wiki/64-bit#Current_64-bit_microprocessor_architectures
lscpu
так просто. Если они не имеют lscpu
управляйте затем, что я видел, почему они голосовали за другого.
– trusktr
04.01.2014, 23:12
Не полагайтесь на ответы на этот вопрос с высокими оценками, потому что эти методы не всегда верны.
У меня есть компьютер с процессором Intel Atom N230, который, согласно всем упомянутым тестам, способен поддерживать 64-битные ОС.
Согласно http://en.wikipedia.org/wiki/Intel_Atom#32-bit_and_64-bit_hardware_support
ЦП не может работать с 64-битными ОС.
I ' Я пытался установить 64-битную ОС Linux, но она действительно отказывается это делать. Установка 32-битной ОС Linux работает.
a través de este comando dmidecode -t processor
podemos verificar la capacidad del procesador.