Hazır Verilerle Otomatik PDF Oluşturma
Bu yazı Excel'deki verilerin çekilerek otomatik olarak bir PDF oluşturma işlemini anlatıyor. Fakat siz bu işlemi veritabanından bilgi çekerek de yapabilirsiniz. Böylece bu işlemi web sayfalarınızda da kullanabilirsiniz.
Diyelim ki elimde bir PDF şablon var ve bu şablona göre 300 kişinin isim ve soyadını kullanarak 300 tane PDF dosyası oluşturmam gerekiyor. Normal işlem, PDF şablon açılır, teker teker isimler kopyalanıp, yapıştırılır ve üretilen PDF dosyası saklanır. Bu proje için otomatik bir yol 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ı, txt 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.
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.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++;
}
}
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.
Yorumlar
Yorum Gönder