|
|
View Full Version : IMP GUI Converter/Editor
mscott161 12-22-2008, 03:27 PM Hello,
Since the start of the GUI version of my ConvertIMP Program, I have continually added features as people have sent wish list items. I try to add new features to the program if they are a good fit, I am also try to keep the GUI from being too difficult to use.
This all started when conversing with Nick who has posted many elements to the IMP thread and has helped make the program what it is today. I will be working with him and others to make a good solid utility for users to be able to do something with the IMP format.
I will continue to edit this post with the new releases as I make them. Please be patient with it because it is Beta and I do not want users to mess up their IMP files. If there is a bug or problem, please post or PM me and I will remove the last release and fix the bugs before doing another one.
Thank you.
--Michael
- Version 1.3.5
I have now added the ability to mass convert the IMP Text Content to LRF. Found under Tools Menu. Or Select a book from the library and go to the Text Content Tab there is a Save LRF button. I would like to thank Chris Mumford for the BBeBLib in C# that allowed me to complete this milestone in the application.
- Version 1.3.6
I have add the TRow and TCel parsing which may have different effects to the HTML saving until string runs have been parsed.
Unless someone post that they want to see the source code this will be the last one and I will continue to update the below link but will only contain the executable.
- Just the Executable is at http://www.ebizsoft.com/download/convertimpgui.zip
nrapallo 12-22-2008, 03:49 PM Nice! :thumbsup:
At this rate, you'll be posting version 2.0 soon! :snicker:
OK time to write that wish list... ;)
nrapallo 12-22-2008, 11:47 PM OK time to write that wish list... ;)
Just but a few items...
In the Header section, display ImpType (2=EBW 1150/GEB 1150), ZoomState, Count of RESfiles and BytesRemainingInHeader.
Perform some sanity checks, mainly BytesRemainingInHeader -24 = length of book properties and if not correct, a Button to adjust BytesRemainingInHeader should be provided.
The Book section (should be called Book Properties) text usually gets cropped; the text box should have a horizontal scroll bar.
In the Book section, consider adding a string for the property's length/size like the TOC file entries. This way the Contents and Size will be listed underneath the Book Property heading.
In the Table of Contents (TOC) section, the random 4 letter filenames are not too important, so I would just list it along with the filetype it contains i.e. XHBG (JPEG). Consider revising the random 4-letter filenamse with their 4-letter filetype equivalent i.e.JPEG (JPEG). For filetypes with a space you can use an underscore. For DATA.FRK you can use DATA!
In the Images section, the image type could be displayed when expanded. I still don't see listed ALL the images used. Check the 'ImRn' filetype for the images used and their image type and original dimensions. Note for the EBW1150, those image types are written backwards like ' FIG' or 'GEPJ' :smack:
Under the Book Properties tab, for the RES File Name, allow a button that will autonmatically change it to the 'Author-Title' naming used for the .txt.
allow for the unimp'ing and re-imp'ing of files like facilitated by unimp.exe and reimp.exe.
OK, those were the easy/cosmetic things.
For the really advanced stuff, allow batch processing, handle REB1200 .imp ebooks, convert the text to html with character codes substitutions and weird characters substitution, allow linking to images and hyperlinks, use the embedded styles, < hr />, tables, forms, etc (you know the 'piece of cake' stuff :rolleyes:).
I'll help with the advanced stuff as I get the .IMP format better documented. ;)
Now when this is all done, we can then feed the resulting .html with images/links/styles to Cailbre's html2lrf and presto, .lrf support! or .epub via html2epub!
mscott161 12-24-2008, 01:31 AM Nick and All,
I have made some GUI changes and provided image saving and display. Most all of the items from Nick's wish list above has been addressed.
I have placed the new update in the first post in this thread.
Happy Holidays,
--Michael
nrapallo 12-24-2008, 09:30 AM Nick and All,
I have made some GUI changes and provided image saving and display. Most all of the items from Nick's wish list above has been addressed.
I have placed the new update in the first post in this thread.
Happy Holidays,
--Michael
That's great, Michael! What turn-around time.
In the same time it took you to produce this new version, if you were a major corporation, I think you would be still at the stage of identifying your target users. :eek: :smack: :snicker: :rofl:
OK, some constructive/minor comments:
In the General tab, under Header, the RES File Count needs the closing ')';
note the ZoomState is the lower nibble i.e 0 which means Both Small View and Large View; 1=Small View and 2=Large View. The upper nibble of 0x20 (i.e. 32) is the ImpType 2=EBW1150.
under Book Properties, you now somehow omitted the SubCategory (it holds the number of pages the reader displays when in Small View and when in Large View respectively. While this cannot be edited, it could be displayed!
under Table of Contents, you list the file size. Other information to list would be Data size, Index size (and when divided by index headersize of 14 (for EBW1150) will yield the number of such Indices). So basically the format here is Filetype header (32 bytes), Data section, {IndexN}*
under Book Images, there are some duplicate images now listed :smack:. As my test .imp, I used REBtestdoc.imp, I don't understand why those multiple copies listed in 'ImRn' were stored. The 'ImRn' record indicates that there are 17 images stores, but only 8 seem unique i.e. there should be 1 .gif, 6 .jpgs, and 1 .png. See this imp_dump.pl printout ======== ImRn ========
Filename:BYVI, $0000, Filesize: 656, Filetype:ImRn, $0001
Header:TOCconst:0001, TOCfname:ImRn, TOCoffset: 642
Header:$00000001, Unknown:$0000, $00000282, $00000101, $00000000, $00000000
Data length = 610, Index length = 14
Number of images indexed = 17
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 1527, $00BC70D0, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 14851, $01E0DC48, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 14888, $01F479E0, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 14924, $00BE17B8, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFC, $0000, offset: 15012, $00BC9D20, imgtype: GNP, imgID:0080, $0000
width:472, height:595, aspect:0.79, $FFFA, $0000, offset: 17845, $00BD94A0, imgtype:GEPJ, imgID:0080, $0000
width:472, height:595, aspect:0.79, $FFFB, $0000, offset: 17847, $01F444C0, imgtype:GEPJ, imgID:8D4D, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 17898, $01EDFE80, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFF, $0000, offset: 18201, $01F44380, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFE, $0000, offset: 18512, $00C47C20, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFC, $0000, offset: 18823, $01E1A4C0, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFE, $0000, offset: 19156, $00BC7120, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFE, $0000, offset: 19485, $00BCDE50, imgtype: GNP, imgID:0080, $0000
width:176, height:207, aspect:0.85, $FFFB, $0000, offset: 19949, $01F40D50, imgtype:GEPJ, imgID:4D80, $0000
width:174, height:207, aspect:0.84, $FFFB, $0000, offset: 19951, $01F15318, imgtype:GEPJ, imgID:B7B8, $0000
width:176, height:212, aspect:0.83, $FFFB, $0000, offset: 19953, $00BDD5C0, imgtype:GEPJ, imgID:8A1A, $0000
width:174, height:212, aspect:0.82, $FFFC, $0000, offset: 19955, $00BF8D68, imgtype:GEPJ, imgID:0F4E
Index1:Index1_const1:0080, len: 610, offset: 32, const0:0000
======== GIF ========
Filename:TGBQ, $0000, Filesize: 2154, Filetype:GIF , $0000
Header:TOCconst:0001, TOCfname:GIF , TOCoffset: 2140
Header:$00000001, Unknown:$0000, $0000085C, $00000101, $00000000, $00000000
Data length = 2108, Index length = 14
Number of GIF images = 1
Index1:Index1_const1:0080, $0000, len: 2108, offset: 32, $0000
======== JPEG ========
Filename:BEDO, $0000, Filesize: 116352, Filetype:JPEG, $0000
Header:TOCconst:0001, TOCfname:JPEG, TOCoffset: 116268
Header:$00000001, Unknown:$0000, $0001C62C, $00000101, $00000000, $00000000
Data length = 116236, Index length = 84
Number of JPEG images = 6
Index1:Index1_const1:0F4E, $0000, len: 7767, offset: 32, $0000
Index1:Index1_const1:8A1A, $0000, len: 7628, offset: 7799, $0000
Index1:Index1_const1:B7B8, $0000, len: 6149, offset: 15427, $0000
Index1:Index1_const1:4D80, $0000, len: 6004, offset: 21576, $0000
Index1:Index1_const1:8D4D, $0000, len: 44637, offset: 27580, $0000
Index1:Index1_const1:0080, $0000, len: 44051, offset: 72217, $0000
======== PNG ========
Filename:RYJS, $0000, Filesize: 3977, Filetype:PNG , $0000
Header:TOCconst:0001, TOCfname:PNG , TOCoffset: 3963
Header:$00000001, Unknown:$0000, $00000F7B, $00000101, $00000000, $00000000
Data length = 3931, Index length = 14
Number of PNG images = 1
Index1:Index1_const1:0080, $0000, len: 3931, offset: 32, $0000
after you save an image, then when re-constructing the .html you will have to refer to it in a unique way. I used, for the filename, the Imagetype followed by the Image ID (in hex as it format well and is always 4 characters). Now the Image ID is unique only for its Imagetype. An example from REBtestdoc.imp is GIF_0080.gif, JPEG_0080.jpg, and PNG_0080.png
display the Image ID as a 4-byte hex. Also, clicking on that Image ID entry causes the program to crash!
In the Book Properties tab, when I click Rename IMP file button the program crashes.
I would relocate the Rename IMP file button to below and the Save button to the right where you had it in the previous version. This would allow those quick fix "Buttons" beside a property i.e. for Author a "Button" could change "Firstname Intial Lastname" to "Lastname, Firstname Initial" format. ID (should be called BookID) can be auto-updated via a "Button" using the GUID 32 character naming (http://en.wikipedia.org/wiki/Globally_Unique_Identifier) convention . Place a Fix BytesRemainingInHeader "Button" and other sanity checks "Buttons" at the bottom.
Save means Save .IMP Changes; and where is that Save Text "Button"? :)
In the Text Content tab, pressing it a second time should not display to Pop-up that it may take a while as it's already been decompressed.
That's it for now....
Have yourself Happy Holidays as well. And thanks for your present (ConvertIMP)!
mscott161 12-24-2008, 03:45 PM Nick and All,
Most all of the items from Nick's wish list above has been addressed.
I have placed the new update in the first post in this thread.
Happy Holidays,
--Michael
DaleDe 12-24-2008, 04:55 PM Nick and All,
Most all of the items from Nick's wish list above has been addressed.
I have placed the new update in the first post in this thread.
Happy Holidays,
--Michael
How is this one only 17K when the others were over 110K in size?
Dale
nrapallo 12-24-2008, 05:08 PM Dale:
It's just the executable file and doesn't have the source and project overhead/clutter. Maybe Michael can include the source code as well.
Still for 17k zipped it's amazing!!!!
mscott161 12-26-2008, 12:09 AM I replaced the zip file with one with the source code as well in it.
Sorry about that.
--Michael
mscott161 12-31-2008, 02:02 PM I have posted an update to the conversion gui program in my first post in this forum.
The new version is 1.1.4
-- Michael
mscott161 12-31-2008, 07:20 PM New Version 1.1.5 (In first post) - Have fixed the styles in the Create HTML. The Space Encyclopedia that Nick provided comes out pretty good. Still working on the Tables. Any Help with the format would be great.
-- Michael
mscott161 01-01-2009, 06:38 PM New Version 1.1.6 - I have added to the tree values retrieved from TRow and TCel. I believe my Tabl parse is correct. I hoping for some help in the TRow and TCel parse. Also Nick if you still have REB Test Document.IMP file that when using the Create HTML from the Tools menu displays pretty good along with the Space.IMP file.
If any one has code to take HTML to BBeB format or IRF left me know. I know that are programs like makelrf but I would like to incorporate the code in the application.
Thank you
-- Michael
nrapallo 01-01-2009, 11:28 PM New Version 1.1.6 - I have added to the tree values retrieved from TRow and TCel. I believe my Tabl parse is correct. I hoping for some help in the TRow and TCel parse. Also Nick if you still have REB Test Document.IMP file that when using the Create HTML from the Tools menu displays pretty good along with the Space.IMP file.
Michael:
Great achievements in so little time. Nice to see the styles working and table entries getting better support and finally being able to create .html from .imp ebooks!
I've had a hard time analyzing your results and reporting my findings BEFORE I see another revision is out and must re-do my testing. :rolleyes:
For now, I have some quick findings (hopefully before your next revision gets posted) :snicker: :
Your Create HTML menu item is a great addition; but why not place it in a Save HTML button beside (or in place of ) the Save Text button.
I've noticed that the extracted images (ID for the image type) are not always in the correct spot in the .html created. Check the first image in that Space Encyclopedia.imp against what shows up in the PC imp viewer.exe.
Under the General tab, the Header entry for IMP device shows 'Softbook 200/250e' when it should show 'EBW1150'.
It shows 'UnCompressed' even if the text is LZSS compressed.
The 'SubCategory' is not displayed as a Book Properties entries even though it does show up under the Book Properties tab.
When I click an image entry, you display the corresponding image. Consider displaying in that same section, text results that say imp_dump.pl would give for that record entry when "clicked'. No editing would be allowed; just display the info for that filetype in that section.
Under the Book Properties tab, the Format M L, F doesn't work as it only returns one character for each. Consider changing that button to Format L, F M instead, as this "sorts" better and is more common. Ensure that multiple button clicking of Format F M L and Format L, F M properly show the Author name.
Consider adding an About menu item with version number and your name (and possibly a link to this thread)!
If anyone has code to take HTML to BBeB format or LRF let me know. I know that are programs like makelrf but I would like to incorporate the code in the application.
Thank you
-- Michael
The only code I myself know of to make .lrf ebooks is in python. Calibre's python source code is available for perusal as well as PDFRead's output.py which uses images instead of text. Why not feed your created .html to an external program 'html2lrf.exe" (or "html2epub.exe") using the Calibre command line support programs.
And thanks again for this program!
mscott161 01-02-2009, 02:51 AM Michael:
For now, I have some quick findings (hopefully before your next revision gets posted) :snicker: :
Your Create HTML menu item is a great addition; but why not place it in a Save HTML button beside (or in place of ) the Save Text button.
I've noticed that the extracted images (ID for the image type) are not always in the correct spot in the .html created. Check the first image in that Space Encyclopedia.imp against what shows up in the PC imp viewer.exe.
Under the General tab, the Header entry for IMP device shows 'Softbook 200/250e' when it should show 'EBW1150'.
It shows 'UnCompressed' even if the text is LZSS compressed.
The 'SubCategory' is not displayed as a Book Properties entries even though it does show up under the Book Properties tab.
When I click an image entry, you display the corresponding image. Consider displaying in that same section, text results that say imp_dump.pl would give for that record entry when "clicked'. No editing would be allowed; just display the info for that filetype in that section.
Under the Book Properties tab, the Format M L, F doesn't work as it only returns one character for each. Consider changing that button to Format L, F M instead, as this "sorts" better and is more common. Ensure that multiple button clicking of Format F M L and Format L, F M properly show the Author name.
Consider adding an About menu item with version number and your name (and possibly a link to this thread)!
Nick,
I was able to put together the changes above.
I added the button to save HTML next to the Save Text button.
I Fixed the Image placement in the HTML so they are using the proper Resource ID for the Image in the HTML
I Fixed the Book Header for the IMP Device
I Fixed the Uncompressed / Compressed flag in the Book Header Display
I Added the SubCategory to the Book Properties Tree Node
Added an About Dialog
???Can you give me a simple text layout of the image information you would like to see when clicking for the image display??? And do you want it added to the Tree or beside the Image Display???
???The are several possible F L M combinations to try to handle without a specific set of rules this would be hard to control and some combination may be left out. I still have the code but temporary made the buttons invisible.
Thank you, I am glad the program is working for you. I appreciate the comments.
I added the list above to 1.1.7
-- Michael
nrapallo 01-02-2009, 09:57 AM ???Can you give me a simple text layout of the image information you would like to see when clicking for the image display??? And do you want it added to the Tree or beside the Image Display???
Sorry, I didn't exactly say what I meant to say. The image displaying routine is just fine as it is now. What I wanted to say was that for "other" RES filetype entries like BGcl, ImRn, etc just display where you showed previously the image (i.e. re-use that same section/space) some text output as shown above in post #5 (http://www.mobileread.com/forums/showthread.php?p=312923#post312923).
For example, BGcl could show: ======== BGcl ========
Filename:OFQJ, $0000, Filesize: 54, Filetype:BGcl, $0000
Header:TOCconst:0001, TOCfname:BGcl, TOCoffset: 40
Header:$00000001, Unknown:$0000, $00000028, $00000101, $00000000, $00000000
Data length = 8, Index length = 14
BGcl_const1:FFFF, Red:FF ($FF), Green:FF ($FF), Blue:FF ($FF)
Index1:Index1_const1:0080, len: 8, offset: 32, const0:0000
For ImRn, that would mean, show: ======== ImRn ========
Filename:BYVI, $0000, Filesize: 656, Filetype:ImRn, $0001
Header:TOCconst:0001, TOCfname:ImRn, TOCoffset: 642
Header:$00000001, Unknown:$0000, $00000282, $00000101, $00000000, $00000000
Data length = 610, Index length = 14
Number of images indexed = 17
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 1527, $00BC70D0, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 14851, $01E0DC48, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 14888, $01F479E0, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 14924, $00BE17B8, imgtype: FIG, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFC, $0000, offset: 15012, $00BC9D20, imgtype: GNP, imgID:0080, $0000
width:472, height:595, aspect:0.79, $FFFA, $0000, offset: 17845, $00BD94A0, imgtype:GEPJ, imgID:0080, $0000
width:472, height:595, aspect:0.79, $FFFB, $0000, offset: 17847, $01F444C0, imgtype:GEPJ, imgID:8D4D, $0000
width:153, height: 61, aspect:2.51, $FFFB, $0000, offset: 17898, $01EDFE80, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFF, $0000, offset: 18201, $01F44380, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFE, $0000, offset: 18512, $00C47C20, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFC, $0000, offset: 18823, $01E1A4C0, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFE, $0000, offset: 19156, $00BC7120, imgtype: GNP, imgID:0080, $0000
width:153, height: 61, aspect:2.51, $FFFE, $0000, offset: 19485, $00BCDE50, imgtype: GNP, imgID:0080, $0000
width:176, height:207, aspect:0.85, $FFFB, $0000, offset: 19949, $01F40D50, imgtype:GEPJ, imgID:4D80, $0000
width:174, height:207, aspect:0.84, $FFFB, $0000, offset: 19951, $01F15318, imgtype:GEPJ, imgID:B7B8, $0000
width:176, height:212, aspect:0.83, $FFFB, $0000, offset: 19953, $00BDD5C0, imgtype:GEPJ, imgID:8A1A, $0000
width:174, height:212, aspect:0.82, $FFFC, $0000, offset: 19955, $00BF8D68, imgtype:GEPJ, imgID:0F4E
Index1:Index1_const1:0080, len: 610, offset: 32, const0:0000
Or trim to what is only "new" information and not yet displayed in your entries under the General tab, i.e. for BGcl , show just its data contents, simplified to 'BGcl Color Red:FF (OFF), Green:FF (OFF), Blue:FF (OFF)'. The data that gets displayed can be "collected" and assembled as a "string" for each RES filetype when you parse the RES records and then just displayed when the user clicks the BGcl or ImRn entries, etc.... For ImRn, consider displaying (when clicked) only one image's text output at a time.
???The are several possible F L M combinations to try to handle without a specific set of rules this would be hard to control and some combination may be left out. I still have the code but temporary made the buttons invisible.
I had previously "dissected" the Blackmask DVD with over 10,000 ebooks and was trying to get its 8.3 dos filenames to display in 'Author - Title' format where Author was in format Firstname Middlename Lastname. Below are a few text lines that were derived by me from the original Blackmask index so as to get my desired results, just look at the last string on each line of this tabbed spreadsheet data:865 The Acorn-Planter Jack London The Acorn-Planter The Acorn-Planter Jack London litmax/acornplant.lit "London, Jack - The Acorn-Planter"
866 Acres of Diamonds Russell H. Conwell Acres of Diamonds Acres of Diamonds Russell H Conwell litmax/acrdi.lit "Conwell, Russell H - Acres of Diamonds"
867 Why Certain Plants Are Acrid Professor William B. Lazenby Why Certain Plants Are Acrid Why Certain Plants Are Acrid Professor William B Lazenby litmax/acridplant.lit "Lazenby, Professor William B - Why Certain Plants Are Acrid"
868 Across the Years Eleanor H. Porter Across the Years Across the Years Eleanor H Porter litmax/acros.lit "Porter, Eleanor H - Across the Years"
869 Liber LIX - Across the Gulf Aleister Crowley Liber LIX - Across the Gulf Liber LIX-Across the Gulf Aleister Crowley litmax/acrossgulf.lit "Crowley, Aleister - Liber LIX-Across the Gulf"
870 Across the Moors William Fryer Harvey Across the Moors Across the Moors William Fryer Harvey litmax/acrossmoors.lit "Harvey, William Fryer - Across the Moors"
Oh, by the way, when I say 'Format F M L' should be 'Format L, F M' I don't mean using the Book Properties with the same name, but instead using just one field (Author Firstname) as a source and performing that string manipulation on it ONLY i.e. Author 'Russell H Conwell' becomes 'Conwell, Russell H'. The tricky part is spotting surname suffixes like Sr., Jr. or III.
Thank you, I am glad the program is working for you. I appreciate the comments.
I added the list above to 1.1.7
-- Michael
I like where this program is going: IMP format displayer and editor. It's been a long time coming and I am only glad I can be a "catalyst" for you to produce same. I am a "hobby" programmer and most suited to tweaking code already written than writing my own code from scratch (especially with a GUI!).:thumbsup:
nrapallo 01-02-2009, 10:30 AM Version 1.1.7 works like a charm! Sweet! :2thumbsup
OK, feature request time.....
Have you used the eBookwise Librarian (aka GEB Librarian) before?
It allows for, amongst other things, category editing where a standard list is maintained and added to as the user changes categories. It is simple in its implementation but quite powerful in its use. There could be a drop-down box in the Book Properties tab beside the Category to accomplish same.
Also, Imp Librarian (http://www.mobileread.com/forums/showthread.php?t=23003) has some nice library database manipulations, like CSV Dump for all it's .imp ebook library. Perhaps, ConvertIMP can "read" in a user directory (but not parse it just yet), then have the user select one of the library entires and then "go to town" on it. This two-tier/level approach will allow some Global editing/renaming to be facilitated as well as allowing your core program functions to be retained for a single .imp ebook. Food for thought....
Anyone else using this program have anything to add... please, I don't want to make this a one-trick (user) show... :snicker:
nrapallo 01-02-2009, 05:15 PM Michael:
Have you seen this post (http://www.mobileread.com/forums/showthread.php?t=8380) featuring a lot of early LRF tools/code?
They even have some lrf to html/xml programs similar (in spirit) to your imp to html program.
Worth a look-see...
mscott161 01-02-2009, 06:41 PM Nick,
I have not seen that post. I will look into it. I have posted a new version 1.2 for you to see.
--Michael
ashkulz 01-03-2009, 10:46 AM Nick/Michael: have either of you figured out enough of the .IMP format so that you can write an image-only IMP [no text at all] so that I can incorporate it into pdfread? That way there'd be no dependency on eBook Publisher....
nrapallo 01-03-2009, 02:24 PM Nick/Michael: have either of you figured out enough of the .IMP format so that you can write an image-only IMP [no text at all] so that I can incorporate it into pdfread? That way there'd be no dependency on eBook Publisher....
Yeah, still trying to get there... ;)
A minimal list of .RES filetypes that are used (when using solely images as ebook pages) and what they do is presented below:Filetype: (DATA.FRK text with control codes for images)
Filetype:!!sw (Standard coding can be obtained from sample .imp build)
Filetype:AncT (optional - if want to be able to link to images from TOC)
Filetype:AnTg (optional - if want to be able to link to images from TOC)
Filetype:BGcl (default = FFFFFF [white])
Filetype:BPgZ (actual ebook screen - the HARD one!!!!)
Filetype:BPgz (actual ebook screen - the HARD one!!!!)
Filetype:Devm (default = 01)
Filetype:ESts (use default x-sbp-widow-push and x-sbp-orphan-pull)
Filetype:ImRn (list of images stored with particulars and assigned Image ID)
Filetype:Mrgn (default, not used)
Filetype:PcZ0 (holds actual picture sizes to display on ebook screen)
Filetype:Pcz0 (holds actual picture sizes to display on ebook screen)
Filetype:pInf (compute last page number/image resources count info)
Filetype:GIF (repack list of images)
Filetype:JPEG (repack list of images)
Filetype:PNG (repack list of images)
Filetype:PPic (summary of number of images and borders used)
Filetype:StRn (optional - if want styles for headings and such)
Filetype:Styl (optional - if want styles for headings and such)
The above remaining filetypes to reverse-engineer are few, if any. The creation/combination of the pieces into a .IMP without using the eBook Publisher /dll's should be trival afterwards.
Close but just not there yet... :)
mscott161 01-04-2009, 01:37 PM I have posted a bug fix to the version 1.2 If the book list loads from the XML file and you click on the General tab after selecting a book it throws an error.
-Michael
mscott161 01-05-2009, 04:22 PM Some things found while looking at the tabl, trow, and tcel res files:
the tables match pretty good. I think there are 3 values for the table border 0, 1, and 2. Also the TRow is actually the TD tag in HTML and TCel is the definition for TR, but I find the offset and length confusing because the numbers are not even close. You will also notice in the Index for TRow and TCell the second Index is 1 byte larger than the others.
-- Michael
nrapallo 01-05-2009, 04:38 PM but I find the offset and length confusing because the numbers are not even close. You will also notice in the Index for TRow and TCell the second Index is 1 byte larger than the others.
-- Michael
Off the top of my head, try printing the offset and length in hexadecimal and see if it is a LE vs BE issue ie. 0x1000 is 16 in LE and 4096 in BE.
mscott161 01-06-2009, 02:36 PM Nick,
I liked your suggestions and added a IMP Type Column and allowed the including of sub directories.
I did look at the LE and BE both. I know the IMP format says there sould be a ID for the TRow and the TCel that match its parent but I have been unable to locate them besides in the indexes.
-Michael
-- Michael
mscott161 01-06-2009, 06:26 PM I have place a bug fix for the REB1200 IMP File Format. It is in v.1.2.3 see post #1
The Tabl, TRow, and TCel content and indexes match up nicely in that format, but not for EBW1150. I will post a new version when I can match both.
-- Michael
nrapallo 01-06-2009, 06:37 PM I have place a bug fix for the REB1200 IMP File Format. It is in v.1.2.3 see post #1
The Tabl, TRow, and TCel content and indexes match up nicely in that format, but not for EBW1150. I will post a new version when I can match both.
-- Michael
Then for sure the problem is "LE vs BE" as the .IMP "specs" were written for the REB1200 format and need to be re-interpreted with the EBW1150's slghtly longer index size as well as its reversed byte representation (BE).
Thanks for adding the REB1200 support! Much appreciated!!!
mscott161 01-07-2009, 03:17 AM Nick,
I have published v.1.2.4 for you. It has the Tabl, TRow, TCel for the REB1200 displayed in the tree. I am still working on the 1150.
-- Michael
mscott161 01-07-2009, 11:42 PM Nick,
I have noticed in the TCel and TRow sections that there is more than one record per index. The index length is greater than a single record. I will post a new version tonight. In the tree view I added the Groups for both the individual records under their parents. Also for debug information. I have a Text Display of the Tree Expanded out on the Content Tab. I have not had any luck with the EBW 1150 for these two sections. I have tried BE and LE but the bytes do not match the format of REB1200 at all.
-- Michael
nrapallo 01-08-2009, 12:25 AM Nick,
I have noticed in the TCel and TRow sections that there is more than one record per index. The index length is greater than a single record. I will post a new version tonight. In the tree view I added the Groups for both the individual records under their parents. Also for debug information. I have a Text Display of the Tree Expanded out on the Content Tab. I have not had any luck with the EBW 1150 for these two sections. I have tried BE and LE but the bytes do not match the format of REB1200 at all.
-- Michael
Which source .imp file are you using as your "guide"? ResTestDocument.imp?
If so, I'll check that to see what I can come up with. It helps to look at both the .imp and _1200.imp versions at the same time when reverse-engineering this stuff.
But be careful with that one!!! The EBW1150 version is one I recently created using eBook Publisher v2.2 and the REB1200 version was the one the original poster had created using SBPublisher 1.5 (it's actually a Softbook 200/250e imp type 0).
You may want to try another ebook set like 16 Web Safe Colors (http://www.mobileread.com/forums/showthread.php?p=156435#post156435) for this table testing.
EDIT: I've added EBW1150 & REB1200 versions of RebTestDoc.imp created by eBook Publisher, so that you can continue to test with it (use it as your guide)! :cool:
mscott161 01-08-2009, 02:19 PM Nick,
Thanks for the files I will check them out. I have been using the Space.imp file for testing because it is small. I wonder if the EBW1500 uses a XOR to get the number. It almost seems compressed. I will be trying a few things.
I have a new version that take the Text content and creates an LRF file now. And a process that iterates through the library list and creates lrf files for each. I am currently running it on all 1600 books.
I would like to thank the creators and developers involved in the BBeBLib (Chris Mumford) for the source code to get this part working.
--Michael
PS - I plan to upload the new version later today or tomorrow.
ritibelle 03-05-2009, 11:43 AM I would like to test this but for the life of me can't figure out how to use it :blink:
Can anyone give me some pointers?
Thank you very much!
mscott161 03-06-2009, 12:49 PM ritibelle,
What problems do you have?
Michael
ritibelle 03-06-2009, 06:06 PM Well, I unziped your file and I just plain don't know what to do next...
What do I do with that bunch of files inside the zip?
mscott161 03-06-2009, 07:07 PM Ritibelle,
If you are not using Visual Studio 2008 and just want to use the Convert Program, then the only files you will need are
ConvertIMPGUI.exe
ICSharpCode.SharpZipLib.dll
Put these two files in a folder and run the exe file.
On the form at the top use the browse button to select the directory where your IMP files are located if you have sub directories with IMP files check the check box to include subdirectories.
This will load the list area on the Library tab. Select a book by single clicking it and then you can use the other tabs.
Michael
nrapallo 03-06-2009, 07:10 PM Well, I unziped your file and I just plain don't know what to do next...
What do I do with that bunch of files inside the zip?
Oh, that's easy, just drill down the folders bin/debug and double-click the ConvertIMPGUI.exe.
Then choose the directory with your .imp files.
Have fun!
By the way, I like your choice of devices. ;) :thumbsup:
EDIT: Oops, beat by Michael!
ritibelle 03-07-2009, 04:50 PM Thanks, I've got it at last! It seems great!
Why would I want to use Visual Studio? I mean, what would I be able to do with it? Sorry to bother you with all these questions.
As for devices, I've been lusting for these newer machines but when push comes to shove I don't think they are better then what I've already have, just different. And I can't do without the backlight!
Thanks again for the help! :)
rtype 10-24-2009, 02:36 PM Michael,
First of all thanks for writing such a great tool!
I wanted to use the functionality in your program from calibre (i.e. the convert from imp to HTML bit) since I use calibre to orgainize all my books.
I created my plugin in calibre, and also modified your code slightly giving it the ability to accept the path to an imp and a path to an output file have that conversion happen automatically.
I think it would be a good feature for the program to have I can pass on the few changes if you would like to incorporate them.
In looking at this I also made a change to the FormatDATAToHTML method
changing the string strFile to a StringBuilder gives a huge performance benifit with large files (or at least on the couple I've tried)
mscott161 10-30-2009, 12:48 PM rtype,
No problem I would love to see any changes you have done. I have been working on a program suite like calibre but in .Net it would allow most downloaded ebooks (secure and unsecure) then create the file for the device or devices you selected. I gets annoying to have to use a utility for each format to get it to text or html then use my program to create the format for my device.
I wished someone would create an ebook device that will allow the secure and unsecure of the most popular formats without having to convert them.
Michael
rtype 11-01-2009, 01:30 PM Great,
here are the changes I made, I've included a changes.txt file in the solution describing the specifics.
test_IMPX_input_plugin.zip is the (very much a WIP but working) calibre plugin I have been writing (it assumes that ConvertIMPGUI.exe is in C:\ConvertIMPGUI , I havn't gotten to a config ui)
I think it'll be a while before we have a reads everthing ebook they would much rather you buy the book again in their format :-)
|