PDF'i otomatik pilota bağlamak!

Kısa bir zaman önce, böyle bir yazılımcı ve/veya işlemci gücü aranmaya başladım. Çünkü elimde bir PDF şablon, 300 kişinin ismi ve soyad ve bunlardan üretmem gereken 300 tane PDF dosyası duruyordu. Normal işlem, PDF şablon açılır, teker teker isimler kopyalanıp, yapıştırılır ve üretilen PDF dosyası saklanır.

"İyi yazılımcı, tembel yazılımcıdır". Bunu ilk defa, eski çalıştığım yerde, yeteneği inanılmaz sınırlara uzanan bir yazılımcıdan işitmiştim. Anlamı şu: bir yazılımcıya, en fazla ayni rutin işlemi iki kez yaptırabilirisiniz. Üçüncü defa, yazılımcı bir yolunu bulup, isi otomasyon haline getirecek bir yol bulup, kendi beynini kullanmak yerine, bilgisayarının işlemcisini kullanmayı tercih edecektir.

Kısa bir zaman önce, böyle bir yazılımcı ve/veya işlemci gücü aranmaya başladım. Çünkü elimde bir PDF şablon, 300 kişinin ismi ve soyad ve bunlardan üretmem gereken 300 tane PDF dosyası duruyordu. Normal işlem, PDF şablon açılır, teker teker isimler kopyalanıp, yapıştırılır ve üretilen PDF dosyası saklanır. Ben, iyi bir yazılımcı değilim. Hatta yazılımcı bile değilim ama tembellim :-) Bu nedenle, bu proje için otomasyon yolu buldum ve belki günün birinde size de lazım olur diye paylaşayım dedim.

Diyelim ki elinizde bir PDF şablonunuz (örneğin yemek, parti, doğum günü davetiyesinden oluşmuş bir PDF dosyası) ve bir dolu isim ve e-mailden oluşan bir Excel dosyanız var.

Öncellikle Excel dosyanızı, tekst dosyası olarak yeniden kayıt edin (örneğin veri.txt) ve aşağıda görülen bir veri dosyası oluşturun:

isim soyad

Ali Veli

Mehmet Saricizmeli

Daha sonra, PDF şablonunuzu açın ve yukarıdaki verilerin görünmesi gereken yerlere PDF Form araçları sayesinde Textbox oluşturun. Textbox'in ismi ile veri dosyanızdaki sütun başlıklarının uyuşmasına dikkat edin.

Textbox ile süslediğiniz bu yeni PDF şablonu veri dosyası (veri.txt) ile aynı klasör içine saklayın ve daha sonra Adobe Acrobat içinde şablonunuz açıkken Ctrl+J'ye basıp, Acrobat Console'u ekrana çağırın ve aşağıda gördüğünüz JavaScript'i kopyalayıp, yapıştırın.


var targetDirectory ="/C/Temp/Sonuc/"; 

var re = /.pdf$/i; 

var filename = this.documentFileName.replace(re,""); 

var i = 0, retn = 0; 

while( retn == 0 ) { 

retn = this.importTextData("veri.txt", i); 

var f = this.getField("soyad"); 

if ( retn == 0 ) { 

try { 

this.extractPages({ 

nStart: 0, 

cPath: targetDirectory + f.value + ".pdf" 

}); 

} catch (e) { console.println("Aborted: " + e) } 

i++; 



}



Hepsi bu kadar! Ctrl+A'ya basıp, bütün kodu secili hale getirip, Ctrl+Enter'a basın. Voila! 300 tane PDF dosyası, isim ve email adresleri gereken yerlere yazılmış şekilde sizi bekliyor.

Yukarıda kod içinde değiştirebileceğiniz kısımlar:

var targetDirectory kısmı, bu scripte, üretilecek PDF dosyalarının saklanacağı dizini tanımlıyor.

this.importTextData("veri.txt", i); ise veri dosyanızı ismini taşıyor.

this.getField("soyad"); kısmı ise, bu dosyaların nasıl isimlendirileceğini tanımlıyor.

Verdiğimiz örnek içinde, üretilen dosyalar, veri dosyanız içinde bulunan "soyad" sütunundaki verileri kullanarak isim verecek, örneğin "Veli.pdf".

Umarım günün birinde, bu scriptin size de yardımı dokunur.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

merhaba ben yaklasık 1500 tane pdf dosyasının ayrı ayrı cıktısını almak istiyorum bunun için dosyaların içine tektek girip yazdır komutunu vermekten baska bi kısa yol varmı acaba yardımcı olursanız sevinirim.tesekkürler

Yukarı Git