Solved

EPub Editor

Posted on 2011-09-19
5
501 Views
Last Modified: 2012-05-12
Dear experts,

I need to create an application that would read and display documents in EPUB format. It also will have to be able to record audio and attach wave files to corresponding lines of text. But first I would start with displaying and editing the text. I am not sure how to do it, or even what technology to use: WPF or MFC. Could you please give me an advise? Thanks.
0
Comment
Question by:tantormedia
  • 3
  • 2
5 Comments
 
LVL 15

Expert Comment

by:x77
Comment Utility
I know that Calibre is Open Source.
It reads all Ebook formats.

Try you to do Ebook reader from zero ?

You can find it at: http://code.google.com/p/calibre-ebook/updates/list
0
 
LVL 15

Expert Comment

by:x77
Comment Utility
You can read: Inside epub
http://netkingcol.blogspot.com/

Note that basics is work with Zip Files ,Xml and Html.
I think NetFramework has some class to work with it.

It is easy work with c# than c++.
0
 

Author Comment

by:tantormedia
Comment Utility
Thank you for your answers. Yes, I need to make it from scratch.
Maybe you could tell me where I can get the list of chapters titles? I see it on a picture here
http://netkingcol.blogspot.com/,
so it must be available, but I don't see the source of it in my .epubs.
0
 
LVL 15

Accepted Solution

by:
x77 earned 500 total points
Comment Utility
Rename extenxion from epub to Zip.
Use Winzip.
I found this at Toc.ncx.

It has Presentación, Dedicatoria,  1, 2, 3....23.
I do´nt know ebook format, but this explained in Inside epub

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">
<head>
<meta name="dtb:depth" content="1" />
<meta name="dtb:totalPageCount" content="0" />
<meta name="dtb:maxPageNumber" content="0" />
</head>
<docTitle>
<text>Tau Cero</text>
</docTitle>
<navMap>
<navPoint id="c1" playOrder="1"><navLabel><text>Portada</text></navLabel><content src="000.xhtml"/></navPoint>

<navPoint id="c2" playOrder="2"><navLabel><text>Título y autor</text></navLabel><content src="001.xhtml"/></navPoint>

<navPoint id="c3" playOrder="3"><navLabel><text>Metadatos</text></navLabel><content src="002.xhtml"/></navPoint>

<navPoint id="c4" playOrder="4">
<navLabel>
<text>PRESENTACIÓN</text>
</navLabel>
<content src="003.xhtml"/>
</navPoint>

<navPoint id="c5" playOrder="5">
<navLabel>
<text>Dedicatoria</text>
</navLabel>
<content src="004.xhtml"/>
</navPoint>

<navPoint id="c6" playOrder="6">
<navLabel>
<text>1</text>
</navLabel>
<content src="005.xhtml"/>
</navPoint>

<navPoint id="c7" playOrder="7">
<navLabel>
<text>2</text>
</navLabel>
<content src="006.xhtml"/>
</navPoint>

<navPoint id="c8" playOrder="8">
<navLabel>
<text>3</text>
</navLabel>
<content src="007.xhtml"/>
</navPoint>

<navPoint id="c9" playOrder="9">
<navLabel>
<text>4</text>
</navLabel>
<content src="008.xhtml"/>
</navPoint>

<navPoint id="c10" playOrder="10">
<navLabel>
<text>5</text>
</navLabel>
<content src="009.xhtml"/>
</navPoint>

<navPoint id="c11" playOrder="11">
<navLabel>
<text>6</text>
</navLabel>
<content src="010.xhtml"/>
</navPoint>

<navPoint id="c12" playOrder="12">
<navLabel>
<text>7</text>
</navLabel>
<content src="011.xhtml"/>
</navPoint>

<navPoint id="c13" playOrder="13">
<navLabel>
<text>8</text>
</navLabel>
<content src="012.xhtml"/>
</navPoint>

<navPoint id="c14" playOrder="14">
<navLabel>
<text>9</text>
</navLabel>
<content src="013.xhtml"/>
</navPoint>

<navPoint id="c15" playOrder="15">
<navLabel>
<text>10</text>
</navLabel>
<content src="014.xhtml"/>
</navPoint>

<navPoint id="c16" playOrder="16">
<navLabel>
<text>11</text>
</navLabel>
<content src="015.xhtml"/>
</navPoint>

<navPoint id="c17" playOrder="17">
<navLabel>
<text>12</text>
</navLabel>
<content src="016.xhtml"/>
</navPoint>

<navPoint id="c18" playOrder="18">
<navLabel>
<text>13</text>
</navLabel>
<content src="017.xhtml"/>
</navPoint>

<navPoint id="c19" playOrder="19">
<navLabel>
<text>14</text>
</navLabel>
<content src="018.xhtml"/>
</navPoint>

<navPoint id="c20" playOrder="20">
<navLabel>
<text>15</text>
</navLabel>
<content src="019.xhtml"/>
</navPoint>

<navPoint id="c21" playOrder="21">
<navLabel>
<text>16</text>
</navLabel>
<content src="020.xhtml"/>
</navPoint>

<navPoint id="c22" playOrder="22">
<navLabel>
<text>17</text>
</navLabel>
<content src="021.xhtml"/>
</navPoint>

<navPoint id="c23" playOrder="23">
<navLabel>
<text>18</text>
</navLabel>
<content src="022.xhtml"/>
</navPoint>

<navPoint id="c24" playOrder="24">
<navLabel>
<text>19</text>
</navLabel>
<content src="023.xhtml"/>
</navPoint>

<navPoint id="c25" playOrder="25">
<navLabel>
<text>20</text>
</navLabel>
<content src="024.xhtml"/>
</navPoint>

<navPoint id="c26" playOrder="26">
<navLabel>
<text>21</text>
</navLabel>
<content src="025.xhtml"/>
</navPoint>

<navPoint id="c27" playOrder="27">
<navLabel>
<text>22</text>
</navLabel>
<content src="026.xhtml"/>
</navPoint>

<navPoint id="c28" playOrder="28">
<navLabel>
<text>23</text>
</navLabel>
<content src="027.xhtml"/>
</navPoint>


</navMap>
</ncx>

Open in new window

0
 

Author Comment

by:tantormedia
Comment Utility
Wow, that must be it! I wonder why I didn't notice this file myself. Thanks.
I could unzip epub programmatically, even without renaming the extension.
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Suggested Solutions

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now