Yuwen Yan
Yuwen Yan

Reputation: 4935

How to convert en-media to img when convert enml to html

I'm working with evernote api on iOS, and want to translate enml to html. How to translate en-media to img? for example:

en-media:

<en-media type="image/jpeg" width="1200" hash="317ba2d234cd395150f2789cd574c722" height="1600" />

img:

<img src="imagePath"/>

I use core data to save information on iOS. So I can't give the local path of img file to "src = ". How to deal with this problem?

Upvotes: 2

Views: 1095

Answers (2)

s2t2
s2t2

Reputation: 2686

Note: the following solution will allow you to display the image outside of the note's content.

On this page, you'll find the following url template:

https://host.evernote.com/shard/shardId/res/GUID

First compile the url from some variables, then point the html image src = the url.

In ruby, you might compile the url with a method similar to this one:

def resource_url
    "https://#{EVERNOTE_HOST}/shard/#{self.note.notebook.user.evernote_shard_id}/res/#{self.evernote_id}"
end

...where self references the resource, EVERNOTE_HOST is equivalent to the host url (i.e. sandbox.evernote.com), evernote_shard_id is the user's shardId, and evernote_id is the user's guid.

Upvotes: 0

Michael Spector
Michael Spector

Reputation: 37009

The simplest way is embedding image data using Data URI:

  1. Find a Evernote Resource associated with this hash code.
  2. Build the following Data URI (sorry for Java syntax, I'm not very familiar with Objective C):

    String imgUrl = "data:" + resource.getMime() + ";base64," + java.util.prefs.Base64.byteArrayToBase64(resource.getData().getBody());

  3. Create HTML img tag using imgUrl from (2).

Upvotes: 1

Related Questions