2011-12-12 18 views
9

PDF dosyasını PDF dosyasına damgalamaktan ve ayrıca PDF dosya damgasını konumlandırmak için kontrol etmeyi bilen var mı?Damga PDF dosyası, damga dosyasının konumu kontrolü için

orginal.pdf ve logo.pdf dosyam var. original.pdf dosyalarının sol üst köşesinde orginal.pdf dosyasına logo.pdf dosyasını damgalamak istiyorum. Ghostscript veya pdftk ile nasıl yapılabilir?

cevap

26

Bu Ghostscript artı pdftk ile yapılabilir, ancak en az 2 farklı adım gerektirir.

AFAIK, doğrudan pdftk damga yerleştirmesini denetleyemezsiniz. Varsayılan olarak, damgasını sayfanın ortasına koyar ve aynı zamanda 'ölçek uydurma' işlemi yapar.

Bu nedenle, önce damganızı düzeltmeniz gerekir, böylece ilk önce boş bir sayfaya yerleştirilir, tam istediğiniz yere. Bu ilk adımda Ghostscript yardımı ile elde edebilirsiniz. Ardından, ikinci adımda, iki dosyayı birleştirmek için pdftk komutunu kullanın.

Bir örnek kullanalım.

İlk: 'stamp-small.pdf' oluşturun. Sen (

gswin32c.exe^
    -o stamp-small.pdf^
    -sDEVICE=pdfwrite^
    -g3200x500^
    -c "/Helvetica-Bold findfont 36 scalefont setfont"^
    -c "0 .8 0 0 setcmykcolor"^
    -c "12 12 moveto"^
    -c "(This is my stamp) show"^
    -c "showpage" 

: (. Zaten senin var ben bir ilke göstermesi gerekir)

gs \ 
    -o stamp-small.pdf \ 
    -sDEVICE=pdfwrite \ 
    -g3200x500 \ 
    -c "/Helvetica-Bold findfont 36 scalefont setfont" \ 
    -c "0 .8 0 0 setcmykcolor" \ 
    -c "12 12 moveto" \ 
    -c "(This is my stamp) show" \ 
    -c "showpage" 

Bu örnek bu şekilde değişiklik yapacağı Windows'ta Linux veya Mac OS X için oldu Ayrıca tüm satırları tek bir satıra yerleştirebilir, ancak ilgili işletim sistemi için satır-devam işaretlerini atlayabilir.) Bu ilk komut, Ghostscript'in komut satırına bir dizi basit PostScript ifadesini dağıtır ve 320x50 boyutunda küçük bir PDF sayfası oluşturmasını söyler. puan. Bu, yerleşim için aradığınız 'küçük' damgayı simüle etmelidir.

İkincisi: tam sayfa oluşturun (benim durumumda, bir A4 boyutunda) gerçek pulu gibi üçüncü aşamada uygulanabilir PDF dosyası: Windows'ta

gs \ 
    -o A4-stamp.pdf \ 
    -sDEVICE=pdfwrite \ 
    -g5950x8420 \ 
    -c "<</PageOffset [280 790]>> setpagedevice" \ 
    -f stamp-small.pdf 

:

  1. başlangıçta oluşturulan 's aldı:
    gswin32c.exe^
        -o A4-stamp.pdf^
        -sDEVICE=pdfwrite^
        -g5950x8420^
        -c "<</PageOffset [280 790]>> setpagedevice"^
        -f stamp-small.pdf 
    

    Bu komut bazı şeyleri elde tamp-small.pdf 'girişi olarak.

  2. 595x842 puntoluk bir tuval kullandı (yani ISO A4 sayfa boyutu).
  3. Giriş içeriğini 280 pts sağa ve 790 pts yukarı kaydırmak için küçük bir PostScript komutu uygular (PostScript ve PDF koordinatları sol alt köşeden saymaya başlar).
  4. Çıktı olarak 'A4-stamp.pdf' oluşturur.

Etkin olarak, orijinal küçük boyutlu damga dizgemiyorum şimdi bir A4 sayfasının sağ üst köşesinde.

Üçüncüsü: Şimdi PDFTK kullanarak orijinal PDF dosyasına bu yeni 'damgası' uygulayabilirsiniz:

pdftk original.pdf stamp A4-stamp.pdf output stamped.pdf 

ya, çok sayfalı orijinal PDF tüm sayfalarını damga:

pdftk original.pdf multistamp A4-stamp.pdf output stamped.pdf 

Bu örnek, benim stamp-small.pdf için yaptığım gibi kendi logo.pdf için benzer bir prosedürün nasıl geliştirileceği hakkında size bir fikir vermelidir. (Ben sağ üst köşede yaptım, sol üst köşede seninkini istiyorsun.)

+0

Teşekkür ederim Daha önce cevap ver. Bu sorun, PHP betiği ile FPDI ile yapılmıştır. –

+3

Bu cevabın neden etiketlenmediğini bilmiyorum - kesinlikle bir A4 sayfasındaki pulları nasıl güvenilir şekilde yerleştireceğimi sorunumu çözdüm. Büyük açıklamalar! – galactica

+1

Yep, büyük cevap verdi, OP'nin niçin kabul etme niyeti olmadığına dair hiçbir ipucu yoktu. –

İlgili konular