Free PDF Annotation Merger for Eee Note

Discussion in 'Asus (Android)' started by TheTwo, Apr 21, 2011.

Thread Status:
Not open for further replies.
  1. pbarrette

    pbarrette Scribbler - Standard Member

    Messages:
    196
    Likes Received:
    2
    Trophy Points:
    31
    Hi TheTwo,

    That's exactly right.

    0x21 0xFF 0x0B ENOTGIFE001 [DATA]

    The data is actually another group of LZW compressed image data blocks.

    Keep in mind that the "0xFE" you encountered isn't specifying the length of all of the data that follows. It merely specifies the first data block of the extension. The 255 bytes that follow are the contents of the first data block of the extension. If the next byte is a zero, then you have reached the end of the extension data. If it's not zero, then that byte is used to determine the length of the second data block. Repeat until you hit a zero.

    For example:
    0xFE [255 data bytes] 0xFE [255 data bytes] 0x20 [32 data bytes] 0x0

    In this example, your AEB would contain 255+255+32 bytes of data.

    The reality is that you don't really have to do a lot of separation here. You can just read the AEB from the first 0xFE until EOF into BufferB. You can also read the beginning of the GIF file until you reach the first image data block into BufferA.

    BufferA+BufferB = a second gif image that was stuffed into the AEB. The AEB data was written without the GIF headers, because the headers already exist for the original image data.

    So basically, you're using the GIF header from the image, then replacing the image data and AEB extension with all the data that follows ENOTGIFE001.

    The GIF headers in my images start at offset 0x0 and runs for 791 bytes. Byte 792 is the GIF image data, which starts with 0xFE...

    Once you have the original image and the AEB image, you can put them together in Photoshop. The AEB image is used as an alpha mask over the original image to get the actual image as seen on the EeeNote.

    I hope this makes sense.

    pb
     
  2. TheTwo

    TheTwo Scribbler - Standard Member

    Messages:
    102
    Likes Received:
    0
    Trophy Points:
    31
    Thanks for the detailed answer pb,

    I will try it tomorrow.

    TheTwo
     
  3. TheTwo

    TheTwo Scribbler - Standard Member

    Messages:
    102
    Likes Received:
    0
    Trophy Points:
    31
    Hi,

    thanks again pb.

    I've managed to extract the alpha channel and merge the original gif with the alpha information and the background template. Additionally, I have added an option to remove the grey color from the background image.

    Furthermore, it is now possible to select some pages of a notebook that should be exported.

    I hope that I haven't introduced some bugs.

    Have fun,

    TheTwo
     
  4. docman

    docman Pen Pal - Newbie

    Messages:
    25
    Likes Received:
    0
    Trophy Points:
    5
    Hi, I really appreciate your program. A must for AE800. However, I could not get it running.

    This is that I found:

    1. Communication between the program (PC) and AE800:
    - I am not sure if Sync is really needed to run to establish connection.
    - actually I did run it, then I quit it, still no connection could be established.
    - however, when I ran the program first, than connected the USB cable and set Sync on AE800, after a while database connection was established
    - at this point I could select either EeeNote or SD to locate the pdf file to merge with its note

    2. Setting up input:
    - as noted above, I was able to locate the pdf file

    3. Setting up output:
    - I could not set it up.
    - I entered a filename like filename.pdf
    - then I went to locate the directory to save this file to
    - at that point an exception occurred and the program ended up not responding with the following error message (detailed):

    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.ArgumentOutOfRangeException: Length cannot be less than zero.
    Parameter name: length
    at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
    at Free_PDF_Annotation_Merger_for_eee_Note.FormApplication.button_outputPDF_Click(Object sender, EventArgs e)
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3603 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    Free_PDF_Annotation_Merger_for_eee_Note
    Assembly Version: 0.5.1.0
    Win32 Version: 0.5.1.0
    CodeBase: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/FPDFAM_for_Eee_Note_v0.5.1_13111680485467455.zip/Free_PDF_Annotation_Merger_for_eee_Note.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3614 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Xml.Linq
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.1 built by: SP
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml.Linq/3.5.0.0__b77a5c561934e089/System.Xml.Linq.dll
    ----------------------------------------
    System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.1 built by: SP
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.
    <End of Error message>

    4. Setting up firmware version:
    - went OK

    5. Merging:
    - not really relevant given that the output was not set properly (there was indication the the pdf file is being downloaded, however no progress bar action was seen and really nothing happened)

    Thanks for your help in advance.
     
    Last edited by a moderator: May 18, 2015
  5. TheTwo

    TheTwo Scribbler - Standard Member

    Messages:
    102
    Likes Received:
    0
    Trophy Points:
    31
    Hi docman,

    i can reproduce the error you get at point 3. It happens when you insert a pdf name without path. I will have a look at it.

    To avoid this error, delete the content in the field and then select the "..."-botton. Then choose a directory and write the filename into the field in this open dialogue under "File name".

    I hope this helps.

    TheTwo
     
  6. TheTwo

    TheTwo Scribbler - Standard Member

    Messages:
    102
    Likes Received:
    0
    Trophy Points:
    31
    Hello,

    the next step is done. I've released today v0.6 of my program. Now there is a new option to cope with the crop function of the Eee Note.

    TheTwo
     
  7. lyingmachine

    lyingmachine Pen Pal - Newbie

    Messages:
    33
    Likes Received:
    0
    Trophy Points:
    15
    Hi The Two,

    Thank you for your excellent work!

    I'm wondering is it possible for the program to have an import function?
    The ASUS sync program can import/ export pdf files, but it can't import the annotations. If I want to remove a pdf (annotated) from the eeenote temporarily, and import it back into the eeenote later, all the annotations will disappear. The only way to keep the annotations with the pdf now is to backup the whole machine. But this is not very convenience.
    So, I'm wondering if it is possible for your program to have an import/export function?
    If this is too difficult to made, is it possible to have a function to download the annotation file to the computer?
    I remember in the earlier version, the program would save a copy of the annotation file in the computer after the merge function have performed. Is it possible to keep this function in the new version? Because sometimes I want to keep the original annotation file in order to put it back to the machine through the sync program.

    thank you again!
    LM
     
  8. TheTwo

    TheTwo Scribbler - Standard Member

    Messages:
    102
    Likes Received:
    0
    Trophy Points:
    31
    Hi lyingmachine,

    the information about the placement of the images is stored in a database. When you choose a PDF in FPDFAM then the PDF and the Annotation files (Gifs and an export of the database) are stored in "%appdata%/FPDFAM". Until now I delete this information after merging, but it would be possible to add an option not to delete the info.

    A reimport to the eeenote would be possible if I would know, which commands the eeeserver running on the EA800 understands. This is a bit harder to solve. Maybe someone knows these commands. Then I can give it a try.

    TheTwo
     
  9. domee

    domee Pen Pal - Newbie

    Messages:
    38
    Likes Received:
    0
    Trophy Points:
    15
    Hello TheTwo,

    I do not have an EA800 yet, but will probably order one in the next days. I'm already highly interested in your program, because I have to annotate a lot of pdfs for my thesis.

    I'm wondering whether your or anyone else could send me an already merged pdf with a few handwritten notes in it, so I could take a look at it. That would be really, really great. A Screenshot would also do.:)

    Thanks and keep up the great work,
    domee
     
  10. TheTwo

    TheTwo Scribbler - Standard Member

    Messages:
    102
    Likes Received:
    0
    Trophy Points:
    31
    Hi,

    I have sent you an example PDF.

    TheTwo
     
Loading...
Similar Threads - Free Annotation Merger
  1. Isaac Burrough
    Replies:
    14
    Views:
    2,203
Thread Status:
Not open for further replies.

Share This Page