Редакция на PDF файлове със свободен софтуер

Понякога се налага попълването на формуляри във формат PDF, но файлът не е предвиден за редакция с Acrobat Reader.

Съществуват програми, които са направени за добавяне на текст върху PDF файлове, но повечето от тях не са свободен софтуер и работят само под Windows (например Foxit Reader, PDF-XChange Viewer).

В тази статия ще покажа как това може да стане със свободен софтуер.

  • flpsed - не работи кирилицата.
  • pdfimport - разширение за OpenOffice.org/LibreOffice, чупи се форматирането.
  • PDFedit - много сложно ползване, гледах няколко минути и не разбрах как се прави просто слагане на текст.

С Gimp, ImageMagick и Pdftk няма проблем с форматирането, но получения резултат е растеризиран.

Gimp

При отваряне на файла изберете една страница (защото иначе ще ви го отвори на слоеве и ще се чудите какво става, ако нямате опит с работа със слоеве) и изберете разделителна способност (Resolution) поне 200 или 300 пиксела на инч. След като редактирате страницата можете да я отпечатате на хартия или да я отпечатате с виртуалния принтер, който конвертира в PDF (ако ползвате Линукс със сигурност трябва да имате такъв по подразбиране - пише "Print to File" или нещо такова; ако ползвате Windows и програмата не ви дава възможност за печат във файл можете да инсталирате PDFCreator). Вместо да редактирате с Gimp можете да запишете страницата във формат PNG (но не и в JPEG, защото се губи качество) и да я редактирате с някой по-прост редактор на изображения като Kolourpaint (част от KDE) - аз предпочитам него когато добавям текст върху изображение.

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


ImageMagick

Тази програма работи от командния ред, което е голямо предимство - спестява ви много цъкане с мишката.

Ползва се така:

convert -density 200 име-на-файл.pdf име-на-файовете.png

Числото 200 е разделителната способност на изображението (пиксели на инч). Вашия принтер позволява печат до 300 или до 600, така че няма смисъл това число да е твърде голямо (ако ви е по-стар компютъра ще работи тромаво, ако изберете повече от 200).

За да не се налага да помните командата, можете да направите скрипт с име, което ще запомните по-лесно:

конвертиране_на_pdf_към_изображения.bash
#!/bin/bash

if [ "$1" = "" ]; then

 echo "Не е зададен PDF"
 exit
fi

if [ "$2" = "" ]; then

 echo "Не е зададено име на файл за резултата"
 exit
fi

convert -density 200 "$1" "$2"

Този скрипт отваря зададения файл и го прави на множество изображения, които записва в текущата директория.

Например това:

конвертиране_на_pdf_към_изображения.bash файл.pdf изображение-номер.png

ще доведе до създаване на изображения с наименования изображение-номер-0.png, изображение-номер-1.png, изображение-номер-2.png и т.н. и записването им в текущата директория.

След като приключите с редакцията на изображенията (напр. с Kolourpaint - тази ми е най-удобна за тази цел) можете да конвертирате всички изображения в PDF файлове:

convert изображение-номер-0.png изображение-номер-0.pdf 
convert изображение-номер-1.png изображение-номер-1.pdf
convert изображение-номер-2.png изображение-номер-2.pdf
...
...

Този този скрипт ще ви спести доста писане и цъкане с мишката:

конвертиране_на_png_към_pdf.bash
#!/bin/bash

for f in *.png ; do convert $f $(basename $f png)pdf; done


Този скрипт ще конвертира всички изображения от текущата директория от формат PNG към формат PDF, като имената на файловете ще са същите, само разширението ще се смени от png на pdf.

Pdftk

Програмата Pdftk също работи от команден ред и това ви спестява много щракане с мишката.

Примерно ползване:

pdftk страница-1.pdf страница-2.pdf страница-3.pdf cat output общо-всички-страници.pdf

Ако имената на файловете са номерирани правилно:


pdftk $(ls -v *.pdf | xargs) cat output общо-всички-страници.pdf


Следващият скрипт конвертира всички файлове PNG в PDF и след това събира всичките файлове PDF в един файл PDF:

конвертиране_на_png_към_един_pdf.bash
#!/bin/bash

if [ "$1" = "" ]; then

 echo "Не е зададено име на файл за резултата"
 exit
fi


temp_directory=$(mktemp -d)

for f in *.png ; do

convert $f $temp_directory/$(basename $f png)pdf

if [ $? -gt 0 ] ; then
 echo "Грешка при конвертирането на \"$f\"."
 exit

fi

done

cd $temp_directory
if [ $? -gt 0 ] ; then

 echo "Грешка при преминаването във временната директория."
 exit
fi


list=$(ls -v *.pdf | xargs)

if [ "$list" = "" ]; then
 echo "Няма файлове .pdf в текущата директория."
 exit

fi

pdftk $list cat output "$1"

echo "Изтриване на временната директория..."
rm -rf "$temp_directory"


Примерно ползване:

конвертиране_на_png_към_един_pdf.bash един-голям-файл.pdf

Този скрипт е почти като предишния, с тази разлика, че резултатът е един PDF файл с много страници, вместо много PDF файлове с по една страница.

Програмите Pdftk и ImageMagick би трябвало да са инсталирани по подразбиране в Линукс дистрибуцията. Ако не са можете лесно да ги инсталирате със съответния мениджър на пакети. Например при Ubuntu:

sudo apt-get install imagemagick
sudo apt-get install pdftk

Коментари

Популярни статии

Търся си приятелка

За вредата от озонаторите и йонизаторите на въздух

За вредата от позитивното мислене (положителното мислене) - какво мислят истинските психолози по въпроса

Как да решим проблема с обувките лесно – просто си купете с няколко номера по-големи обувки и сложете един или повече слоя допълнителни стелки

Снимане на публични и обществени места - правни аспекти

Експериментът на Радой Ралин с баничките и комунизма

Блогът на Григор Гачев

Блогът на Майя Маркова

Блогът на Петър Стойков

Блогът на Begem0t

Блогът на Димитър Кръстев

Книголандия

Блогът на Александър Бизарски (Sparx)

Блог за книги

Блогът на chitanka.info

Блогът за икономика

Институт за пазарна икономика

Блог на Институт за радикален капитализъм "Атлас"

Пещерата на неандерталеца

Още блогове

Всички публикации в блога (цъкни тук за да се отвори архива)

Показване на още