[Çözüldü] pdf dosyasının boyutunu küçültme

Başlatan candanozturk, 12 Nisan 2013 - 19:15:37

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

candanozturk

Libreoffice 3' te hazırlayıp pdf' e çevirdiğim dosya vardı. Bu dosyada 10 tane görsel var ve hepsinin dpi' ını 70 civarına düşürdüm. Görsellerin boyutlarını ise ortalama 250 kb boyutuna düşürdüm ama pdf dosyası 8 mb falan. Bu dosyayı 6 mb' a düşürmem gerekiyor. Görsellerle tekrar oynadım ama düşüremedim.

Windows için çeşitli boyut düşürme programları var ama ubuntu da bulamadım. Yardımcı olabilirseniz sevinirim.

if

Burada[1] bir tane Nautilus betiği bir tane de kullanıcı arayüzü olan uygulama sunulmuş. Bunların dışında uçbirimle de yapılabilir.

Uçbirimle pdf boyutunu düşürmek için:

1- Önce ghostscript ve nautilus-open-terminal paketlerini yükleyin.
2- Boyutunu değiştirmek istediğiniz pdf'nin bulunduğu dizine girin, sağ tıklayıp Uçbirimi buraya aç deyin.
3- gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=yeni_oluşacak_dosyanın_adı.pdf değiştirmek_istediğiniz_dosyanın_adı.pdf

Nautilus betiği için:

1- Gerekli paketleri kurun: ghostscript, poppler-utils, zenity
2- #! /bin/bash

# AUTHOR:   (c) Ricardo Ferreira
# NAME:     Compress PDF 1.4
# DESCRIPTION:  A nice Nautilus script with a GUI to compress and optimize PDF files
# REQUIRES: ghostscript, poppler-utils, zenity
# LICENSE:  GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# WEBSITE:  https://launchpad.net/compress-pdf

# Messages
        # English (en-US)
        error_nofiles="No file selected."
        error_noquality="No optimization level selected."
        error_ghostscript="PDF Compress requires the ghostscript package, which is not installed. Please install it and try again."
        error_nopdf="The selected file is not a valid PDF archive."
        label_filename="Save PDF as..."
        label_level="Please choose an optimization level below."
        optimization_level="Optimization Level"
        level_default="Default"
        level_screen="Screen-view only"
        level_low="Low Quality"
        level_high="High Quality"
        level_color="High Quality (Color Preserving)"
        job_done="has been successfully compressed"

case $LANG in

    tr* )
        # Turkish (tr-TR)
        error_nofiles="Hiçbir dosya seçilmedi."
        error_noquality="Eniyileme düzeyi seçilmedi."
        error_ghostscript="PDF Sıkıştırma betiği ghostscript paketini gerektirir. Paketi yükledikten sonra deneyin."
        error_nopdf="Seçilen dosya geçerli bir pdf değil."
        label_filename="Farklı kaydet..."
        label_level="Bir eniyileme düzeyi seçin."
        optimization_level="Eniyileme Düzeyi"
        level_default="Ortalama"
        level_screen="Görüntülemek için"
        level_low="Düşük"
        level_high="Yüksek"
        level_color="Yüksek(Renkler Korunur)"
        job_done="başarıyla sıkıştırıldı";;
esac

VERSION="1.4"
ZENITY=$(which zenity)

pdf_file=$(basename "$1")

# Check if Ghostscript is installed
GS="/usr/bin/ghostscript"
if [ ! -x $GS ]; then
        $ZENITY --error --title="Compress PDF "$VERSION"" --text="$error_ghostscript"
        exit 0;
fi

# Check if the user has selected any files
if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
        $ZENITY --error --title="Compress PDF "$VERSION"" --text="$error_nofiles"
        exit 0;
fi

# Check if the selected file is a PDF
mimetype=$(file -b -i "$1")
if [ -z "`echo $mimetype | grep -i 'pdf' `" ]; then
    $ZENITY --error --title="Compress PDF "$VERSION"" --text="$error_nopdf"
        exit 0;
fi

# Ask the user to select a compressing format
selected_level=$($ZENITY  --list  --title="Compress PDF "$VERSION"" --text "$label_level" --radiolist  --column "" --column "$optimization_level" TRUE "$level_default" FALSE "$level_screen" FALSE "$level_low" FALSE "$level_high" FALSE "$level_color")
if [ -z "$selected_level" ]; then
        $ZENITY --error --title="Compress PDF "$VERSION"" --text="$error_noquality"
        exit 0;
fi

# Select the optimization level to use
case $selected_level in
        "$level_default")
                COMP_COMMAND="/default"
        ;;
        "$level_screen")
                COMP_COMMAND="/screen"
        ;;
        "$level_low")
                COMP_COMMAND="/ebook"
        ;;
        "$level_high")
                COMP_COMMAND="/printer"
        ;;
        "$level_color")
                COMP_COMMAND="/prepress"
        ;;
esac

# Choose output file name
temp_filename=.temp-"$pdf_file"
suggested_filename=compressed-"$pdf_file"
output_filename=$($ZENITY --file-selection --save --confirm-overwrite --filename="$suggested_filename" --title="$label_filename")

if [ "$?" = 1 ] ; then
        exit 0;
fi

# Extract metadata from the original PDF
pdfinfo "$1" | sed -e 's/^ *//;s/ *$//;s/ \{1,\}/ /g' -e 's/^/  \//' -e '/CreationDate/,$d' -e 's/$/)/' -e 's/: / (/' > .pdfmarks
sed -i '1s/^ /[/' .pdfmarks
sed -i '/:)$/d' .pdfmarks
echo "  /DOCINFO pdfmark" >> .pdfmarks

# Execute ghostscript while showing a progress bar
(echo "0" ;
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=$COMP_COMMAND -dNOPAUSE -dQUIET -dBATCH -sOutputFile="$temp_filename" "$1" .pdfmarks
rm .pdfmarks
echo "100") | (if `$ZENITY --progress --pulsate --auto-close --title="Compress PDF "$VERSION""`;
                 then
                     mv -f "$temp_filename" "$output_filename" &
                     notify-send "Compress PDF" "$pdf_file $job_done"
                 else
                     killall gs
                     rm "$temp_filename"
                     exit
                 fi)


Yukarıdakileri compress-pdf adında bir dosyanın içine kaydedin. Üzerine sağ tıklayıp çalıştırılabilir yapın.
3- Bu dosyayı ~/.local/share/nautilus/scripts dizini altına yaşıyın.
4- nautilus -q komutunu yürütün.

Uygulama için:

1- subversion paketini yükleyin.
2- svn co https://moonshiner.svn.sourceforge.net/svnroot/moonshiner/trunk moonshiner_svn komutu ile uygulamayı bilgisayara çekin.
3- sudo python setup.py install komutu ile kuruluma geçin.
[1] http://askubuntu.com/questions/280312/gui-program-to-resize-pdf-documents-and-change-their-dpi

candanozturk

#2
Öncelikle teşekkür ederim uğraşıp yazmışsınız ancak ilk verdiğiniz kodu uç birimde başına sudo yazarak yüklemeyi denedim fakat hata verdi.candan@candan-Lenovo-IdeaPad-Y530:~$ sudo gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=yeni_oluşacak_dosyanın_adı.pdf değiştirmek_istediğiniz_dosyanın_adı.pdf
[sudo] password for candan:
Error: /undefinedfilename in (de\304\237i\305\237tirmek_istedi\304\237iniz_dosyan\304\261n_ad\304\261.pdf)
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push
Dictionary stack:
   --dict:1164/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 9.05: Unrecoverable error, exit code 1
candan@candan-Lenovo-IdeaPad-Y530:~$



İkinci verdiğiniz yöntemde ise local/ share kısmında takıldım. Yani dosyaları taşımak için o kısmı bulamadım.

if

@candanozturk, diyelim elinizde 2012_Mali_Tablosu.pdf adlı bir dosya var. Bunun boyutunu küçülteceksiniz. Sizin ilk komutta değiştirmeniz gereken yerler şöyle:

1- değiştirmek_istediğiniz_dosyanın_adı.pdf = yerine 2012_Mali_Tablosu.pdf. Yani bu kısma elinizdeki dosyayı yazacaksınız.
2- -sOutputFile=yeni_oluşacak_dosyanın_adı.pdf = Küçültülmüş_2012_Mali_Tablosu.pdf. Yani bu kısma elinizdeki dosya değiştirkten sonra ismini ne olması gerektiğini yazacaksınız.

Nautilus'u açın > ctrl+h tuşlarına basın > ev dizini altında .local dizini olacak.

candanozturk