The present invention relates generally to electronic publishing, and more particularly, to publishing and rendering an electronic publication in a fixed layout.
Today, the world of electronic publications enjoys increasing consumer awareness spurred by the recent availability of consumer electronic reader devices, or e-reader devices, such as those commercially available from well-known companies such as Apple, Barnes and Noble, and Sony. Electronic publishing data format standards have been developed and are being developed to provide publishers with a standardized set of rules and instructions for publishing electronic publications for different e-reader device platforms. An example of such a standard is the Electronic Publication (EPUB) standard developed by the International Digital Publishing Forum (IDPF). A current release of the ePub standard, 2.0.1, is available online at www.idpf.org.
Current electronic publishing data format standards are designed for re-flowable content and do not inherently support fixed layouts. This means that e-reader devices following these standards move visual content (e.g., text and images) from one page to another as necessary to fit visual content to the size of the e-reader device display screen and according user preferences. For example, current standards allow users to change the font or font size of text to suit their preferences. As the font or font size changes, an e-reader device may re-flow text as necessary so that the width of a line of text is no longer than the width of the screen thereby preventing the user from having to scroll or pan horizontally to read lines of the book. This may also result in visual content on a page re-flowing to the previous or next page or visual content on the previous or next pages re-flowing to a currently displayed page. Further, to mimic the behavior of actual physical books, many e-reader devices present visual content on pages that are displayed entirely on the screen of the e-reader device so that the user is not required to scroll or pan vertically when reading. As a result, if the font or font size is changed by the user, visual content initially on one page may re-flow to another page.
The re-flowable behavior of current standards and current e-reader devices is generally acceptable to publishers when the electronic publication consists largely of text with few or no images or images that are to be presented inline within text. However, some publishers may wish to publish an electronic publication in which the layout of visual content is fixed on pages and does not re-flow inter-page. Cookbooks, travel books, photography books, children's books, and other image intensive books are examples of types of electronic publications where a fixed layout may be desirable.
One possible solution to creating a fixed layout electronic publication is to capture or create a digital image of each entire page. An e-reader device may then display each image to the reader. However, this solution is less than optimal because the text of the page captured in an image typically would not be available as text data to useful text-based capabilities of many e-reader devices such as searching, bookmarking, highlighting and passage sharing. Further, if the dimensions of an image are not proportional to the dimensions e-reader device display, the e-reader device may split the image over multiple pages resulting in an unappealing presentation of the publication.
Based on the foregoing, it is clearly desirable to help publishers create fixed layout electronic publications in which a fixed relationship between visual content and pages may be maintained in e-reader device displays and in which text content is available to the e-reader devices as text data. The present invention fulfills these and other needs.
BRIEF DESCRIPTION OF THE DRAWING(S)
FIG. 1 shows a block diagram of a sample e-reader device in which some embodiments of the invention may be implemented.
FIG. 2 shows a hierarchical file system view of an example electronic publication according to some embodiments of the invention.
FIG. 3 shows a flowchart of a sample rendering operation according to some embodiments of the invention.
FIG. 4 shows a flowchart of a sample scaling operation according to some embodiments of the invention.
As used herein, the term “electronic reader device”, or just “e-reader device”, refers to a physical platform (hardware and software) on which electronic publications are rendered. Non-limiting examples of e-reader devices include desktop computers, laptop computers, tablet computers, mobile/smart phones, dedicated e-reader devices, or any other computing device capable of or configured for rending electronic publications.
As used herein, the term “publisher”, unless otherwise indicated, refers to any human creator of an electronic publication. For example, the publisher may be the copyright owner of the content of the publication or an agent creating the publication on behalf of the copyright owner.
As used herein, the term “reader”, unless otherwise indicated, means a human user of an e-reader device.
In the following description, the term “visual content” broadly refers to any type of content that may be displayed as part of an electronic publication on a display screen of an e-reader device, including but not limited to text and images.
According to some embodiments, techniques are described herein to assist a publisher to create fixed layout pages of an electronic publication. The techniques are useful for creating cookbooks, travel books, photography books, children's books, other “illustrated books”, or any other electronic publication where a fixed layout for at least some of the pages of the electronic publication is desirable. With the techniques, the publisher may embed fonts, select particular fonts and font sizes, assign visual content to fixed layout pages, and precisely position visual content at fixed positions on fixed layout pages.
As used herein, the term “fixed layout electronic publication” means an electronic publication having at least one fixed layout page.
As used herein, the term “fixed layout page” means a single page or a two-page spread of an electronic publication in which visual content assigned to the page or the two-page spread does not re-flow between pages. A two-page spread is two consecutive facing pages of an electronic publication displayed side-by-side. Unless otherwise indicated or apparent from context, where “fixed layout page” is recited in the following description, either “single page fixed layout page” or “two-page spread fixed layout page” may be substituted instead. Thus, in the following description, unless otherwise indicated or apparent from context, description related to a fixed layout page applies to both a single page fixed layout page and a two-page spread fixed layout page.
According to some embodiments, an e-reader device prevents a reader from changing the font or the font size of text of a fixed layout page presented to the reader, thereby preserving the font and font size selections of the publisher. In some embodiments, if the reader zooms or magnifies a fixed layout page, the e-reader device does not re-flow visual content assigned to the fixed layout page by the publisher, thereby preserving the fixed layout choices of the publisher.
In accordance with some embodiments of the present invention, a rendering mechanism for e-reader devices is provided for automatically scaling and rendering a fixed layout page to fit an e-reader device display screen size based, at least in part, upon page size information associated with the fixed layout page. In some embodiments, the page size information is specified by the publisher when authoring the electronic publication. In some embodiments, the page size information includes a page aspect ratio and page dimensions (e.g., width and height in pixels). In this case where only both a page aspect ratio and page dimensions are specified, the aspect ratio of the page dimensions should be the same or substantially the same as the page aspect ratio. In other embodiments, the page size information includes just page dimensions and the page aspect ratio is calculated from the page dimensions. The rendering mechanism relieves the publisher from having to create multiple fixed layout pages for different e-reader devices having different display device sizes. With the techniques, the publisher can create a single fixed layout page that can be viewed in a fixed layout on all of, for example, a desktop computer, a tablet computer, and a mobile phone.
In some embodiments where the page size of a fixed layout page according to associated page size information is larger in at least one dimension (e.g., width or height) than the display screen of an e-reader device, the rendering mechanism scales the fixed layout page, including the visual content assigned to the page by the publisher, so that the fixed layout page and the assigned visual content fit entirely on the display screen. When scaling, the rendering mechanism maintains or substantially maintains the page aspect ratio and fixed layout of the fixed layout page specified by the publisher. Thus, the techniques allow a publisher to select a page aspect ratio and a fixed layout for the fixed layout page that the publisher deems is best suited for the visual content of the fixed layout page and the page aspect ratio and fixed layout will be maintained or substantially maintained by the rendering mechanism when the fixed layout page is displayed by the e-reader device.
For example, with the techniques, a publisher can create a book in which a fixed layout page is wider than taller and is filled with an image and where text on the fixed layout page is layered on the image at a fixed location relative to the fixed layout page. According to some embodiments, the rendering mechanism will scale the size of fixed layout page, the size of the image, and the size and position of the text as necessary to fit the size of the e-reader display screen, maintaining or substantially maintaining the page aspect ratio and the fixed position of the text relative to the scaled fixed layout page.
According to some embodiments, the rendering mechanism automatically scales a fixed layout page of an electronic publication in the following manner. Initially, the rendering mechanism obtains a content document authored by the publisher representing the fixed layout page. The content document is associated with or includes page size information. The content document includes or references the visual content to be displayed on the fixed layout page. In some embodiments, the content document is a HyperText Markup Language (HTML) formatted or an eXtensible HyperText Markup Language (XHTML) formatted document. Optionally, the content document includes or references instructions for precisely positioning the visual content at fixed locations on the fixed layout page. In some embodiments, a Cascading Style Sheet (CSS) is used for precise positioning. The CSS may be internal or external to the content document.
After obtaining the page size information, the rendering mechanism then selects a first page dimension and a target size for the first page dimension based, at least in part, upon the page aspect ratio and the dimensions of the e-reader device display screen. The first page dimension is selected by the rendering mechanism as either width or height such that the fixed layout page, when scaled to fit entirely on the display screen, maintains or substantially maintains the page aspect ratio.
In some embodiments, which of the width and height dimensions is selected by the rendering mechanism as the first page dimension depends on a difference, if any, between the page aspect ratio and the aspect ratio of the display screen. For example, if the page aspect ratio is larger than the screen aspect ratio and the page width is greater than the width of the display screen, then the rendering mechanism may select a target width for the fixed layout page such that the fixed layout page, when scaled for display by the rendering mechanism, fits entirely on the display screen while maintaining or substantially maintaining the page aspect ratio. On the other hand, if the page aspect ratio is smaller than the screen aspect ratio and the page height is greater than the height of the display screen, then the rendering mechanism selects a target height such that the fixed layout page, when scaled for display, may be displayed entirely on the display screen. If the page dimensions are such that the page size is smaller than the size of the display screen in both width and height, the rendering mechanism may not perform any scaling of the fixed layout page.
In some embodiments, the rendering mechanism selects a target size for the first page dimension that is as large or nearly as large as possible given the size constraints of the display screen and so that the fixed layout page is displayed entirely on the display screen while leaving room for other elements that may consume screen real estate such as, for example, another fixed layout page, if the fixed layout page is a single page fixed layout page being displayed as part of a two-page spread; toolbars, borders for fake pages and fake bindings; a small slice of the facing page; etc.
In some embodiments, the rendering mechanism is also capable of scaling visual content assigned to a fixed layout page. The visual content is scaled such that the visual content remains on the fixed layout page to which it was assigned by the publisher. In other words, the rendering mechanism does not re-flow the visual content between pages. To do so, in some embodiments, the rendering mechanism calculates a width-wise scaling factor and a height-wise scaling factor based on the page dimensions indicated by the associated page size information and the dimensions of the fixed layout page as scaled for display by the rendering mechanism. The positions and sizes of visual content assigned to the fixed layout page may then be scaled by the rendering mechanism based on the calculated scaling factors to proportionally fit the dimensions of the scaled fixed layout page.
As example of scaling a fixed layout page of an electronic publication, assume the publisher has specified the dimensions of the fixed layout page as 2000 pixels wide and 2800 pixels high. Thus, the page aspect ratio is 2000 pixels/2800 pixels. In addition, assume the publisher has positioned the top-left corner of an image 1000 pixels wide and 1400 pixels high at 200 pixels from the left border of the fixed layout page and 400 pixels down from the top border of the fixed layout page. Now assume the rendering mechanism selects a scaled page width of 670 pixels based on a screen size that is 768 pixels wide and 1024 pixels high, a typical screen size for handheld tablet computers.
According to some embodiments, the scaled fixed layout page produced by the rendering mechanism of the present invention may be 670 pixels wide and 938 pixels high. The image may be scaled down to 335 pixels wide and 469 pixels high and positioned on the scaled fixed layout page so that the top left corner of the image is 67 pixels from the left border and 134 pixels from the top border of the scaled page.
Note that in this example, the aspect ratio of the scaled fixed layout page (670/938) is the same as the publisher-specified page aspect ratio (2000/2800). Further note that scaled image consumes the same percentage area of the scaled fixed layout page as the originally sized image consumed of the published-specified page size. Also note that the position of the scaled image on the scaled fixed layout page is proportional to the position of the original image on the publisher-specified fixed layout page. Thus, in this example, the page aspect ratio and the fixed layout of the fixed layout page specified by the publisher are maintained by the rendering mechanism when scaling the fixed layout page to fit the size of the display screen.
Sample E-Reader Device
With reference to FIG. 1, there is shown a block diagram of a sample e-reader device 100 in which some embodiments of the present invention may be implemented. Device 100 may be a desktop computing device, a laptop computing device, a tablet computing device, a smart phone, a dedicated electronic reading device, or the like. As shown, device 100 includes a bus 102 for facilitating information exchange, and one or more processors 104 coupled to bus 102 for executing instructions and processing information. Device 100 also includes one or more storage(s) 106 (also referred to herein as computer readable storage media) coupled to the bus 102. Storage(s) 106 may be used to store executable programs, permanent data, temporary data that is generated during program execution, and any other information needed to carry out computer processing.
Storage(s) 106 may include any and all types of storages that may be used to carry out computer processing. For example, storage(s) 106 may include main memory (e.g. random access memory (RAM) or other dynamic storage device), cache memory, read only memory (ROM), permanent storage (e.g. one or more magnetic disks or optical disks, flash storage, etc.), as well as other types of storage. The various storages 106 may be volatile or non-volatile. Common forms of computer readable storage media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, DVD, or any other optical storage medium, punchcards, papertape, or any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM or any other type of flash memory, any memory chip or cartridge, and any other storage medium from which a computer can read.
As shown in FIG. 1, storage(s) 106 store at least several sets of executable instructions, including an operating system 114 and an application 112. The processor(s) 102 execute the operating system 114 to provide a platform on which other sets of software may operate, and execute the application 112 to provide additional, specific functionality. For purposes of the present invention, the application 112 may be any type of application that renders electronic publications on a screen of display device 116.
In some embodiments, the functionality described herein is provided at least in part by the application 112. The application 112 may invoke the services of the operating system 114 to provide some of the functionality. For example, when the application 112 has a fixed layout page of an electronic publication to scale and render, the application 112 may invoke services of the operating system 114 to determine device-specific information such as the current aspect ratio, size, dimensions, orientation, etc. of the screen on display device 116. The application 112 may then use the device-specific information to scale the fixed layout page and the visual content assigned to it. The application 112 may invoke another service of the operating system 114 to actually render the scaled fixed layout page and the scaled visual content on the screen of the display device 116. As an alternative, the application 112 may provide the fixed layout page and the visual content to the operating system 114, and ask the operating system 114 to scale and render the fixed layout page and the visual content according to parameters determined by the operating system 114. As an alternative to having the operating system 114 provide scaling and rendering functionality, the functionality may instead be provided by the application 112 itself. As a further alternative, the functionality may be provided by a combination of or cooperation between the operating system 114 and one or more other applications (not shown). All such possible divisions of functionality are within the scope of the present invention.
The device 100 further comprises one or more user interface components 108 coupled to the bus 102. These components 108 enable the device 100 to receive input from and provide output to a user. On the input side, the user interface components 108 may include, for example, a keyboard/keypad having alphanumeric keys, a cursor control device (e.g. mouse, trackball, touchpad, etc.), a touch sensitive screen, a microphone for receiving audio input, etc. On the output side, the components 108 may include a graphical interface (e.g. a graphics card) and an audio interface (e.g. sound card) for providing visual and audio content. The user interface components 108 may further include a display device 116, a set of speakers, etc., for presenting the audio and visual content to a user. In one embodiment, the operating system 114 and the application 112 executed by the processor(s) 104 may provide a software user interface that takes advantage of and interacts with the user interface components 108 to receive input from and provide output to a user. This software user interface may, for example, provide a menu that the user can navigate using one of the user input devices mentioned above.
Different devices 100 may have different size display devices 116. Thus, the available screen space for rendering electronic publications on a display device 116 may vary from device 100 to device 100. Further, the aspect ratio and the dimensions of the screen of a display device 116 may vary from device 100 to device 100. Still further, in portable devices 100 that rotate the orientation of the screen depending on the physical orientation of the display device 116, the aspect ratio and dimensions of the screen of a display device 116 may vary depending on whether the screen is currently in landscape orientation (wider than taller) or currently in portrait orientation (taller than wider).
In addition to the components set forth above, the device 100 further comprises one or more communication interfaces 110 coupled to the bus 102. These interfaces 110 enable the device 100 to communicate with other components. The communication interfaces 110 may include, for example, a network interface (wired or wireless) for enabling the device 100 to send messages to and receive messages from a network. The communications interfaces 110 may further include a wireless interface (e.g. Bluetooth) for communicating wirelessly with nearby devices, and a wired interface for direct coupling with a compatible local device. Furthermore, the communications interfaces 110 may include a 3G interface for enabling the device to access the Internet without using a local network. These and other interfaces may be included in the device 100.
Fixed Layout Electronic Publication
In some embodiments, a fixed layout electronic publication is a specially constructed compressed file archive. The file archive may be in any suitable compressed file archive format such as, for example, the widely used .zip format or other format suitable to the requirements at hand. The fixed layout publication may contain, among other configuration files, a number of content documents created by the publisher.
In some embodiments, a fixed layout electronic publication is backward compatible with a re-flowable electronic publishing standard such that a non-capable e-reader device that does not support fixed layout features of the present invention but does support the re-flowable standard can still present the electronic publication (but in a reflowable form). The fixed layout electronic publication may not be presented by these non-capable e-readers devices in a fixed layout as intended by the publisher. Nonetheless, by being backward compatible with the reflowable standard, the fixed layout publication can still be presented by these non-capable e-reader devices in a readable form. In some embodiments, the reflowable standard to which backward compatibility is provided is a current version of the Electronic Publication (EPUB) standard as set forth by the International Digital Publishing Forum (IDPF). Backward compatibility may be maintained with draft and future versions of the EPUB standard and such versions are contemplated as being within the scope of the invention.
In some embodiments, a content document of a fixed layout electronic publication represents one of: (1) a fixed layout page (i.e., a single page fixed layout page or a two-page spread fixed layout page) or (2) re-flowable content. Each content document of a fixed layout electronic publication contains or references visual content (e.g., text and images) of the electronic publication. If a content document represents a fixed layout page, then the visual content of the content document does not re-flow between pages. If the content document represents re-flowable content, then some or all of the visual content of the content document may be displayed on a single page and may re-reflow between pages. Thus, in some embodiments, the electronic publication format of the present invention can be flexibly used by publishers to create electronic publication presenting a mix of fixed layout pages and re-flowable content. The electronic publication format can also be used to create an electronic publication presenting all fixed layout pages. In some embodiments, each content document is formatted according to a web presentation language such as HyperText Markup Language (HTML) or eXtensible HyperText Markup Language (XHTML).
According to some embodiments, visual content of a content document may be precisely positioned by the publisher at fixed locations on a fixed layout page. In some embodiments, visual content is precisely positioned using a Cascading Style Sheet (CSS). The CSS may be a separate file referenced from within the content document or the CSS may be included directly in the content document. Thus, the CSS may be considered to be part of the content document. Example content documents and examples of using CSS for precisely positioning visual content on fixed layout pages are provided below.
Example Electronic Publication
FIG. 2 provides a hierarchical file system view of an example electronic publication according to some embodiments of the invention. The example publication contains two top-level folders “META-INF” and “OEBPS” and a “mimetype” file. The META-INF folder contains the “display-options.xml” and the “container.xml” configuration files. The OEBPS folder contains sub-folders “css”, “fonts”, and “images” containing CSS data, font data, and image data respectively. The OEBPS folder also contains content documents “001.xhtml” through “008.xhtml” and configuration files “package.opf” and “toc.ncx”.
The file and folder layout of the example publication of FIG. 2 is based on a current version of the Open Container Format (OCF) as set forth by the International Digital Publishing Forum (IDPF) but with extensions to support fixed layout electronic publications and other configuration options as described herein. Accordingly, the following discussion focuses primarily on the extensions and the configuration options. Draft and future versions of the OCF as well as other similar electronic publishing container formats based on the Open eBook Publication Structure (OEBPS) are contemplated as being within the scope of the invention and may serve as a basis for the extensions and configuration options described herein.
Further, not all files and folder listed in FIG. 2 are required of the invention. For example, an electronic publication that does not embed any fonts may not include the “fonts” sub-folder. Further, the names of the files and folders are largely arbitrary and may vary from implementation to implementation according to the requirements at hand. For example, the OEBPS folder is arbitrarily named in the example layout of FIG. 2. However, in some cases, a particular name for a file or folder may be used to maintain backward compatibility with a re-flowable electronic publishing standard. Still further, where separate folders are shown in FIG. 2, such separation may not be required. For example, images and font data could be stored in the same folder. Still further, other files not listed in FIG. 2 may be included in an electronic publication. For example, the META-INF folder may contain other configuration files that describe the contents, configuration, metadata, signatures, encryption, rights, and other information about the electronic publication.
Display-Options.XML Configuration File
In some embodiments, an electronic publication includes a “display-options.xml” configuration file. In some embodiments, the display-options.xml configuration file has a file name of “display-options.xml”. However, this file name is not required of the invention and other names may be used.
In some embodiments, upon obtaining the electronic publication, an e-reader device, such as device 100, may read and parse the display-options.xml to access the configuration parameters specified within. The e-reader device may present the electronic publication to the reader in accordance with the configuration. In some embodiments, the configuration data is formatted in eXtensible Markup Language (XML).
In some embodiments, the display-options.xml configuration file provides a number of configuration options to the publisher for configuring the contained electronic publication. In some embodiments, the display-options.xml configuration file specifies whether the electronic publication is to be treated as a fixed layout electronic publication or a re-flowable electronic publication. Other options allow the publisher to fine tune how the electronic publication is displayed on different devices and in different situations.
An example display-options.xml file is:
<?xml version=“1.0” encoding=“UTF-8”?>