Преобразуйте PDF 2 стороны на страницу 1 стороне на страницу

Как я могу преобразовать PDF с 2 сторонами на страницу 1 стороне на страницу?

11
задан 12.10.2009, 00:15

3 ответа

Хорошо, проблема была уже решена с помощью Acrobat (полная версия, не Читатель). Но что сделать, если у Вас нет доступа к Acrobat? Это могло быть сделано с Ghostscript и pdftk также?

Как решить это с помощью Ghostscript...

... и ради удовольствия, давайте не использовать входной файл с "двойными" страницами, но один с "тройным". На самом деле я получил один такой PDF сегодня по электронной почте. Это был флаер, свернутый в Схеме Leporello. Размер листа был средой A4 (842 ПБ x 595 ПБ), и это было свернуто и layed как это:

Front side to be printed, page 1 of PDF
+--------+--------+--------+   ^
|        |        |        |   |
|   5    |   6    |   1    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
         ^        ^
        fold     fold
         v        v
+--------+--------+--------+   ^
|        |        |        |   |
|   2    |   3    |   4    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
Back side to be printed, page 2 of PDF
<---------- 842 pt -------->

Я хочу создать 1 PDF с 6 страницами, каждая из которых имеет необычный размер 280.67 ПБ x 595 ПБ.

Первый шаг

Давайте сначала извлечем левые разделы из каждой из входных страниц:

gswin32c.exe ^
    -o left-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f myflyer.pdf

Что делали эти параметры?

  • -o ...............: Выходной файл имен. Implicitely также использует -dBATCH -dNOPAUSE -dSAFER.
  • -sDEVICE=pdfwrite : мы хотим PDF как выходной формат.
  • -g................: наборы производят размер медиа в пикселях. разрешение pdfwrite по умолчанию составляет 720 точек на дюйм. Следовательно умножьтесь на 10 для получения достойными PageOffset.
  • -c "..............: просит Ghostscript обрабатывать данный фрагмент кода PostScript незадолго до основного входного файла (который должен следовать с -f).
  • <</PageOffset ....: смещение наборов страницы отображает на носителе. (Конечно, для левых страниц сдвиг на [0 0] не имеет никакого реального эффекта.)
  • -f ...............: обработайте этот входной файл.

Какого результата последняя команда достигала?

Этот:

Output file: left-sections.pdf, page 1
+--------+  ^
|        |  |
|   5    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: right-sections.pdf, page 2
+--------+  ^
|        |  |
|   2    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Второй шаг

Теперь давайте сделаем аналогичную вещь для центральных секций:

gswin32c.exe ^
    -o center-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [280.67 0]>> setpagedevice" ^
    -f myflyer.pdf

Результат:

Output file: center-sections.pdf, page 1
+--------+  ^
|        |  |
|   6    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: center-sections.pdf, page 2
+--------+  ^
|        |  |
|   3    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Третий шаг

Наконец, правильные разделы:

gswin32c.exe ^
    -o right-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [561.34 0]>> setpagedevice" ^
    -f myflyer.pdf

Результат:

Output file: right-sections.pdf, page 1
+--------+  ^
|        |  |
|   1    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: right-sections.pdf, page 2
+--------+  ^
|        |  |
|   4    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Последний шаг

Теперь мы комбинируем страницы в один файл:

pdftk.exe ^
  A=right-sections.pdf ^
  B=center-sections.pdf ^
  C=left-sections.pdf ^
  cat A1 B2 C2 A2 B1 C1 ^
  output single-files-input.pdf
  verbose

Готово. Вот желаемый результат. 6 различных страниц, измеренных 280.67x595.

Результат:

+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   ^
|        |  |        |  |        |  |        |  |        |  |        |   |
|   1    |  |   2    |  |   3    |  |   4    |  |   5    |  |   6    |   |
|        |  |        |  |        |  |        |  |        |  |        | 595 pt
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   v
< 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt > 
22
ответ дан 07.12.2019, 12:11

Вы могли копировать документ, затем обрезать страницы так, чтобы только числа четной страницы показали в одном файле и только нечетных номерах страниц в другом. Затем разделите файлы на единственные страницы и переобъединение для создания одного документа с единственными сторонами к странице...

Можно сделать это использование многих методов, например:

  1. Используйте инструмент обрезки Adobe Acrobat, чтобы обрезать одну сторону двойной страницы и применить обрезку ко всем страницам.
  2. Разделите файлы к отдельным страницам с помощью 'пакетную' команду в pdftoolkit
  3. Переименуйте файлы последовательное использование инструмента переименования файла (например, ReNamer)
  4. Повторно объедините страницы с помощью команды 'кошки' в pdftoolkit
2
ответ дан 07.12.2019, 12:11

@peims, спасибо. Вот пошаговая версия Вашего метода. Я попробовал его на файле, который я хотел преобразовать для своего Kindle DX, и это работает отлично:

  • Используйте полную версию Acrobat v9, чтобы обрезать левую сторону страницы и сохранить его как "left.pdf":
    • Используйте инструмент обрезки для маркировки левой стороны страницы.
    • Щелкните правой кнопкой, и избранный "Набор Cropbox".
    • Выберите "Документ.. Страницы обрезки", и применяют обрезку к целому документу.
  • Повторитесь с правыми страницами, сохраните как "right.pdf".
  • На данном этапе у Вас есть два документа: "left.pdf" с левыми страницами и "right.pdf" с правыми страницами.

Затем, используйте pdftk.exe (из http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) для чередования результатов в единственный файл. Скопируйте "pdftk.exe", "left.pdf" и "right.pdf" к к "D:\", и выполнитесь:

  • D:> pdftk D:\left.pdf пакет производит %05d_A.pdf
  • D:> pdftk D:\right.pdf пакет производит %05d_B.pdf
  • D:> pdftk кошка *_?.pdf производит combined.pdf

Примечание: при копировании файлов в "C:\" он не будет работать под Win 7 из-за прав доступа. Если у Вас нет D:\, то создайте каталог "C:\x" для завершения операции.

Эти результаты обычно были бы достаточно хороши. Однако существует еще два дополнительных шага для улучшения вывода.

  • (дополнительный заключительный шаг 1) На данном этапе, документ огромен (мой документ увеличился от 7 МБ до 80 МБ), таким образом, можно уменьшить размер файла при помощи также:
    • "Оптимизатор Advanced..PDF", или:
    • "Усовершенствованный.. Предварительный полет" с установкой "Compatible with Acrobat 5".
  • (дополнительный заключительный шаг 2), страницы являются всеми различными размерами. Повторите обрезку на всех страницах, таким образом, все - универсальный размер.
3
ответ дан 07.12.2019, 12:11

Теги

Похожие вопросы