2012-09-22 1 views
3

Мне нужно было проанализировать файл PDF на изображения с помощью PHP. Я сделал это с помощью Ghostscript. Вот сценарий:Удалить белую рамку на изображении с помощью Ghostscript

$result = exec("gs -sDEVICE=png16m -sOutputFile=page-%03d.png $pdfname.pdf"); 

Но почти все конечные образы имеют белые границы вокруг них (PDF страницы не имеют эти границы). Как избавиться от них? Возможно, в коде Ghostcript есть некоторые методы, которые я не мог найти и которые могли бы помочь.
Вот изображение ->http://www.pictureshack.ru/images/88046_page-009.png
Вот PrintScreen из файла PDF ->http://www.pictureshack.ru/images/62869_pdf.PNG

+0

Можете ли вы предоставить образец PDF и JPEG файлы, которые демонстрируют белые границы вы описываете? –

+0

Я отредактировал сообщение и там вы можете найти образцы –

+0

Принтер из PDF не достаточно хорош. Мне нужно посмотреть значения '/ MediaBox','/ArtBox', '/ TrimBox','/CropBox' и '/ BleedBox', и поэтому вам нужно посмотреть на сам PDF. Одна страница, извлеченная из PDF, которая имеет изображение, вероятно, достаточно ... –

ответ

5

Я хотел бы предложить, что ваши страницы имеют CropBox определено, который меньше, чем MediaBox. Вы можете сказать Ghostscript использовать CropBox, поставив в командной строке -dUseCropBox.

Конечно, как сказал Курт, его действительно невозможно рассказать, не увидев исходный файл.

+0

Не могли бы вы рассказать мне, что такое Mediabox и Crobboxes? Или, может быть, ссылка, о которой написано. И вы говорите, что вам нужен оригинальный файл, почему? Что бы вы там увидели? Может быть, я могу проверить это, если вы объясните –

+0

Ты гений !!! Большое спасибо! Ваше предложение было абсолютно правильным! Благодаря! –

+0

@PigalevPavel: всегда лучше иметь доступ к образцу, если нужно дать определенный ответ о проблемах с PDF. Все остальное - просто чистое предположение. –

1

Пигалев Павел должен дать реальный ответ о том, как он решил проблему. Одна возможность состоит в том, что он должен использовать что-то вроде:

gs       \ 
    -sDEVICE=png16m   \ 
    -sOutputFile=page-%03d.png \ 
    -dUseTrimBox    \ 
    file.pdf 

или

gs       \ 
    -sDEVICE=png16m   \ 
    -sOutputFile=page-%03d.png \ 
    -dUseCropBox    \ 
    file.pdf 
+0

Я использовал -dUseCropBox –