Можно использовать if else fi
блоки вместо этого.
if foocommand; then
# some comments
if foocommand2; then
# more comments
foocommand3
fi
fi
Это немного более читаемо.
Кроме того, можно просто использовать \
повредить Ваш большой 1 лайнер в несколько строк
foocommand && \
# some comment
foocommand2 && \
# more comment
foocommand3
Но конечно это может сбивать с толку нетренированный глаз.
Используя собственный Adobe Acrobat Reader
Удостоверьтесь, что основная панель инструментов видима путем щелчка правой кнопкой по пустой области панели инструментов и размещения галочки рядом с Основным, если она уже не включена.
Найдите "Инструмент Снимка" на панели инструментов Basic и выберите его.
Перетащите поле вокруг области, которую Вы хотите распечатать. Сообщение предупредит Вас, что выбор был скопирован в буфер обмена. Нажмите "OK" и Вы будете видеть пунктирную линию вокруг области, которую Вы просто выбрали.
Нажмите Print.
В диалоговом окне печати, набор гнев печати к "Выбранной диаграмме".
Если Вы хотите распечатать выбор в его намеченном размере, установите Страницу, Масштабирующуюся ни на "Один".
Если Вы хотите, чтобы выбор заполнил бумагу, установите страницу, масштабирующуюся для "Установки бумаге". Вы, возможно, должны проверить флажок "Auto-Rotate and Center" для максимизации бумажного использования.
Когда Вы удовлетворены предварительным просмотром, нажимаете "OK" для печати документа.
Если бы только необходимо сделать это однажды и для единственной страницы, я просто открыл бы PDF with GIMP и скопировал бы верхнюю половину:
gimp 150264785-test-pdf.pdf
Это поднимет экран, прося, чтобы Вы к выбрали страницы, которые Вы хотите импортировать:
Импортируйте 1-ю страницу, затем просто используйте GIMP, чтобы выбрать и сократить регион, которым Вы интересуетесь, вставляете его как новое изображение и экспортируете в PDF снова.
Это - половина un2up
(по модулю вращение). Так, с Python и pyPdf
библиотека:
#!/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())]:
(w, h) = p.mediaBox.upperLeft
p.mediaBox.lowerLeft = (w, h/2)
output.addPage(p)
output.write(sys.stdout)
Используя pyPdf 1.13
#!/usr/bin/env python
импортная копия, sys из pyPdf импорт PdfFileWriter, PdfFileReader
вход = PdfFileReader(sys.stdin)
output = PdfFileWriter()
для p в [input.getPage(i) для i в диапазоне(0,input.getNumPages())]:
q = copy.copy(p)
(w, h) = p.mediaBox.upperRight
p.mediaBox.upperRight = (w, h/2)
q.mediaBox.lowerRight = (w, h/2)
output.addPage(p)
output.addPage(q)
output.write(sys.stdout)
Поскольку от pyPdf отказались, я обновил его, чтобы использовать форк PyPDF2, который официально рекомендуется
This page is no longer updated. I've stopped maintaining pyPdf, and a company named Phaseit has forked the project and continued development and maintenance with my blessing as pyPdf2 ( http://knowah.github.com/PyPDF2/).
Кроме того, поскольку я хотел обернуть его в сценарий оболочки, я использовал аргументы строки команды -.
#!env python
import copy, sys
from PyPDF2 import PdfFileWriter, PdfFileReader
input = PdfFileReader(open(sys.argv[1], 'rb'))
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0, input.getNumPages())]:
(w, h) = p.mediaBox.upperLeft
p.mediaBox.lowerLeft = (w, h/2)
output.addPage(p)
output.write(open(sys.argv[2], 'wb'))