Автоматически удалять белые рамки из pdf-файлов, без OCR, командной строки

(аналогичный вопрос существует, явно для другой платформы и не упоминает, что OCR не требуется)

Мне нужен инструмент командной строки (или средство просмотра PDF, которое поддерживает это как параметр отображения), который может удалить белую рамку файла PDF. Никакого OCR или чего-то еще, просто идеально белые рамки. Входные PDF-файлы представляют собой векторную графику, т. е. белый цвет всегда идеально белый. В идеале выходные файлы также должны быть векторной графикой / pdf, чтобы не тратить место на диске, и поэтому я все еще могу масштабировать.

Это должен быть инструмент командной строки, который поддерживает как минимум Linux.

На аналогичный вопрос это ответ для Imagemagick:

Со страницы форматов :

PDF - RW - Portable Document Format: для чтения требуется [Ghostscript][4]. По умолчанию ImageMagick устанавливает размер страницы в MediaBox. Однако некоторые PDF-файлы имеют CropBox или TrimBox, которые меньше, чем MediaBox, и могут включать пустое пространство, совмещение или метки обрезки за пределами CropBox или TrimBox. Чтобы заставить ImageMagick использовать CropBox или TrimBox, а не MediaBox, используйте -define (например, -define pdf:use-cropbox=true или -define pdf:use-trimbox=true). Используйте -density, чтобы улучшить внешний вид вашего PDF-рендеринга (например, -density 300x300). Используйте -alpha remove для удаления прозрачности. Чтобы указать прямое преобразование из Postscript в PDF, используйте -define delegate:bimodel=true. Используйте -define pdf:fit-page=true для масштабирования до размера страницы.

Ну, я не могу заставить его работать, ни

convert input.pdf -define pdf:use-trimbox=true output.png

ни команда с «cropbox» не удаляет границы стандартного файла .pdf, созданного LaTeX.

Обоснование: мой вариант использования — документы/книги, набранные в LaTeX. Нет, исходника у меня нет, и достать его нецелесообразно. (Большая) белая рамка хороша при печати. Но при работе с pdf-файлом на 10-дюймовом нетбуке пространство ценно, и масштабирование за границы может сделать разницу между возможностью чтения мелкого шрифта (в формулах, показателях, индексах и т. д.) удобным или трудным (я также могу просто использовать половину экрана для pdf, потому что это в основном университетские задания, где мне нужно одновременно увидеть упражнение и мое решение или сравнить что-то с учебником и тому подобное).

Спасибо. Успешно протестировано, собираюсь написать скрипт для всех моих pdf-файлов. Думаю, я тогда отвечу на свой вопрос? Если только кто-то другой (вы?) не сделает это первым.

Ответы (2)

пдфкроп

Вы проверили pdfcrop?

См.: http://manpages.ubuntu.com/manpages/gutsy/man1/pdfcrop.1.html .

Более подробно это описано здесь: https://askubuntu.com/questions/124692/command-line-tool-to-crop-pdf-files

урожай

krop — это то, что я люблю использовать: http://arminstraub.com/software/krop

Я использую графический интерфейс, но его можно запустить и через CLI — возможно, это то, что вы ищете:

:~$ krop -h
usage: krop [-h] [-v] [-o OUTPUT] [--rotate {0,90,180,270}]
            [--whichpages WHICHPAGES] [--initialpage INITIALPAGE] [--autotrim]
            [--selections {all,evenodd,individual}] [--no-kde] [--no-PyPDF2]
            [file]

krop: A tool to crop PDF files

Copyright (C) 2010-2015 Armin Straub, http://arminstraub.com

positional arguments:
  file                  PDF file to open

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -o OUTPUT, --output OUTPUT
                        where to save the cropped PDF
  --rotate {0,90,180,270}
                        how much to rotate the cropped pdf clockwise (default: 0)
  --whichpages WHICHPAGES
                        which pages (e.g. "1-5" or "1,3-") to include in cropped PDF (default: all)
  --initialpage INITIALPAGE
                        which page to open initially (default: 1)                                                                                                                                         
  --autotrim            create a selection for the entire initial page minus blank margins                                                                                                                
  --selections {all,evenodd,individual}                                                                                                                                                                   
                        to which pages should selections apply                                                                                                                                            
  --no-kde              do not use KDE libraries (default: use if available)                                                                                                                              
  --no-PyPDF2           do not use PyPDF2 instead of pyPdf (default: use PyPDF2 if available)  
Как я писал в своем комментарии, я действительно успешно использовал pdfcrop, как это было предложено Мартином Шредером.
Черт. Наконец-то использовал pdfcrop для моих файлов: он удаляет оглавление и ссылки в формате PDF. Думаю тогда попробую кроп.
Также только что заметил, что pdfcrop увеличивает размер файла в 5-10 раз. Это не совсем практическая проблема, у меня не так много PDF-файлов, но это действительно неудовлетворительно.
krop --autotrim test.pdf -o урожая.pdf не работает. Он обрезает больше, чем просто пробел (и я не могу его написать, он открывает свое окно, где мне нужно нажать кнопку, чтобы заставить его работать).

Вы когда-нибудь пробовали Briss и K2pdfopt ( ссылка )? Обе программы с открытым исходным кодом, и я считаю, что они поддерживают использование командной строки.

Пожалуйста, опишите, что делает каждый из них, и дайте некоторые детали того, почему вы думаете, что они могут быть ответом. Также, пожалуйста, переформулируйте свой ответ как ответ, а не как вопрос, то есть «Вы можете сделать это с помощью», а не «Вы когда-нибудь пробовали?»