C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 26.08.2008 14:20, Programování, 19 odpovědí (710 zobrazení) Vyřešen
Zdravim potrebuju nejaky open source projekt/knihovnu, ktera by nebyla prilis slozita a dalo by se zni lehce pouzit nacitani metadat z pdf, popr. knihovnu na rtf a vracet je v nejakem rozumnem formatu. Potrebuju nacitat informace typu: autor, datum, velikost, pocet znaku, pocet stran apod, ukladani neni treba. Dekuji za tipy

Odpovědět


PředmětAutorDatum
Re: C# - open source knihovna pro čtení PDF a RTF los26.08.2008 18:38
Re: C# - open source knihovna pro čtení PDF a RTF TN26.08.2008 19:14
Re: C# - open source knihovna pro čtení PDF a RTF TN26.08.2008 23:38
Re: C# - open source knihovna pro čtení PDF a RTF TN26.08.2008 23:46
Re: C# - open source knihovna pro čtení PDF a RTF los27.08.2008 01:18
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 11:00
Re: C# - open source knihovna pro čtení PDF a RTF los27.08.2008 11:43
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 14:22
Re: C# - open source knihovna pro čtení PDF a RTF los27.08.2008 14:58
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 15:17
Re: C# - open source knihovna pro čtení PDF a RTF los27.08.2008 18:43
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 17:10
Re: C# - open source knihovna pro čtení PDF a RTF los27.08.2008 18:55
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 19:49
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 20:46
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 20:47
Re: C# - open source knihovna pro čtení PDF a RTF TN27.08.2008 21:03
Re: C# - open source knihovna pro čtení PDF a RTF los27.08.2008 23:08
Re: C# - open source knihovna pro čtení PDF a RTF posledníTN27.08.2008 23:23

Re: C# - open source knihovna pro čtení PDF a RTF

los, 26.08.2008 18:38
Nepoužíval som žiadne z nich, ale pre PDF by som vyskúšal niektorú z týchto:
Open Source PDF Libraries in C#.

Napríklad iTextSharp vyzerá, že by to mohol zvládnuť.
HTTP 200 OK

↑ Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 26.08.2008 19:14
diky, ja tudle stranku nasel googlem taky, ale spis sem myslel jestli nekdo nedoporuci podle zkusenosti ktera by mi vyhovovala podle popisu... ale i tak me velike diky, ze se zabyvate zde poradenstvim a bezplatne, cest vam vsem ;-)

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 26.08.2008 23:38
Z te stranky:http://csharp-source.net/open-source/pdf-libraries

jsem zkusil vsechny az na:iTextSharp, ASP.NET FO PDF, PDFjet Open Source Edition. U tech nasledujicich mam nasledujici problemy:

PDFsharp - nefunguje tam zobrazeni metadata: tag, author, keywords, subject, title :-/
pouzivany kod:
            openFileDialog1.Filter = "PDF files (*.pdf)|*.pdf";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string filename = openFileDialog1.FileName;
                // Read document into memory for modification
                PdfDocument document = PdfReader.Open(filename);
                textBox2.Text += "\r\nLanguage\t:\t\t" + document.Language;     //funkcni ?
                textBox2.Text += "\r\nPage count\t:\t\t" + document.PageCount;
                textBox2.Text += "\r\nPage layout\t:\t\t" + document.PageLayout;
                textBox2.Text += "\r\nTag\t\t:\t\t" + document.Tag;             //asi nefunkcni :(
                textBox2.Text += "\r\nVersion of PDF\t:\t\t" + document.Version/10.0;
                textBox2.Text += "\r\nAuthor\t\t:\t\t" + document.Info.Author;  //asi nefunkcni :(
                textBox2.Text += "\r\nBy program\t:\t\t" + document.Info.Producer + " / " + document.Info.Creator;
                textBox2.Text += "\r\nKeywords\t\t:\t\t" + document.Info.Keywords;//asi nefunkcni :(
                textBox2.Text += "\r\nSubject\t\t:\t\t" + document.Info.Subject;  //asi nefunkcni :(
                textBox2.Text += "\r\nTitle\t\t:\t\t" + document.Info.Title;      //asi nefunkcni :(
            }

vraci to null :-(


text bude pokracovat - maly prostor zde v poradne na post

↑ Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 26.08.2008 23:46
Report.NET a SharpPDF pokud sem se nespletl nepracuji s metady nebo je nenacitaji, resp. pdf jen vytvareji

PDF Clown - zde potrebuji pomoct rozchodit kod :-|

Koukam uz nakou hodku do samples a zasekavam se tady:

                // Document metadata.
                #region metadata
                File file = new File();
                Document document = file.Document;
 Information info = new Information(document);
                document.Information = info;
                textBox2.Text += "\r\nAuthor\t\t:\t\t" + info.Author;
                textBox2.Text += "\r\nCreation Date\t\t:\t\t" + info.CreationDate;
                textBox2.Text += "\r\nCreator\t\t:\t\t" + info.Creator;
                textBox2.Text += "\r\nTitle\t\t:\t\t" + info.Title;
                textBox2.Text += "\r\nSubject\t\t:\t\t" + info.Subject;
                #endregion metadata
problem je na radku s File file = new File();

VS 2008 hlasi:
error CS0246: The type or namespace name 'File' could not be found (are you missing a using directive or an assembly reference?)

pritom koukam do samples prikladu a tam jmenne prostory mam vsechny a dllka na assembly byla dodana jen jedna a tu samozrejme u projektu mam.

pokud zkusim:
                Document document = fileName;
mam problem s:
error CS0029: Cannot implicitly convert type 'string' to 'it.stefanochizzolini.clown.documents.Document'


DIKY za radu

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

los, 27.08.2008 01:18
Chýba ti tam nejaký riadok s using, takže stlač pravý klik na File a z kontextového menu vyber Resolve. Ďalej tam máš zopár chýb: v konštruktore File ti chýba cesta k PDF súboru a objekt Information netreba vytvárať, pretože už je dostupný v document.Information.

Funkčný príklad:
File file = new File(@"C:\esta\k\nejakemu.pdf");
Document document = file.Document;
Information information = document.Information;
Console.WriteLine("Author: " + information.Author);
Console.WriteLine("Creation Date: " + information.CreationDate);
Console.WriteLine("Creator: " + information.Creator);
Console.WriteLine("Title: " + information.Title);
Console.WriteLine("Subject: " + information.Subject);
Pričom sa používajú tieto menné priestory:
using it.stefanochizzolini.clown.files;
using it.stefanochizzolini.clown.documents;
using it.stefanochizzolini.clown.documents.interchange.metadata;

Ináč ja by som začal práve s tým iTextSharp, ktorý si preskočil - zo všetkých sa mi zdal na prvý pohľad najsolídnejší.
HTTP 200 OK

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 11:00
diky using vyreseno, problem byl urcite v namespace, ktera ma nakonci files, mel jsem za samples using files = ta namespace a to urcite zlobilo...at uz ale pouzivam objekt information nebo ne- postupuju document.Information tak pokazdy stejnej pad:
[img]http://sklad.obrazku.cz/obr33162_20080827105406.png[/img]

[img]http://sklad.obrazku.cz/obr33163_20080827105142.png[/img]


iTextSharp jsme preskocil protoze se mi zdal na prvni pohled naddimenzovany, ja potrebuju malou knihovnu z ktery si vezmu nacitani metadat a textu ze stranky... :-|

Diky za dalsi radu

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

los, 27.08.2008 11:43
Na obrázku vidno, že používaš document.Information, ale nie to, ako si sa dostal k objektu document - napíš sem celý postup.
HTTP 200 OK

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 14:22
           openFileDialog1.Filter = "PDF files (*.pdf)|*.pdf";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = openFileDialog1.FileName;
                System.IO.FileInfo fi = new System.IO.FileInfo(fileName);


                // Document metadata.
                #region metadata
                File file = new File(fileName);
                Document document = file.Document;
                //...

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

los, 27.08.2008 14:58
Tak to by malo fungovať. Ale keďže to nefunguje, začal by som skúšať ten iTextSharp.

Ináč ak nie je ten PDF dokument tajný, tak mi ho môžeš poslať, aby som sa pozrel, či s ním nemá PDF Clown nejaký problém. A môžeš pribaliť aj samotný program.
HTTP 200 OK

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 15:17
ok program pribalim, pdf sem vzal prvni z disku ktere jsem nasel a pres pravy tlacitko -> vlastnosti -> souhrn jsem mu pridal tagy, komentar, autora apod. Zvlastni je ze pri prekopirovani toho pdfka se tyto komentare ztraceji, clovek se porad uci :)

tady je teda ta jednoducha aplikace testujici clown knihovnu + to pdf s popisky:
leteckaposta.cz

diyk moc, pockam jestli s tim nehnete a pujdu na iTextSharp :-|

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

los, 27.08.2008 18:43
Tie vlastnosti, ktoré nastavuješ, nie sú priamo súčasťou PDF súboru, ale sú uložené v súborovom systéme (NTFS).

PDF súbor, ktorý si poslal, neobsahuje skoro žiadne metadáta, s čím má zrejme PDF Clown problém. Ak sa nechceš hrabať v zdrojových kódoch PDF Clowna, tak môžeš každý prístup k vlastnostiam inštancie Information obaliť do try-catch bloku - výkonnosť tým samozrejme utrpí, ale čo už.

Ak ťa zaujímajú len metadáta súboru, ktoré vidíš na tej záložke Souhrn, tak na to nepotrebuješ žiadneho PDF klauna ani iTextSharp. Otázka teda je, ktoré metadáta ťa zaujímajú.
HTTP 200 OK

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 17:10
ja jsem zkusil i ten iTextSharp, ale nemohu se dostat k metadatum, resp. to musim delat spatne...

openFileDialog1.Filter = "PDF files (*.pdf)|*.pdf";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string filename = openFileDialog1.FileName;

                Document document = new Document();
                PdfReader read = new PdfReader(filename);
                document.Open();
                textBox1.Text += "Pages:" + read.NumberOfPages;
                textBox1.Text += "\r\nVersion:" + read.PdfVersion;
                textBox1.Text += "\r\nLength:" + read.FileLength + " bytes";
                textBox1.Text += "\r\nEncrypted?:" + read.IsEncrypted();//jestli true nedostanu se ani k pages...
                textBox1.Text += "\r\nPermissions:" + read.Metadata.???

Zkusil jsem googlit, ale na sourceforge je ukazka jen s vkladanim metadat, nacitanim uz se nezabyvaji a kdyz jsem googlil na codeproject, tak tam zase ten kod neexistuje, priklad:

http://www.codeproject.com/KB/aspnet/Esignature.asp x
 st.MoreInfo = this.metadata.getMetaData();
???


zbytek odkazu po internetu je taky vesmes ukladani metadat :( zadny cteni :(

↑ Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

los, 27.08.2008 18:55
Tak som skúsil ten iTextSharp a vyzerá oveľa lepšie ako PDF Clown. Jednoduchý príklad čítania metadát cez iTextSharp:
PdfReader reader = new PdfReader(filename);

foreach (DictionaryEntry entry in reader.Info)
	Console.WriteLine(string.Format("{0}: {1}", entry.Key, entry.Value));
HTTP 200 OK

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 19:49
aha to je ale zajimave zjisteni :) ze to z vlastnosti nejsou uplne presne metadata :)

takze se zkusim vratit k PDFsharp a zkusit vyplnit metadata (zajimaji me ty co se ukladaji do souboru, ne ty do NTFS) nejakym programem - adobe acrobat reader?? a jestli to funguje. pote PdfClown, ale iTextSharp vyzkouset. Diky a jeste se za chvili ozvu jak jsem to vykoumal

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 20:46
ano po hodine googleni mi neni jasne jakym grafickym programem editovat metadata :-(

Zkusil jsem i nainstalovat Adobe Acrobat Reader a to k nemu mam velky odpor :(

Tady na tom screenu: http://www.montague.com/abstracts/pdfmetadata.htm je videt ze metadata jdou editovat, ale ja to jaksi nemohu, mam ty polozky zasedively

Zkusil jsem nainstalovat i tri dalsi programy, poradite?

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 20:47
jeste dodam, ze PDF nijak chraneny nejsou, proste si v Open Office vygeneruju nejake PDF a zkousim se dostat k metadatum

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

TN [80.67.17.xxx], 27.08.2008 21:03
vzhledem k tomu ze nemam zadny program po ruce na metadata, zkousim tedy ruzne knihovny a snimi nejdrive ulozit metadata a pak si je teda nechat zobrazit. U te nejslibnejsi na zacatku PDFsharp mam problem:

                PdfDocument document = PdfReader.Open(filename);
                document.Tag = "AAAAAAAAA";
                document.Save(filename);
textBox2.Text += "\r\nTag\t\t:\t\t" + document.Tag;             //asi nefunkcni :(

takhle se mi zobrazi tag, ale kdyz pri dalsim spusteni programu odstranim:
document.Tag = "AAAAAAAAA";
tak uz se tag nezobrazi vyplnen, ale hlavne ze vyprodukovane programem se tam uvede ta knihovna - pdfsharp :(

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF

los, 27.08.2008 23:08
Vlastnosť Tag sa neukladá do súboru. Je to len pomocná vlastnosť, do ktorej si môžeš uložiť ľubovoľný objekt (podobne ako napr. treeNode.Tag, control.Tag, listView.Tag, atď).

Všetky metadáta môžeš v PDFSharp prejsť napríklad takto:
using (PdfDocument document = PdfReader.Open(filename))
	foreach (DictionaryEntry entry in document.Info)
		Console.WriteLine(string.Format("{0}: {1}", entry.Key, entry.Value));
HTTP 200 OK

↑ ← Odpovědět


Re: C# - open source knihovna pro čtení PDF a RTF poslední

TN [80.67.17.xxx], 27.08.2008 23:23
DIKY!!!! ;-) ;-) ;-) Muzete oznacit vyresene, moc jste mi pomohl

↑ ← Odpovědět


TOPlist