Редакция на PDF файлове със свободен софтуер
Съществуват програми, които са направени за добавяне на текст върху 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
Коментари
Публикуване на коментар