Как вставить картинку в PDF файл?

1. netesoff 4 30.11.16 08:26 Сейчас в теме
Всем привет.
Буду признателен за идеи по решению следующей задачи: на почту сотруднику приходят уже готовые PDF файлы (от коллег, контрагентов и т.д.). Его задача распечатать документ, поставить на нем штамп и снова сохранить в базу. Как можно вставить картинку в файл PDF?
+
По теме из базы знаний
Найденные решения
2. olegmedvedev 65 30.11.16 09:03 Сейчас в теме
Вставить картинку - это в смысле отсканировать печать и совмещать её с приходящим PDF файлом?
тут либо все ручками как вариант (открыли pdf. закинули на него png печати - сохранили)
либо автоматизировать при помощи утилит (но тогда печать может не совпасть с местом для печати, тк входящий документ может быть разной длины)
Как с минимальными усилиями объединить 2 jpg в один - по ссылке разбирается пример как объединить два файла в один.

Цитата:
консольная утилита convert.exe из пакета ImageMagic
ключ -append
(This option creates a single image where the images in the original set are stacked top-to-bottom. If they are not of the same width, any narrow images will be expanded to fit using the current {-background} color setting. Use {+append} to stack images left-to-right. The set of images is terminated by the appearance of any option. If the {-append} option appears after all of the input images, all images are appended.)

описания ключей не полностью документированы, придётся самому разбираться
Вот ссылки на хэлп - мож пригодятся
_http://mydebianblog.blogspot.com/2007/07/imagemagick.html
_http://offline.computerra.ru/2006/653/285947/
и конешно оффсайт (по-английски) _http://imagemagick.org/


Код:
@echo off  
setlocal EnableDelayedExpansion
set both=0
set first=0
set second=0
echo both=%both%
echo first=%first%
echo second=%second%
for %%x in (*.jpg) do (
echo c
if !both! == 0 (
set first=%%x
set both=1
echo 0
) else (
set second=%%x
set both=0
echo 1
convert "!first!" "!second!" -append "!first!"_"!second!"
)
echo both=!both!
echo first=!first!
echo second=!second!
) 
Показать

v3rter; +1
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. olegmedvedev 65 30.11.16 09:03 Сейчас в теме
Вставить картинку - это в смысле отсканировать печать и совмещать её с приходящим PDF файлом?
тут либо все ручками как вариант (открыли pdf. закинули на него png печати - сохранили)
либо автоматизировать при помощи утилит (но тогда печать может не совпасть с местом для печати, тк входящий документ может быть разной длины)
Как с минимальными усилиями объединить 2 jpg в один - по ссылке разбирается пример как объединить два файла в один.

Цитата:
консольная утилита convert.exe из пакета ImageMagic
ключ -append
(This option creates a single image where the images in the original set are stacked top-to-bottom. If they are not of the same width, any narrow images will be expanded to fit using the current {-background} color setting. Use {+append} to stack images left-to-right. The set of images is terminated by the appearance of any option. If the {-append} option appears after all of the input images, all images are appended.)

описания ключей не полностью документированы, придётся самому разбираться
Вот ссылки на хэлп - мож пригодятся
_http://mydebianblog.blogspot.com/2007/07/imagemagick.html
_http://offline.computerra.ru/2006/653/285947/
и конешно оффсайт (по-английски) _http://imagemagick.org/


Код:
@echo off  
setlocal EnableDelayedExpansion
set both=0
set first=0
set second=0
echo both=%both%
echo first=%first%
echo second=%second%
for %%x in (*.jpg) do (
echo c
if !both! == 0 (
set first=%%x
set both=1
echo 0
) else (
set second=%%x
set both=0
echo 1
convert "!first!" "!second!" -append "!first!"_"!second!"
)
echo both=!both!
echo first=!first!
echo second=!second!
) 
Показать

v3rter; +1
4. netesoff 4 01.12.16 10:11 Сейчас в теме
(2) Через ImageMagic пробовал, но качество итогового PDF очень сильно страдало. Но, благодаря твоим ссылкам натолкнулся на описание ключей от Ghostscript и получилось вполне нормально. Спасибо.
+
3. v3rter 30.11.16 10:13 Сейчас в теме
Есть бесплатная консольная программа PDFtk Server
мануал https://www.pdflabs.com/docs/pdftk-man-page/
загрузка https://www.pdflabs.com/tools/pdftk-server/
Microsoft Windows

Click to download the PDFtk Server installer for Windows XP, Vista, 7 and 8:
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-win-setup.exe

Для простановки отметок на страницах подойдут опции background | multibackground | stamp | multistamp
Собственно, поэкспериментировать с ключами вызова и подобрать картинку.

Есть версия с пользовательским интерфейсом - The PDF Toolkit, но она платная.
+
5. netesoff 4 01.12.16 11:01 Сейчас в теме
(3) ооо, это просто мега-чудо-штука для работы с pdf. Попробовал - реально много чего может и штамп мой вставляет. Только засада какая-то, не получается указать место и размер который мне нужен. Нет случаем примера?
+
6. v3rter 01.12.16 15:17 Сейчас в теме
(5) Нашел в машинном переводе с немецкого

http://www.lagotzki.de/pdftk/
Штамповка PDF-файлов

Файл PDF для штамповки уже должен быть в размер бумаги вашего PDF документа, или, по крайней мере, имеют те же пропорции. Файл PDF подобен съемочной площадке на страницах этого PDF-файла и масштабируется в соответствии с размером.

В следующем примере, все страницы файла PDF будет отмечен печатью:

pdftk example.pdf stamp mystamp.pdf output example_stamped.pdf

Хитроумные производители pdftk сделали отдельную платную версию для настраиваемой "художественной" штамповки.
+
7. Goody 129 13.04.17 13:40 Сейчас в теме
(5) Чтобы разместить на странице формата А4, нужно указать параметр -page. Положение на странице -gravity. Размер изменить -resize.
Тут все есть www.imagemagick.org/Usage/
+
8. Goody 129 13.04.17 14:24 Сейчас в теме
Не туда написал, сори.
+
9. пользователь 12.10.19 14:55
Сообщение было скрыто модератором.
...
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот