Merhaba,
Bu yazımda c# ‘da pdf dökümanı görüntülemenin detaylarına ineceğim.Aslında bunu yapmak oldukça kolay. Adobe Pdf Reader’ın bir componenti var onu formumuza sürüklüyoruz yol gösteriyoruz oluyor.Ancak içeriye hiçbir müdahele mümkün değil.Yani dökümanı kaydet butonu olmasın derseniz yapabileceğiniz hiçbir şey yok.API’leri oldukça kısıtlı.
Neden bu kadar irdeledim: Sadece pdf dökümanın görüntülenebileceği kaydedilip yazdırılamayacağı bi component lazımdı.En azından API’leri sağlam olursa bunu başarabilirim diye düşündüm.Ama ben yine de bu yazımda keşfettiğim bütün yolları eksisiyle artısıyla yazacağım.
1-Adobe Pdf Reader (axAcroPDF): Pdf dökümanı okutturmak istiyorsanız ve pek zamanınız yoksa en iyi yol bu.Ancak yukarıda da dediğim gibi içerisine hiç müdahele edemiyorsunuz.Garip bir şekilde geliştirme aşamasında run-time hatalar verebiliyor.VS de toolbox’a sağ tıklayıp choose items diyoruz.Com components’e giriyoruz Adobe Pdf Reader’ı işaretleyip Ok diyoruz.Component toolboxımıza eklendi artık onu forma sürüklemek suretinde kullanabiliriz.
2-DynamicPDF Viewer (axDynamicPDFViewer): API leri oldukça düzgün kullanışlı ve pratik ancak kendine ait bir setup’ı var ve onu istemci bilgisayara kurmadan kullanmanız mümkün değil. Herşeyi geçtim yine de kullanırım bunu diyorken bir de baktım üzerinde DynamicPDF Viewer , For Evulation Only yazıyor. Meğer ücretliymiş.Pek önermiyorum zaten isteyenler detaylı bilgiyi kendi sitesinden bulabilirler.
3-pdfviewernet : Açık kaynak bir pdf görüntüleyicisi.Ancak eksiği .net 4.0 da çalışmaması.Çalışması için .net 3.5 da projeyi derlemeniz gerekiyor.Eğer 4.0 da derlerseniz şöyle bir hata alacaksınız.
Yöntem uygulamasında başvurulan bildirim final (son) türünde olamaz. Tür: ‘PDFLibNet.xPDFBinaryReader’. Derleme: ‘PDFLibNet, Version=1.0.6.6, Culture=neutral, PublicKeyToken=26d87f7d66fb2aee’.
Diyelim ki sizin için önemli değil veya zaten 3.5 da çalışıyorsunuz o zaman gelelim bunu nasıl kullanacağımıza.Kullanmak için şu adımları takip etmeniz yeterli:
3.a- Bu dosyayı indirin
3.b- rar dosyasını açtıktan sonra içindeki \PDFView\bin dizinine erişin ve oradaki şu 4 dll dosyasını Projenizin References kısmına sağ tıklayıp Add Refence diyerek Com kısmındaki Browse’dan projeye import edelim.
- itextsharp.dll
- PDFLibNET.dll
- tessnet2_32.dll
- PDFView.dll
3.c- Artık Aşağıdaki Kodları ekleyerek kullanabilirsiniz:
PDFView.PDFViewer PDFViewer = new PDFView.PDFViewer(); PDFViewer.UseXPDF = true; PDFViewer.FileName = "C:\\a.pdf"; PDFViewer.AllowBookmarks = true; PDFViewer.Dock = DockStyle.Fill; this.Controls.Add(PDFViewer);
3.d- Peki nasıl kaydetmenin önüne geçeceğiz(sol üstte kaydet butonu var) ya da nasıl türkçeleştireceğiz.Bunun için kaynak kodunda biraz dolaşmam yeterli oldu (ilk indirdiğimiz dosyada bulabilirsiniz).Kendi oluşturduğum kod dizisi şu şekilde:
ToolStrip tool = ((ToolStrip)PDFViewer.Controls["ToolStrip1"]);
tool.Items["ToolStripLabel2"].Text = "Sayfaya Git";
tool.Items["tsPrint"].Visible = false;
tool.Items["tsPageLabel"].Visible = false;
tool.Items["ToolStripSeparator4"].Visible = false;
tool.Items["ToolStripSeparator1"].Visible = false;
tool.Items["tsNext"].ToolTipText="Sonraki Sayfa";
tool.Items["tsPrevious"].ToolTipText="Önceki Sayfa";
tool.Items["tsRotateCC"].Visible=false;
tool.Items["tsRotateC"].Visible=false;
tool.Items["tsZoomOut"].ToolTipText = "Küçült";
tool.Items["tsZoomIn"].ToolTipText="Büyüt";
((ToolStripComboBox)tool.Items["tscbZoom"]).Visible = false;
PDFViewer.Controls[0].Controls[0].Hide();
tabi üzerinde oynamalar yapmanız da mümkün.
Benim pdf görüntüleme konusundaki araştırma sonuçlarım bu şekilde.Umarım faydalı olur.
İyi Çalışmalar
.net 4.0 ile gelen hatayı başka bir dll kullanarak çözdüm eğer lazım olan olursa
http://code.google.com/p/pdfviewer-win32/downloads/detail?name=PDFViewerNET40x86.zip&can=2&q=
Windows 7 32 bit ile sorunsuz çalışıyor
İyi Kodlamalar