Delphi Can

Orjinalini görmek için tıklayınız: PDF Dosyayı İki A5 Olarak Yazdırma
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhabalar,


Elimizde 200-300 civarı PDF dosyalar var. Bunlar A4 olarak mevcut.
Amacımız bunları bir A4 sayfaya yatay olarak (A5+A5) iki nüsha şeklinde basmak istiyoruz.

Bir kaç deneme farklı programlar ile denedik ama tam olarak istediğimize alamadık.
Acaba farklı bilgi, öneri veya tecrübesi olan arkadaşlar yardımcı olabilirler ise sevinirim.

Teşekkürler.


Örnek ;

[attachment=2121]
Hocam tek seferlik bir işse bırakacağım link işinizi görebilir(mi?) Değilse, yani yazdığınız bir uygulamanın bunu otomatik yapması gerekiyorsa, Delphi tarafında bilemiyorum ama Python ve PyPDF2 kütüphanesi çözüm yollarından biri olabilir diye düşünüyorum.
https://superuser.com/questions/235074/h...327#235327
Elinizde 300 sayfalık tek bir PDF mi var? Her PDF tek sayfa mı? Yoksa farklı sayfalarda çok sayıda PDF dosyası mı?
@engerex benim anladığım, elinde tek sayfadan oluşan yüzlerce pdf var (adisyon, anket vs gibi), her bir pdf'i yatay pozisyonda yan yana gelecek şekilde ayrı ayrı yazdırmak istiyor, yani dikeyde yazdırılan tek sayfa yerine, yatayda yine tek sayfada 2 nüsha olsun istiyor... olarak anladım yanlış anlamadı isem.
Sanal bir yazıcı olan Fineprint ile sanırım istediğinizi yapabilirsiniz, A4 ü, 1,2,4,8 e bölme, kitap basma vb. yetenekleri var.

https://fineprint.com/fp/

200 adet tekli pdf ise, her bir pdfi  (pdf görüntüleyici veya yazdığınız bir uygulama ile) sanal yazıcı olarak kurulan, fine printe gönderirsiniz. Fine print gelen baskı isteklerini biriktirir, işlem sonunda sayfayı ikiye bölmeyi seçip A5 A5 şeklinde gerçek yazıcıyı seçip çıktı alabilir, pdf yazıcıyı seçip pdf e çevirebilir veya popüler resim formatlarında kayıt edebilirsiniz.

9927919d77bd45a9bf12c0957c931195.jpg
Sizin için hazırladığım python betiği, çalıştırıldığı klasördeki pdf'leri yan yana birleştirerek aynı klasöre yeni bir pdf dosyası olarak kaydediyor. Örneğin aPDF.pdf dosyası için, yan yana 2 tane aPDF içeriğini birleştirip _aPDF.pdf adı ile aynı klasöre kaydediyor. (PDF dosya sayısı kadar dönen bir döngü var olduğunu fark ettiğiniz için, tek çalıştırmada bütün dosyalarınızı isteğiniz olan (yada benim anladığım) formata sokabileceğinizi söylememe gerek yok Smile )

import glob
from PyPDF3 import PdfFileWriter, PdfFileReader
from PyPDF3.pdf import PageObject

'''pdf_sayisi = (len(glob.glob("*.pdf")))
print("PDF Sayısı  :", pdf_sayisi)'''

pdf_filenames = []
for x in range(len(glob.glob("*.pdf"))):
  pdf_filenames.append(glob.glob("*.pdf")[x])

for x in range(len(pdf_filenames)):
  pdf_filename = [pdf_filenames[x], pdf_filenames[x]]
  input1 = PdfFileReader(open(pdf_filename[0], "rb"), strict=False)
  input2 = PdfFileReader(open(pdf_filename[1], "rb"), strict=False)

  page1 = input1.getPage(0)
  page2 = input2.getPage(0)

  total_width = page1.mediaBox.upperRight[0] + page2.mediaBox.upperRight[0]
  total_height = max([page1.mediaBox.upperRight[1], page2.mediaBox.upperRight[1]])

  new_page = PageObject.createBlankPage(None, total_width, total_height)

  new_page.mergePage(page1)
  new_page.mergeTranslatedPage(page2, page1.mediaBox.upperRight[0], 0)

  output = PdfFileWriter()
  output.addPage(new_page)

  output.write(open("_"+pdf_filename[0], "wb"))
Merhabalar,

Herkese cevaplarından dolayı teşekkür ederim.
Bir kaç bilgi eksik paylaşmışım, kusura bakmayın lütfen.

Bu işlemin özeti e-fatura çıktılarının a4 değilde iki nüsha olacak şekilde yan yana A5+A5=A4 olarak basılmasını için.
Kağıt tasarrufu.

1) Her biri tek paşına bir dosya. (PDF a1.pdf, a2.pdf, .... n)
2) Sürekliliği olan bir iş. Her gün 300 det tek tek PDF dosya üretiliyor.
3) Delphi ile yapılması da gerekmiyor. Yardımcı hazır uygulamalar da olur.

Şimdiden tekrar teşekkür ederim paylaşımlarınız için.
(14-07-2022, Saat: 08:42)hi_selamlar Adlı Kullanıcıdan Alıntı: [ -> ]Merhabalar,

Herkese cevaplarından dolayı teşekkür ederim.
Bir kaç bilgi eksik paylaşmışım, kusura bakmayın lütfen.

Bu işlemin özeti e-fatura çıktılarının a4 değilde iki nüsha olacak şekilde yan yana A5+A5=A4 olarak basılmasını için.
Kağıt tasarrufu.

1) Her biri tek paşına bir dosya. (PDF a1.pdf, a2.pdf, .... n)
2) Sürekliliği olan bir iş. Her gün 300 det tek tek PDF dosya üretiliyor.
3) Delphi ile yapılması da gerekmiyor. Yardımcı hazır uygulamalar da olur.

Şimdiden tekrar teşekkür ederim paylaşımlarınız için.

Alternatif çözümlere açık oluğunuz için fine printe göz atın.  Aşağıdaki resimde bu durumu göstermeye çalıştım. "Repeat pages" seçili ise bir a4  kaça bölünürse o kadar kopya ile doldurulur. Siz bir a4 e  2,4 veya 8 kopyada sığdırabilirsiniz.

Bastığınız doküman birden fazla sayfa olursa da resimdeki gibi tekrarlı şekilde devam eder.

jnt47by.png
(14-07-2022, Saat: 09:26)frmman Adlı Kullanıcıdan Alıntı: [ -> ]
(14-07-2022, Saat: 08:42)hi_selamlar Adlı Kullanıcıdan Alıntı: [ -> ]Merhabalar,

Herkese cevaplarından dolayı teşekkür ederim.
Bir kaç bilgi eksik paylaşmışım, kusura bakmayın lütfen.

Bu işlemin özeti e-fatura çıktılarının a4 değilde iki nüsha olacak şekilde yan yana A5+A5=A4 olarak basılmasını için.
Kağıt tasarrufu.

1) Her biri tek paşına bir dosya. (PDF a1.pdf, a2.pdf, .... n)
2) Sürekliliği olan bir iş. Her gün 300 det tek tek PDF dosya üretiliyor.
3) Delphi ile yapılması da gerekmiyor. Yardımcı hazır uygulamalar da olur.

Şimdiden tekrar teşekkür ederim paylaşımlarınız için.

Alternatif çözümlere açık oluğunuz için fine printe göz atın.  Aşağıdaki resimde bu durumu göstermeye çalıştım. "Repeat pages" seçili ise bir a4  kaça bölünürse o kadar kopya ile doldurulur. Siz bir a4 e  2,4 veya 8 kopyada sığdırabilirsiniz.

Bastığınız doküman birden fazla sayfa olursa da resimdeki gibi tekrarlı şekilde devam eder.

jnt47by.png

Merhabalar,


Paylaşım için teşekkürler. Ürünü deneyip tekrar bilgi vereceğim.
Tekrar teşekkür ederim.


---------------------------------------------------------------------------

Teşekkürler. İstediğimiz gibi oldu.