Обрезка PDF с использованием Ghostscript 9.01 - PullRequest
35 голосов
/ 31 мая 2011

Я не программист, но хотел бы научиться обрезать PDF-файл с помощью Ghostscript.

Я установил Ghostscript 9.01 на своем компьютере.

Пожалуйста, проведите меня пошаговым процессом(начиная с вызова Ghostscript), чтобы обрезать PDF с конкретными координатами.

Я даже новичок в Ghostscript.

1 Ответ

63 голосов
/ 31 мая 2011

Во-первых, обратите внимание, что единица измерения для PDF такая же, как и для PostScript: она называется точка [pt].

72 points == 1 inch == 25.4 millimeters

Предполагается, что у вас размер страницы А4.Тогда размеры носителя:

595 points width  == 210 millimeters
842 points height == 297 millimeters

Если вы хотите обрезать:

   left edge: 24 points == 1/3 inch ~=  8.5 millimeters
  right edge: 36 points == 1/2 inch ~= 12.7 millimeters
    top edge: 48 points == 2/3 inch ~= 17.0 millimeters
 bottom edge: 72 points ==   1 inch ~= 25.4 millimeters

Тогда ваша командная строка Ghostscript будет такой (в Windows):

gswin32c.exe                     ^
  -o cropped.pdf                 ^
  -sDEVICE=pdfwrite              ^
  -c "[/CropBox [24 72 559 794]" ^
  -c " /PAGES pdfmark"           ^
  -f uncropped-input.pdf

Или в Linux:

gs                               \
  -o cropped.pdf                 \
  -sDEVICE=pdfwrite              \
  -c "[/CropBox [24 72 559 794]" \
  -c " /PAGES pdfmark"           \
  -f uncropped-input.pdf

Однако это может работать не надежно для всех типов PDF [1] .В этих случаях вы должны попробовать следующие команды:

gswin32c.exe                 ^
  -o cropped.pdf             ^
  -sDEVICE=pdfwrite          ^
  -dDEVICEWIDTHPOINTS=595    ^
  -dDEVICEHEIGHTPOINTS=842   ^
  -dFIXEDMEDIA               ^
  -c "24 72 translate"       ^
  -c " 0 0 535 722 rectclip" ^
  -f uncropped-input.pdf

или

gs                           \
  -o cropped.pdf             \
  -sDEVICE=pdfwrite          \
  -dDEVICEWIDTHPOINTS=595    \
  -dDEVICEHEIGHTPOINTS=842   \
  -dFIXEDMEDIA               \
  -c "24 72 translate"       \
  -c " 0 0 535 722 rectclip" \
  -f uncropped-input.pdf

[^] : Чтобы быть более конкретным: он не будет работать для PDF-файлов, которые имеют собственные /CropBox, уже определенные для определенных значений.Грязный хак, который заключается в том, чтобы изменить строку /CropBox для всех страниц, где это требуется, на /cROPBoX (или аналогичное изменение регистра) с помощью текстового редактора до запуска вышеуказанной команды GS.Изменение регистра эффективно «отключает» параметр рамки обрезки (без изменения каких-либо смещений объектов PDF, делающего недействительной существующую таблицу xref), поэтому она больше не рассматривается средствами визуализации PDF.

...