iText kütüphanesini kullanarak dynamic pdf dosyalarını yani acrobeform ve xfa formlarını merge(tek dosyada birleştirme) edebilir miyiz? Normal pdf dosyalarını birleştirebiliyorum fakat dynamic pdf işin içine girince sadece 1 sayfa gösteriyor. Yardımlarınız için şimdiden teşekkürler.

soruldu: 12 Tem '12, 05:37

igunes's gravatar image

igunes
1114
cevap kabul oranı: 0%

değiştirildi: 12 Tem '12, 05:47

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Merhaba,

Eğer mesele iki AcroForm formatındaki pdf dosyasını merge etmek ise bunu aynı dinamik form içeriği olmayan pdf'lerde olduğu gibi yapabilirsin. Ancak xfa biliyorsun ki apayrı bir format, ve iText xfa tipindeki dinamik pdf dosyalarını birleştirmekte pek başarılı değil, çünkü xfa dosyalarını birleştirme desteği -en azından benim bildiğim sürümde- yok. Bu konuda iText in Action (2. basım) kitabında yazan:

These examples will only work if your forms are created using Acro- Form technology. It’s not possible to concatenate XFA forms using iText.

Burada "These examples" olarak tabir ettiği şey iText'in PdfCopy'li örnekleri:

String[] files = { IlkPdf.RESULT, IkinciPdf.RESULT };
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new FileOutputStream(RESULT));
document.open();
PdfReader reader;
int n;
for (int i = 0; i < files.length; i++) {
reader = new PdfReader(files[i]);
n = reader.getNumberOfPages();
for (int page = 0; page < n; ) {
copy.addPage(copy.getImportedPage(reader, ++page));
}
}
document.close();

Bu yolla xfa dosyalarını belki kendi aralarında zorlama olarak merge edebilirsin ancak bu sefer de sayfa sayılarında kaymalar ve bunun gibi sorunlar ortaya çıkabiliyor. Aslında bu da uygun olmayanı uygunsuz biçimde kullanmaya çalışmaktan ve iText in Action kitabında yazan kurala uymamaktan kaynaklanıyor. Senin "boş gözüken sayfa" problemin de aslına bakarsan bu.

İki xfa içerikli pdf'i birleştiriyor olsan önerilen şey, pdf içindeki xfa bilgisini alıp, kendi çabalarınla node'ları sıralayıp/değiştirip, ardından xfa bilgisini tekrar pdf içine gömmen. Ancak mesele bir AcroForm ile xfa'yı birleştirmek olunca bunu nasıl yapacağını net olarak söyleyemiyorum. Sadece şunu önerebilirim:

Biliyorsun her pdf objesi üzerinde bir xfa nesnesi var(xfa formatında olmayanlarda bu null oluyor). AcroForm'a sahip pdf için boş node'lu bir xfa tanımlar ve pdf'e setlersen(setXfa metodu ile), diğer xfa içeriği ile birlikte onu da yukarıda bahsettiğim şekilde 2. sayfa olacak şekilde editleyerek birleştirme yapabilirsin. Burada biraz aslında işin üçkağıdına kaçmış olursun, ancak çalışması mümkün olur.

Birleştirilmiş xfa yapısı için iki sayfadan oluşan ve iki sayfası da xfa formatında olan bir pdf bulup xfa xml içeriğine bakarsan çıkarman gereken format açısından yardımı olacaktır diye düşünüyorum. Buradaki yapıya göre AcroForm'un xfa xlm'inin hangi yapıda, geriye kalan xfa özellikli pdf'in xfa xml'inin hangi yapıda olacağına karar verebilirsin.

permanent link

cevaplandı: 12 Tem '12, 23:33

mabulgu's gravatar image

mabulgu ♦
2.8k43040
cevap kabul oranı: 26%

Biraz daha xfa dinamik dosyalar üzerinde yoğunlaşmam gerekiyor. Çok doyurucu bilgiler aldım, yardımlarınız ve vakit ayırdığınız için teşekkür ederim.

(13 Tem '12, 00:54) igunes igunes's gravatar image

Rica ederim. Eğer yoğunlaşacağım diyorsan iText in Action (http://www.manning.com/lowagie2/) kitabını edinmeni şiddetle tavsiye ederim. Benim burada kısaca anlatmaya çalıştığım şeyleri daha güzel ve detaylıca anlatıyor. İnternette pdf versiyonu da mevcut.

(13 Tem '12, 13:35) mabulgu ♦ mabulgu's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,076
×11
×6

Soruldu: 12 Tem '12, 05:37

Görüntüleme: 1,110 kez

Son güncelleme: 13 Tem '12, 13:35

powered by BitNami OSQA