PDA

View Full Version : خواندن فایل epub



spsgorgan
چهارشنبه 08 آذر 1396, 15:34 عصر
با سلام
دوستان من میخوام توی C# یک epub ریدر بسازم. کسی نمونه یا سورسی که بتونه راهنماییم کنه داره ؟

ممنونم

محمد آشتیانی
یک شنبه 12 آذر 1396, 14:07 عصر
سلام
احتمالا این کمکتون میکنه
https://github.com/vers-one/EpubReader

spsgorgan
سه شنبه 14 آذر 1396, 23:43 عصر
سلام
احتمالا این کمکتون میکنه
https://github.com/vers-one/EpubReader

ممنون مهندس عزیز
اینا رو همه دیدم. اما اجرا نمیشن متاسفانه

محمد آشتیانی
پنج شنبه 16 آذر 1396, 15:12 عصر
سلام
به درستی کار میکنه ، اگر سخته براتون از گیت هاب گرفتنش ، از طریق نوگت پکیجش رو نصب کنید ، مثالش هم توی همون لینک پست قبل نوشته


Install-Package VersOne.Epub -Version 2.0.2


این هم نمونه مثال که عرض کردم در گیت هاب نوشته

// Opens a book and reads all of its content into memory
EpubBook epubBook = EpubReader.ReadBook("alice_in_wonderland.epub");



// COMMON PROPERTIES


// Book's title
string title = epubBook.Title;


// Book's authors (comma separated list)
string author = epubBook.Author;


// Book's authors (list of authors names)
List<string> authors = epubBook.AuthorList;


// Book's cover image (null if there is no cover)
byte[] coverImageContent = epubBook.CoverImage;
if (coverImageContent != null)
{
using (MemoryStream coverImageStream = new MemoryStream(coverImageContent))
{
Image coverImage = Image.FromStream(coverImageStream);
}
}

// CHAPTERS


// Enumerating chapters
foreach (EpubChapter chapter in epubBook.Chapters)
{
// Title of chapter
string chapterTitle = chapter.Title;

// HTML content of current chapter
string chapterHtmlContent = chapter.HtmlContent;


// Nested chapters
List<EpubChapter> subChapters = chapter.SubChapters;
}



// CONTENT


// Book's content (HTML files, stlylesheets, images, fonts, etc.)
EpubContent bookContent = epubBook.Content;



// IMAGES


// All images in the book (file name is the key)
Dictionary<string, EpubByteContentFile> images = bookContent.Images;


EpubByteContentFile firstImage = images.Values.First();


// Content type (e.g. EpubContentType.IMAGE_JPEG, EpubContentType.IMAGE_PNG)
EpubContentType contentType = firstImage.ContentType;


// MIME type (e.g. "image/jpeg", "image/png")
string mimeContentType = firstImage.ContentMimeType;


// Creating Image class instance from the content
using (MemoryStream imageStream = new MemoryStream(firstImage.Content))
{
Image image = Image.FromStream(imageStream);
}




// HTML & CSS


// All XHTML files in the book (file name is the key)
Dictionary<string, EpubTextContentFile> htmlFiles = bookContent.Html;


// All CSS files in the book (file name is the key)
Dictionary<string, EpubTextContentFile> cssFiles = bookContent.Css;


// Entire HTML content of the book
foreach (EpubTextContentFile htmlFile in htmlFiles.Values)
{
string htmlContent = htmlFile.Content;
}


// All CSS content in the book
foreach (EpubTextContentFile cssFile in cssFiles.Values)
{
string cssContent = cssFile.Content;
}




// OTHER CONTENT


// All fonts in the book (file name is the key)
Dictionary<string, EpubByteContentFile> fonts = bookContent.Fonts;


// All files in the book (including HTML, CSS, images, fonts, and other types of files)
Dictionary<string, EpubContentFile> allFiles = bookContent.AllFiles;




// ACCESSING RAW SCHEMA INFORMATION


// EPUB OPF data
EpubPackage package = epubBook.Schema.Package;


// Enumerating book's contributors
foreach (EpubMetadataContributor contributor in package.Metadata.Contributors)
{
string contributorName = contributor.Contributor;
string contributorRole = contributor.Role;
}


// EPUB NCX data
EpubNavigation navigation = epubBook.Schema.Navigation;


// Enumerating NCX metadata
foreach (EpubNavigationHeadMeta meta in navigation.Head)
{
string metadataItemName = meta.Name;
string metadataItemContent = meta.Content;
}




بنده خودم تست کردم و به درستی کار کرد

spsgorgan
چهارشنبه 22 آذر 1396, 13:40 عصر
ممنونم مهندس عزیز. این سورسی که فرمودید رو زدن داخل c# از EpubBook epubBook خطا میگیره . رفرنس خاصی باید اضافه کنم ؟

spsgorgan
چهارشنبه 22 آذر 1396, 13:52 عصر
من اینو وارد کردم اما گیر میده نیست.
using VersOne.Epub;

رامین مرادی
پنج شنبه 23 آذر 1396, 09:19 صبح
من اینو وارد کردم اما گیر میده نیست.
using VersOne.Epub;
اینو نصب کردید؟
Install-Package VersOne.Epub -Version 2.0.2
ابتدا اینو نصب کنید سپس در رفرنسها اددش کنید.متن خطا رو هم بزارید تا بدونیم به چی گیر میده

spsgorgan
پنج شنبه 23 آذر 1396, 18:51 عصر
اینو نصب کردید؟
Install-Package VersOne.Epub -Version 2.0.2
ابتدا اینو نصب کنید سپس در رفرنسها اددش کنید.متن خطا رو هم بزارید تا بدونیم به چی گیر میده

ممنونم عزیز. من همه رفرنسها رو چک کردم. توی ناگت هم نصب کردم . اما خطاهای پیوست رو میده متاسفانه.
من فایل اصلی رو پیوست کردم . ممنون میشم اگر زحمتی نیست شما هم اجرا بفرمایید . سپاس

spsgorgan
پنج شنبه 23 آذر 1396, 18:55 عصر
بعد این سورس باwpf هست که من آشنا نیستم . واسه ویندوز فرم معمولی میخوام و توی سورسهاشم نوشته Download .NET Core console demo app که اصلا لود نمیشه و این خطا رو میده :

C:\Users\SPSDEV\Desktop\EpubReader-master\EpubReader-master\Source\VersOne.Epub\VersOne.Epub.csproj : error : The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format. C:\Users\SPSDEV\Desktop\EpubReader-master\EpubReader-master\Source\VersOne.Epub\VersOne.Epub.csproj

C:\Users\SPSDEV\Desktop\EpubReader-master\EpubReader-master\Source\VersOne.Epub.NetCoreDemo\VersOne.Epu b.NetCoreDemo.csproj : error : The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format. C:\Users\SPSDEV\Desktop\EpubReader-master\EpubReader-master\Source\VersOne.Epub.NetCoreDemo\VersOne.Epu b.NetCoreDemo.csproj

C:\Users\SPSDEV\Desktop\EpubReader-master\EpubReader-master\Source\VersOne.Epub.NetCoreDemo\VersOne.Epu b.NetCoreDemo.csproj : error : The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format. C:\Users\SPSDEV\Desktop\EpubReader-master\EpubReader-master\Source\VersOne.Epub.NetCoreDemo\VersOne.Epu b.NetCoreDemo.csproj

spsgorgan
جمعه 24 آذر 1396, 17:15 عصر
سلام
به درستی کار میکنه ، اگر سخته براتون از گیت هاب گرفتنش ، از طریق نوگت پکیجش رو نصب کنید ، مثالش هم توی همون لینک پست قبل نوشته


Install-Package VersOne.Epub -Version 2.0.2


این هم نمونه مثال که عرض کردم در گیت هاب نوشته

// Opens a book and reads all of its content into memory
EpubBook epubBook = EpubReader.ReadBook("alice_in_wonderland.epub");



// COMMON PROPERTIES


// Book's title
string title = epubBook.Title;


// Book's authors (comma separated list)
string author = epubBook.Author;


// Book's authors (list of authors names)
List<string> authors = epubBook.AuthorList;


// Book's cover image (null if there is no cover)
byte[] coverImageContent = epubBook.CoverImage;
if (coverImageContent != null)
{
using (MemoryStream coverImageStream = new MemoryStream(coverImageContent))
{
Image coverImage = Image.FromStream(coverImageStream);
}
}

// CHAPTERS


// Enumerating chapters
foreach (EpubChapter chapter in epubBook.Chapters)
{
// Title of chapter
string chapterTitle = chapter.Title;

// HTML content of current chapter
string chapterHtmlContent = chapter.HtmlContent;


// Nested chapters
List<EpubChapter> subChapters = chapter.SubChapters;
}



// CONTENT


// Book's content (HTML files, stlylesheets, images, fonts, etc.)
EpubContent bookContent = epubBook.Content;



// IMAGES


// All images in the book (file name is the key)
Dictionary<string, EpubByteContentFile> images = bookContent.Images;


EpubByteContentFile firstImage = images.Values.First();


// Content type (e.g. EpubContentType.IMAGE_JPEG, EpubContentType.IMAGE_PNG)
EpubContentType contentType = firstImage.ContentType;


// MIME type (e.g. "image/jpeg", "image/png")
string mimeContentType = firstImage.ContentMimeType;


// Creating Image class instance from the content
using (MemoryStream imageStream = new MemoryStream(firstImage.Content))
{
Image image = Image.FromStream(imageStream);
}




// HTML & CSS


// All XHTML files in the book (file name is the key)
Dictionary<string, EpubTextContentFile> htmlFiles = bookContent.Html;


// All CSS files in the book (file name is the key)
Dictionary<string, EpubTextContentFile> cssFiles = bookContent.Css;


// Entire HTML content of the book
foreach (EpubTextContentFile htmlFile in htmlFiles.Values)
{
string htmlContent = htmlFile.Content;
}


// All CSS content in the book
foreach (EpubTextContentFile cssFile in cssFiles.Values)
{
string cssContent = cssFile.Content;
}




// OTHER CONTENT


// All fonts in the book (file name is the key)
Dictionary<string, EpubByteContentFile> fonts = bookContent.Fonts;


// All files in the book (including HTML, CSS, images, fonts, and other types of files)
Dictionary<string, EpubContentFile> allFiles = bookContent.AllFiles;




// ACCESSING RAW SCHEMA INFORMATION


// EPUB OPF data
EpubPackage package = epubBook.Schema.Package;


// Enumerating book's contributors
foreach (EpubMetadataContributor contributor in package.Metadata.Contributors)
{
string contributorName = contributor.Contributor;
string contributorRole = contributor.Role;
}


// EPUB NCX data
EpubNavigation navigation = epubBook.Schema.Navigation;


// Enumerating NCX metadata
foreach (EpubNavigationHeadMeta meta in navigation.Head)
{
string metadataItemName = meta.Name;
string metadataItemContent = meta.Content;
}




بنده خودم تست کردم و به درستی کار کرد

مهندس جان من تونستم لود کنم. میشه راهنمایی کنید من چطوری محتوای epub رو نشون بدم ؟
// CONTENT


// Book's content (HTML files, stlylesheets, images, fonts, etc.)
EpubContent bookContent = epubBook.Content;

اینجا محتوا میره تو متغییر. حالا من اینو تو چی لود کنم که بتونم مثل epub reader ها تغییر سایز و ... بنویسم ؟

spsgorgan
یک شنبه 26 آذر 1396, 21:40 عصر
up.........