Трябва ви уеб хостинг? Разгледайте предложенията на ICDSoft.

Web hosting from ICDSoft.

Това не е платена реклама. Безплатна е. Макак така безплатна? Защо?

Харесвам собственика на тази фирма, той ползва част от печалбата ѝ за редица благотворителни инициативи.

Редакция на 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

Коментари

Финансовите услуги и червената лента

Да спрем банковия и картовия лобизъм

Знаеш ли какви промени в законите ти готвят? Готов ли си да се подчиняваш на господарите си?

Ново! От 2023 година! Нашите законотворци (които изобщо не взимат пари за писане на закони) пак пишат промени в закон по много подозрителен начин. Промените са "скрити" в края на проект за закон, в заглавието на който се твърди, че ще се изменя ДОПК. Обаче се оказва, че това не е съвсем така - променят се и други закони...

Опитват да вкарат промени, които само до преди месеци не успяха! Дали този път ще успеят да гласуват в интерес на тесен кръг лица?

Демокрацията работи само ако гражданите се интересуват какви закони смятат да се гласуват в Народното събрание. Също така, за да работи демокрацията, се налага и народните представители да са наясно с това, което гласуват.

Да спрем банковия лобизъм!

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

Проблемът с амплитудно модулираната светлина и ползването на широчинно-импулсна модулация за регулиране на яркостта на светлинни източници

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

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

Ремонт на печка духалка (ремонтирана преди това неправилно от неизвестен майстор)

По-лоша частна пощенска услуга от Български пощи? Запознайте се с услугата „пощенско писмо“ на Еконт

Политиците пак заговориха, че щели да създават работни места

Данък върху финансовите транзакции

Блогове

Още, още блогове

Още блогове

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

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