C# i čitanje PDF-a

poruka: 15
|
čitano: 9.085
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
C# i čitanje PDF-a

Dakle,


nakon par dana provedenih na Googlu i raznim "code-site"-ovima i pokušajima u Visual Studiu došao sam do vrlo zanimljive činjenice: "Čitanje PDF-a (uključujuči hrvatske znakove) je sj***no!" {#}
Većina "tutorial"-a, primjera itd. vežu se uz stvaranje PDF-a, upisivanje teksta, unos slike itd, ali glavni problem je: Čitanje istog. 

 

(Pokušao sam korištenjem iTextSharp.dll, PDFBox-1-4-0 ...)
Najdalje što sam došao s čitanjem PDF-a jest korištenje sljedećih .dll-ova:
- IKVM.GNU.Classpath
- IKVM.Runtime
- PDFBox-0.7.2

 

ALI (da, to je taj poznati problematični ali), korištenjem implementiranih klasa čitač ne čita slovo 'ć' već ga prepoznaje kao 'd'{#}

Zanima me je li se itko od vas zabavljao s čitanjem PDF-a (samo tekst naravno)? Je li uspjevalo? Na koji način? (:

Divide et Impera! ( :
 
0 0 hvala 0
15 godina
odjavljen
offline
C# i čitanje PDF-a

Što želiš točno postići? Ja sam radio Java applet koji između ostalog prikazuje PDF dokument. Koristio sam Sun-ov PDF Renderer i prikazuje mi uredno znakove (stranicu prikazujem kao sliku). Ako želiš kopati baš stringove u PDF-u, to je malo teži problem zbog načina spremanja stringova u PDF.

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
 
1 0 hvala 0
13 godina
neaktivan
offline
C# i čitanje PDF-a

Da, prikaz i pisanje u PDF je puno lakše nego čitanje. Meni treba čitanje teksta (odnosno stringova).

Pomoću iTextSharp.dll postoji metoda koja vraća sve bajtove određene stranice u PDF-u, ali utf-8 ili bilo kojim drugim dekodiranjem dobije se praktički 'džungla' :S.

 

EDIT: Čitanje (samo) engleskih znakova iz PDF-a je moguće i radi odlično pomoću tri nabrojena .dll koje sam spomenuo u prvom postu. Problem su dakle: (u mom slučaju) hrvatska slova

Divide et Impera! ( :
Poruka je uređivana zadnji put sub 12.2.2011 23:30 (BolestanUm).
 
0 0 hvala 0
15 godina
odjavljen
offline
Re: C# i čitanje PDF-a

Evo ti par natuknica iz knjige iText in action:

 

18.2.2. Why iText doesn’t do text extraction:

"In reality, the different letters of the text can be drawn in any random order."

"Even if all the characters are in the right order, there may be kerning information between letters, adjusting the space between the letters so they look better"

"It’s possible for a PDF to have a font containing characters marked a, b, c, and so on, but for the shapes drawn in the PDF file for each character not to correspond with the glyphs a, b, and c"

"More likely, the PDF-generating software does this deliberately, such as when a large font is used but all the text can be shown using only 256 different glyphs. In this case, the software picks character names at random according to the glyphs that are used."

"Another possibility is that the text in the content stream consists of raw glyph indexes: the nth character of this font. You then have to write code that goes through the character mapping and is able to find the right letter."

 

Long story short: Čitati stringove možeš, ali što ćeš dobiti najviše ovisi o aplikaciji kojom je kreiran dokument. Vjerojatno je u tvom slučaju korištena aplikacija koja tekst bez specijalnih znakova ostavlja u najobičnijem stringu, ali ako detektira specijane znakove koristi drugačiji character mapping.

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
15 godina
offline
C# i čitanje PDF-a

Ja san koristija nekakav dll za pisanje u pdf (pisao je čćžšđ bez problema). Ako moze pisat, valjda moze i citat. Pogledat cu u ponediljak kad dodjen u firmu, to mi je negdi tamo po disku...

Nesto mi se dogadja. Dopiydilo mi je piydit :(
 
1 0 hvala 0
15 godina
odjavljen
offline
Re: C# i čitanje PDF-a
tnakir kaže...

Ja san koristija nekakav dll za pisanje u pdf (pisao je čćžšđ bez problema). Ako moze pisat, valjda moze i citat. Pogledat cu u ponediljak kad dodjen u firmu, to mi je negdi tamo po disku...

iTextSharp.dll (odnosno iText.jar ako radiš u javi) nema problema s pisanjem Hrvatskih znakova. Većina programa nema i ti znakovi se uredno prikazuju u reader-u, ali pročitati string u onom obliku u kojem se pokazuje na stranici može biti ekstremno teško zbog razloga koji su navedeni u mom prethodnom postu.

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
16 godina
protjeran
offline
C# i čitanje PDF-a

Imao sam jednu VBS skriptu (dvije ili tri linije koda) koja je ako se dobro sječam izvlačila text iz pdf-a, preko MS Worda. Tu VBS bih pozvao iz C# i rezultat (text) spremio u bazu. Klijent naravno mora imati instaliran Office. Ako te zanima i to je ono što ti treba, potražim sutra taj kod pa stavim na forum.

Programko http://programko.bloger.hr
 
1 0 hvala 0
13 godina
neaktivan
offline
C# i čitanje PDF-a

Zamolio bi @tnakir i @Programko da vidite pa javite možete li čitati hrvatske znakove iz PDF-a. Iako sumnjam da će uspjeti jer ima istine u onom što je @MrBlc rekao.

Divide et Impera! ( :
 
0 0 hvala 0
15 godina
offline
Re: C# i čitanje PDF-a
MrBlc kaže...
tnakir kaže...

Ja san koristija nekakav dll za pisanje u pdf (pisao je čćžšđ bez problema). Ako moze pisat, valjda moze i citat. Pogledat cu u ponediljak kad dodjen u firmu, to mi je negdi tamo po disku...

iTextSharp.dll (odnosno iText.jar ako radiš u javi) nema problema s pisanjem Hrvatskih znakova. Većina programa nema i ti znakovi se uredno prikazuju u reader-u, ali pročitati string u onom obliku u kojem se pokazuje na stranici može biti ekstremno teško zbog razloga koji su navedeni u mom prethodnom postu.

I ja mislim da je to to. Besplatno, jednostavno i brzo. Samo ako ti je PDF "flattan" onda se mos hebat, morat ces preko nekakve ocr kontrole to radit.

Nesto mi se dogadja. Dopiydilo mi je piydit :(
15 godina
odjavljen
offline
Re: C# i čitanje PDF-a
tnakir kaže...

I ja mislim da je to to. Besplatno, jednostavno i brzo. Samo ako ti je PDF "flattan" onda se mos hebat, morat ces preko nekakve ocr kontrole to radit.

Nema flattanje veze s tim. Flattanje se odnosi na forme koje nakon flattanja prestaju biti interaktivni elementi. Obično optimizacija dokumenta presloži tekst na način da je prikladniji za djelomično učitavanje, pa zna stringove izmiješat, a možda i promijenit kodiranje i character mapping ako može postići manju veličinu datoteke.

 

Glavno pitanje je namjena programa za vađenje teksta. Ako se radi o zatvorenom sustavu u kojem se dokumenti kreiraju i samo iz takvih dokumenata treba vadit tekst, onda bi se moglo poraditi nakonverziji u PDF i osigurati što jednostavniji način spremanja stringova u svrhu lakšeg vađenja, ali u tom slučaju PDF nije idealan izbor osim ako ne postoji neki stvarno opravdani razlog. U generalnom slučaju, treba pokriti sve mogućnosti, a to je ogroman zahvat.

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
Poruka je uređivana zadnji put ned 13.2.2011 16:46 (MrBlc).
15 godina
offline
C# i čitanje PDF-a

Confirmed - itextsharp.dll

Nesto mi se dogadja. Dopiydilo mi je piydit :(
 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# i čitanje PDF-a
tnakir kaže...

Confirmed - itextsharp.dll

 

Mi u firmi koristimo isti taj dll i nismo imali nikakvih problema do sada!

Freak Show Inc.
13 godina
neaktivan
offline
Re: C# i čitanje PDF-a
Friday kaže...
tnakir kaže...

Confirmed - itextsharp.dll

 

Mi u firmi koristimo isti taj dll i nismo imali nikakvih problema do sada!

 

Hmm, i možeš normalno čitati znakove (č, ć, š, ž) iz PDF-a?

Btw. nasao sam opciju unutar Adobe Readera (File -> Save as Text) i super parsira PDF u tekstualnu datoteku. Trazio sam upit preko komandne linije, ali nigdje nema za parsiranje. Pitao sam na Adobe Forumu postoji li poziv preko komandne linije za Save as Text.
Ako ne bude postojalo, nemam druge nego preko komandne linije otvorit PDF, i pomocu Virtual Key preko C-a simulirat File pa Save As Text {#} 

Divide et Impera! ( :
16 godina
odjavljen
offline
Re: C# i čitanje PDF-a
BolestanUm kaže...
Friday kaže...
tnakir kaže...

Confirmed - itextsharp.dll

 

Mi u firmi koristimo isti taj dll i nismo imali nikakvih problema do sada!

 

Hmm, i možeš normalno čitati znakove (č, ć, š, ž) iz PDF-a?

Btw. nasao sam opciju unutar Adobe Readera (File -> Save as Text) i super parsira PDF u tekstualnu datoteku. Trazio sam upit preko komandne linije, ali nigdje nema za parsiranje. Pitao sam na Adobe Forumu postoji li poziv preko komandne linije za Save as Text.
Ako ne bude postojalo, nemam druge nego preko komandne linije otvorit PDF, i pomocu Virtual Key preko C-a simulirat File pa Save As Text {#} 

 

Pa po onome što sam ja vidio - da! Imamo hrpetinu nekih ugovora i koječega, sve izgleda OK!

Freak Show Inc.
9 godina
neaktivan
offline
Re: C# i čitanje PDF-a
Evo da ne otvaram novu temu
Ukratko počeo sam koristiti itextsharp kako bi pisao u pdf, ali sad mi se on interferira s prošlim kodom
Npr. Prije nego sam uključio itextsharp napisao sam liniju koda
Textbox1.font = new font(fontfamily. Generic....)
Sada mi izbacuje error font is an ambiguous...

Pomozite
PeMaCN
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice