Появилась необходимость генерировать и прилеплять к pdf-файлам т.н. watermarks.
Единственное решение, которое нашел для этого (требования см. ниже), — pdftk [http://www.pdfhacks.com/pdftk/]. Для того, чтобы собрать (релиз последний — pdftk 1.12), пришлось обновить gcc до:
$ gcc --version
gcc (GCC) 3.4.4
После этого на Debian (woody + sid + самосборка многих компонентов) собралось все без проблем (с Makefile.Debian; только поправил VERSUFF=, убрав «-3.3», т.к. с gcc 3.3.x у меня не собиралось). Однако при запуске pdftk ругается:
# pdftk a.pdf background wm.pdf output b.pdf
Segmentation fault
Аналогичное происходит и с другими операциями. Ничего полезного в strace найти не могу:
... open("/lib/libnss_files.so.2", O_RDONLY) = 4 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\35"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0644, st_size=34436, ...}) = 0 old_mmap(NULL, 33720, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xb7378000 old_mmap(0xb7380000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x8000) = 0xb7380000 close(4) = 0 munmap(0xb73a7000, 60051) = 0 open("/etc/passwd", O_RDONLY) = 4 fcntl64(4, F_GETFD) = 0 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 _llseek(4, 0, [0], SEEK_CUR) = 0 fstat64(4, {st_mode=S_IFREG|0644, st_size=1088, ...}) = 0 mmap2(NULL, 1088, PROT_READ, MAP_SHARED, 4, 0) = 0xb73b5000 _llseek(4, 1088, [1088], SEEK_SET) = 0 munmap(0xb73b5000, 1088) = 0 close(4) = 0 getcwd("/var/mywww/sashop/pdf/pdftk-1.12/pdftk", 250) = 39 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 old_mmap(0x61000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x61000 old_mmap(0x72000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x72000 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++
Пробовал запускать собранную pdftk из .deb — то же самое. Как вариант, думал, что не хватает какой-то библиотеки, однако в соответствии с http://www.accesspdf.com/article.php/20041129180128366 все необходимое установлено.
Собственно, интересует, не пробовал ли кто работать с pdftk и с каким успехом это прошло, а также альтернативы для нанесения водяных знаков на pdf. Обязательные требования: бесплатность, функционирование под FreeBSD (+ очень желательно под Linux), возможность выполнения операции нанесения watermarks из консоли.
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1