Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
WebBrowser Pdf Kayıt Etme
#1
Merhabalar,

Delphi de tasarladığım arayüz ile siteye giriş yapıyorum. 
WebBrowser1 de bunu gösteriyorum. Gelen Sayfayı Pdf olarak Bilgisayara kayıt etmek istiyorum. 

Şu anda ekran resmini alıp kayıt yapabiliyorum. ( jpeg ) formatında. Buradaki sorun ekrana sığmayan liste tarzı bilgi olursa alt tarafını göremiyorum. Bunun için WebBrowser1 deki gelen bilgileri pdf olarak kayıt edersem ekrandaki bilgiler tam kayıt altına alınmış olur.  

Şimdiden Teşekkürler


Ek Dosyalar Resimler
   
Cevapla
#2
(10-04-2023, Saat: 15:27)sadoal351 Adlı Kullanıcıdan Alıntı: Merhabalar,

Delphi de tasarladığım arayüz ile siteye giriş yapıyorum. 
WebBrowser1 de bunu gösteriyorum. Gelen Sayfayı Pdf olarak Bilgisayara kayıt etmek istiyorum. 

Şu anda ekran resmini alıp kayıt yapabiliyorum. ( jpeg ) formatında. Buradaki sorun ekrana sığmayan liste tarzı bilgi olursa alt tarafını göremiyorum. Bunun için WebBrowser1 deki gelen bilgileri pdf olarak kayıt edersem ekrandaki bilgiler tam kayıt altına alınmış olur.  

Şimdiden Teşekkürler

Evet, WebBrowser'daki gelen bilgileri PDF olarak kaydetmek, ekrana sığmayan bilgilerin tamamını kaydedebilmenizi sağlayabilir.

Bunun için Delphi'de PDF dönüştürme işlemini gerçekleştirebilecek üçüncü taraf bir kütüphane kullanabilirsiniz. Daha spesifik olarak, iTextSharp veya PDFSharp gibi açık kaynak kodlu kütüphaneler kullanılabilir. Bu kütüphaneler, HTML dosyalarını PDF olarak dönüştürmek için kullanılabilir.

Aşağıdaki adımları takip ederek WebBrowser'daki sayfayı PDF olarak kaydetmek için PDFSharp kütüphanesini kullanabilirsiniz:

1. PDFSharp nuget paketini yükleyin.

2. PDF dönüştürme işlemini gerçekleştirecek ayrı bir fonksiyon tanımlayın. Bu fonksiyon, WebBrowser'ın DocumentCompleted olayında çağrılmalıdır ve oluşturulan PDF dosyasını belirtilen yola kaydeder.
   uses
     PdfSharp, PdfSharp.Pdf, PdfSharp.Drawing, PdfSharp.Forms;

  procedure HtmlToPdf(html:String; fileName:String);
  var
    tmpFile : string;
    pdf: PdfDocument;
    page: PdfPage;
    gfx: XGraphics;
    htmlRenderer: HtmlRenderer;
    ms : TMemoryStream;
  begin
    tmpFile := ChangeFileExt(fileName, '.html');

    // Html dosyası oluştur
    TFile.WriteAllText(tmpFile, html);

    // Pdf dosyası oluştur
    pdf := new PdfDocument();
    page := pdf.AddPage();
    gfx := XGraphics.FromPdfPage(page);
    XFontResolver.SetFontResolver(New MyFontResolver());
    htmlRenderer := new HtmlRenderer();

    // Html dosyasını PDF olarak dönüştür
    htmlRenderer.Render(HtmlLoader.Load(tmpFile), gfx);

    // PDF dosyasını kaydet
    ms := new TMemoryStream;
    pdf.Save(ms);
    ms.Seek(0, TSeekOrigin.soBeginning);
    ms.SaveToFile(fileName);

    pdf := nil;
    ms := nil;
    TFile.(tmpFile);
  end;

3. WebBrowser'ın DocumentCompleted olayında HtmlToPdf fonksiyonunu çağırın ve PDF dosyasının kaydedileceği yolu belirtin.
   procedure TForm1.WebBrowser1DocumentCompleted(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
   begin
    HtmlToPdf(WebBrowser1.DocumentText, 'C:\Temp\MyPdfFile.pdf');
  end;

Bu adımları izleyerek, WebBrowser'da görüntülenen sayfayı PDF olarak kaydedebilirsiniz. Böylece ekranın sığmadığı bilgileri de kaydederek tam bir görüntüye sahip olabilirsiniz.
-----------------------------------------
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap veritabanı kayıt serdar 2 350 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 4.238 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
Information Uygulama yönetici olarak mı çalışıyor? (runtime tespit etme) bakyuz 0 395 28-04-2025, Saat: 17:22
Son Yorum: bakyuz
  fastreport şablonu database e kayıt ercanskose 11 2.437 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  MSSQL Kayıt yöntemi nevzatc 2 709 16-12-2024, Saat: 17:40
Son Yorum: mustafaozpinar



Konuyu Okuyanlar: 1 Ziyaretçi