WebBrowser pdf

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

WebBrowser pdf

Mesaj gönderen smokie »

Merhabalar,

https://ebildirge.sgk.gov.tr sitesinden pdf formatındaki hizmet listesini indirmeye çalışıyorum.
Aslında tırmalıyorum..

ebeyanname.gov.tr da beyanname tahakkuklarını indirmek için beyan idler ile indirme linkini elde edebiliyordum.

ama ebildirge de nasıl bişey yapmışlar anlayamadım.

Kod: Tümünü seç

javascript: form1.action='/WPEB/HizmetListesi.pdf?rapor=BordroRaporu&o=e&n=0';          form1.target='newp';    form1.submit() 
ile tahakkuk görüntülenebiliyor.

her tahakkuk indirme linki böyle çıkıyor. ne bildirge id ne session var. sonundaki degerleri neye göre verdiler çözemedim.

Kod: Tümünü seç

https://ebildirge.sgk.gov.tr/WPEB/HizmetListesi.pdf?rapor=BordroRaporu&o=e&n=0 
Direk indirmeden vazgeçtim, webbrowser da görüntülenen pdf i indirme imkanı var mı?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: WebBrowser pdf

Mesaj gönderen mrmarman »

Merhaba.

- PDF gösterimini ADOBE firmasının ürünü ele aldığından bunun kısa yoldan mümkün olduğunu sanmıyorum. :roll:
- Direkt indirmeyle ilgilenirsen ben çalıştığım kurum portalındaki Bordro bilgilerimi indirmek için kullandığım metodu anlatayım.

- Download işlemi sırasında yeni bir pencere açıyor ama LOGIN bilgilerim bu yeni pencerede olmadığından (çünkü proje dışında sessionID/cookiler vs. 0'lanır) download işlemine geçemiyordum.

- Ben de ne yaptım, WebBrowser'in OnNewWindow eventine bir bypass kodu ekledim. Nasıl ?!

- Her download işlemi için yeni bir TWebBrowser nesnesi tanımladım. Tabi her tanımladığımı hatırlamak için Dinamik bir ARRAY içinde tuttum. :idea:

- FormClose edilirken download işleminin bittiğini varsayıp tümünü FREE ediyorum. MemoryLeak kırıntı vs. bırakmıyorum. :)

- Daha detaylı bir kontrol ile, atıyorum 5 dakikada bir işi biteni bulur free ederim ama attığım taş ürküttüğüm kurbağa hesabı yaparak buna gerek duymadım. :wink:

- Göreceğin üzere her WebBrowser ekranın sınırları dışında bulunduğundan görüntü kirliliği yaratmadığı gibi, aynı proje içinde olduğundan Session ve Cookie paylaşımı doğal oluştu. Çünkü her defasında OnNewWindow2 eventinde ppdisp üzerinden tüm iletişimi bu yeni create edilen WebBrowser'a transfer ediyoruz.

Kod: Tümünü seç

Var
  SilinecekBrowser : Array of TWebBrowser;

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
Var
  i : Integer;
begin
  i := High(SilinecekBrowser) - Low(SilinecekBrowser)+1;
  if i <= 0 then i := 0;
  SetLength( SilinecekBrowser, i+1 );
  SilinecekBrowser[i] := TWebBrowser.Create(nil);
  With SilinecekBrowser[i] do begin
    Width   := 100;
    Height  := 100;
    Left    := -150;
    Top     := -150;
    Visible := True;
    ppDisp := DefaultInterface;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var
  i : Integer;
begin
  if  ( High(SilinecekBrowser) - Low(SilinecekBrowser) +1) > 0 then
  for i := Low(SilinecekBrowser) to High(SilinecekBrowser) do begin
    SilinecekBrowser[i].Free;
  end;
end;

Dene ve sonucu bildir.
Resim
Resim ....Resim
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: WebBrowser pdf

Mesaj gönderen smokie »

Merhabalar,

Görüntülemede bir sorun yok aslında, Tahakkuk görüntülediğim de (PDF) mevcut webbrowser içinde açılıyor.

ebeyanname de IDM ile linkine baktığımda beyan id ile beyanname linkini elde edip görüntülemeden indiriyorum.
ebildirge yi IDM da bildirge linkini inceliyorum, tırt :roll: bütün bildirge linkler aynı.

Hocam anlatımınız için çok teşekkürler.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: WebBrowser pdf

Mesaj gönderen mrmarman »

Rica ederim,
Ben de otomatik download başlatıyor da onu dizginlemeye çalışıyorsun diye değerlendirmiştim.

Sonuç olarak linklerin aynı olması SESSION/Cookie/ViewState/EventValidate değerlerinin aynı olması demek olmuyor. Download başlarken referans daime en son yüklenmiş sayfa bütünüdür.

Bu linki login olmadan kullanabiliyor musun ? HAYIR ( aksi ise otomatik login opsiyonun kapalı olduğuna dikkat ederek cevapla ) yoksa aynı linkle ben de indirebilirdim değil mi :)
Resim
Resim ....Resim
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: WebBrowser pdf

Mesaj gönderen smokie »

Merhaba,

Hocam benim sorunumu benden güzel dile getiriyorsun.
Session da mutabıkız, Her oturumda bir sesion var. var da nerede :) sorun onu bulup linke dahil edebilmek idi.

refno buldum. iki gün bunu linke dahil edebilmek için uğraştım. Nafile.
Ben illaki pdf linkini oluşturup direk indirmek için uğraştım. ebeyanname de bu şekilde yapmıştım, pdf indirip içinden gerekli bilgileri alıyordum.
Bunda direk Html indirip içinden gerekli bilgileri alacağım. Bu şekilde daha iyi olacak, pdf içinden bilgi almaktan daha kolay olacak.

Hocam Tekrar Teşekkür Eder, İyi çalışmalar dilerim..
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: WebBrowser pdf

Mesaj gönderen smokie »

Merhabalar,

Hocam, kendimce çözümü içeriği html formatında alırım sorun çözülür dedim ama, Html içerik de barkod çıkmıyor.

Kod: Tümünü seç

procedure WBPrintNoDialog(WB: TWebBrowser) ;
var
  vIn, vOut: OleVariant;
begin
 //WebBrowser.ControlInterface.ExecWB(OLECMDID_SAVEAS,  OLECMDEXECOPT_PROMPTUSER, vIn, vOut);
   WebBrowser.ControlInterface.ExecWB(OLECMDID_SAVEAS,  OLECMDEXECOPT_DONTPROMPTUSER, vIn, vOut);
end;
Farklı kaydet seçeneği ile içeriği (Pdf) alıyorum.

fakat dialog penceresini açmadan kayıt etmek mümkün mü?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: WebBrowser pdf

Mesaj gönderen mrmarman »

HTML içerikte barcode var da alamıyorum mu demek istedin yoksa HTML içerik görüntülenirken sunucu tarafında Barcode hiç oluşturulmuyor mu?

Barcode bir resim olarak var olduğundan OCR örneğinde verdiğim şekilde resim olarak Barcode'un kendisini alabilirsin.

Ayrıca farklı kaydet dediğinde açılan pencerenin otomatik doldurulmasını sağlama imkanı da var.

Dialog penceresini execute eden taraf sen olduğuna göre session açık iken linki aynı webbrowser'a yazdığında download edebileceğini yeniden hatırlatmak isterim.
Resim
Resim ....Resim
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: WebBrowser pdf

Mesaj gönderen smokie »

Hocam yardımların için çok teşekkürler.
mrmarman yazdı:session açık iken linki aynı webbrowser'a yazdığında download edebileceğini yeniden hatırlatmak isterim.
Hocam sorunda burasıydı. indirme linkini oluşturamamıştım. Türetilmiş webbrowser larda görüntülemeden direk indirme linki oluşturmada sorun vardı. An itibariyle çözdüm.

Tekrar teşekkür eder, iyi çalışmalar dilerim.
Cevapla