2011-12-09 35 views
7

ITextSharp veya PDFBox kullanan pdf dosyalarından metin ayıklamak için örnekler gördüm. PDFBox, metin çıkarmak için en "güvenilir" yöntem gibi görünüyor, ancak birçok ek adım gerektirir..Net için PDFBox Nasıl Oluşturulur

dll'leri here numaralı yönergeyi kullanarak oluşturmaya çalıştım, ancak .Net için gereken dosyaları doğru şekilde nasıl oluşturacağımı bilmiyorum.

Oldukça kayıp, birisi "Adım Aptallar için .Net uygulamasında PDFBox ekle" adım adım sağlayabilir mi?

+0

Bu nasıl java ve lucene ile ilişkilidir? – Manish

+2

PDFBox, Java'da yazılmıştır ve genellikle Lucene ile birlikte kullanılır. IKVM kullanarak .Net'te bir Java uygulaması kullanmaya çalışıyorum. – SharpBarb

cevap

21

Sonunda işe koyuldum. Çalışan bir örnek almak için takip ettiğim adımları özetledim. Umarım birisi bunu faydalı bulur.

İndir Java JDK
İndir IKVM 0.42.0.6
İndir PDFBox 1.6.0-src.zip

Ant Manual yardımcı oldu.

isimlerini kısaltmak Ant ve PDFBox klasörleri yeniden adlandırılmış ve onlara benim C taşındı: kurulumu için çevre Değişkenler sürücüyü

Sen var. (Windows 7) Bilgisayarım-> Özellikler-> Gelişmiş Sistem Ayarları-> Ortam Değişkenleri'ni sağ tıklatın.

Aşağıdaki ayarları kullandım, ancak sizin Java'yı nereye yüklediğinize ve Ant ve PDF'yi nereye koyacağınıza bağlı olarak değişecektir. Kutu klasörleri.

 
Variable Value 
ANT_HOME C:\apache-ant\ 
JAVA_HOME C:\Program Files (x86)\Java\jdk1.7.0_01 
Path  ;C:\apache-ant\bin\  (Append semi-colon and path) 

kez yapıldığını Yukarıdaki tüm kurulum doğru ise, bir komut penceresinde “karınca” yazın, bir “Build.xml yok!” Mesajını almalısınız.

”pdfbox-1.6.0 \ pdfbox” klasörünün içindeki build.xml dosyasını düzenleyin. olan satırı bulun “. IKVM Klasör Yolunuz” ile “.” Değiştirin.

Açık bir komut penceresi ve cd için: maden benziyor bu yüzden “C: \ pdfbox-1.6.0 \ pdfbox“ve ‘karınca’

yazın:

ben “IKVM \ C" için IKVM taşındı

... ve sonra bir mucize gerçekleşir.

şimdi pdfbox klasöründe olması gereken yeni klasörlerin bir demet. gerekli dll bin klasöründe bulunmaktadır. nedenini bilmiyorum, ama “-SNAPSHOT” var ve tüm dosyalarımın sonu (pdfbox-1.6.0-SNAPSHOT.dll)

IKVM.GNU.Classpath (IKVM.OpenJDK.Classpath olarak da bilinir) artık mevcut değil, 0.40 sürümünden beri modülerleştirildi. Şimdi birkaç IKVM.OpenJDK dll’i biçiminde kullanılabilir. Sadece bir kaçına ihtiyacın var.

Visual Studio C# yeni bir proje oluşturun

Kopya Visual C# projesi bin klasörünün bin klasörüne pdfBox bin klasöründen bu dosyalar:

 
pdfbox-1.6.0-SNAPSHOT.dll 
fontbox-1.6.0-SNAPSHOT.dll 
commons-logging.dll 

kopyala iKVM bölmesinden bu dosyalar Visual C# projesi bin klasörünün bin klasörüne klasör:

 
IKVM.OpenJDK.Core.dll 
IKVM.OpenJDK.SwingAWT.dll 
IKVM.OpenJDK.Text.dll 
IKVM.OpenJDK.Util.dll 
IKVM.Runtime.dll 

yukarıdaki IKVM dll 'başvurular ekleme ve proje oluşturmak.

pdfbox dll'ye bir başvuru ekleyin ve projenizi yeniden oluşturun.

Artık bir kod yazmaya hazırsınız. Aşağıdaki basit örnek giriş pdf'den güzel bir metin dosyası oluşturdu.

using System; 
using System.IO; 

using org.apache.pdfbox.pdmodel; 
using org.apache.pdfbox.util; 

namespace testPDF 
{ 
class Program 
{ 
    static void Main() 
    { 
     PDFtoText pdf = new PDFtoText(); 

     string pdfText = pdf.parsePDF(@"C:\Sample.pdf"); 

     using (StreamWriter writer = new StreamWriter(@"C:\Sample.txt")) 
     { writer.Write(pdfText); } 

    } 

    class PDFtoText 
    { 
     public string parsePDF(string filepath) 
     { 
      PDDocument document = PDDocument.load(filepath); 
      PDFTextStripper stripper = new PDFTextStripper(); 
      return stripper.getText(document); 
     } 

    } 
} 

} 
+1

Ayrıca bir OCR katmanından metni okumak için IKVM.OpenJDK.Text.dll dosyasına ihtiyaç duyduğunuzu fark ettim. – SharpBarb

+0

Ant, kullanımdan kaldırıldı ve Maven ile değiştirildi. [Daha fazla bilgi] (http://pdfbox.apache.org/building.html). – basiphobe

+0

Nazik açıklamalarınız için teşekkür ederiz. Birisi bu yardımcı yazıyı tanıttı ama ben tamamen Java ile ilgili değilim ve anlamak için çok fakirim. Umarım harika işine! –

İlgili konular