DjVu is a computer file format designed primarily to store scanned documents , especially those containing a combination of text, line drawings, indexed color images , and photographs. It uses technologies such as image layer separation of text and background/images, progressive loading , arithmetic coding , and lossy compression for bitonal ( monochrome ) images. This allows high-quality, readable images to be stored in a minimum of space, so that they can be made available on the web .
79-568: DjVu has been promoted as providing smaller files than PDF for most scanned documents. The DjVu developers report that color magazine pages compress to 40–70 kB, black-and-white technical papers compress to 15–40 kB, and ancient manuscripts compress to around 100 kB; a satisfactory JPEG image typically requires 500 kB. Like PDF, DjVu can contain an OCR text layer, making it easy to perform copy and paste and text search operations. Free creators, manipulators, converters, web browser plug-ins, and desktop viewers are available. DjVu
158-622: A page description . PDF has (as of version 2.0) 25 graphics state properties, of which some of the most important are: As in PostScript, vector graphics in PDF are constructed with paths . Paths are usually composed of lines and cubic Bézier curves , but can also be constructed from the outlines of text. Unlike PostScript, PDF does not allow a single path to mix text outlines with lines and curves. Paths can be stroked, filled, fill then stroked, or used for clipping . Strokes and fills can use any color set in
237-447: A 2004 talk on IT Conversations discussed the benefits of allowing easier access to DjVu files. The DjVu library distributed as part of the open-source package DjVuLibre has become the reference implementation for the DjVu format. DjVuLibre has been maintained and updated by the original developers of DjVu since 2002. The DjVu file format specification has gone through a number of revisions,
316-496: A PDF are: In later PDF revisions, a PDF document can also support links (inside document or web page), forms, JavaScript (initially available as a plugin for Acrobat 3.0), or any other types of embedded contents that can be handled using plug-ins. PDF combines three technologies: PostScript is a page description language run in an interpreter to generate an image. It can handle graphics and has standard features of programming languages such as branching and looping . PDF
395-450: A PDF. Within text strings, characters are shown using character codes (integers) that map to glyphs in the current font using an encoding . There are several predefined encodings, including WinAnsi , MacRoman , and many encodings for East Asian languages and a font can have its own built-in encoding. (Although the WinAnsi and MacRoman encodings are derived from the historical properties of
474-420: A PostScript file could be accurately rendered only as the cumulative result of executing all preceding commands to draw all previous pages—any of which could affect subsequent pages—plus the commands to draw that particular page, and there was no easy way to bypass that process to skip around to different pages. Traditionally, to go from PostScript to PDF, a source PostScript file (that is, an executable program)
553-477: A Web browser plugin without waiting for the entire file to download, since all objects required for the first page to display are optimally organized at the start of the file. PDF files may be optimized using Adobe Acrobat software or QPDF . Page dimensions are not limited by the format itself. However, Adobe Acrobat imposes a limit of 15 million by 15 million inches, or 225 trillion in (145,161 km ). The basic design of how graphics are represented in PDF
632-653: A leading cause of hangs, crashes, security incidents, and code complexity". In May 2014, NPAPI support was removed from the Linux version of Chrome 35 and later. In April 2015, Chrome for Windows and OS X (versions 42 and later) disabled NPAPI support by default. However, until September 2015 (version 45), users could re-enable NPAPI. Opera dropped support with version 37 in May 2016. Mozilla Firefox release 52.0 in March 2017 removed all support for NPAPI except for Flash. Meanwhile,
711-467: A manner independent of application software , hardware , and operating systems . Based on the PostScript language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts , vector graphics , raster images and other information needed to display it. PDF has its roots in "The Camelot Project" initiated by Adobe co-founder John Warnock in 1991. PDF
790-452: A page description as an inline image .) Images are typically filtered for compression purposes. Image filters supported in PDF include the following general-purpose filters: Normally all image content in a PDF is embedded in the file. But PDF allows image data to be stored in external files by the use of external streams or Alternate Images . Standardized subsets of PDF, including PDF/A and PDF/X , prohibit these features. Text in PDF
869-417: A paper for a project then code-named Camelot, in which he proposed the creation of a simplified version of PostScript called Interchange PostScript (IPS). Unlike traditional PostScript, which was tightly focused on rendering print jobs to output devices, IPS would be optimized for displaying pages to any screen and any platform. Adobe Systems made the PDF specification available free of charge in 1993. In
SECTION 10
#1732854809278948-439: A printing device. PostScript was not intended for long-term storage and real-time interactive rendering of electronic documents to computer monitors , so there was no need to support anything other than consecutive rendering of pages. If there was an error in the final printed output, the user would correct it at the application level and send a new print job in the form of an entirely new PostScript file. Thus, any given page in
1027-469: A result, files that use a small amount of transparency might be viewed acceptably by older viewers, but files making extensive use of transparency could be viewed incorrectly by an older viewer. The transparency extensions are based on the key concepts of transparency groups , blending modes , shape , and alpha . The model is closely aligned with the features of Adobe Illustrator version 9. The blend modes were based on those used by Adobe Photoshop at
1106-399: A single image into many different images, then compresses them separately. To create a DjVu file, the initial image is first separated into three images: a background image, a foreground image, and a mask image. The background and foreground images are typically lower-resolution color images (e.g., 100 dpi); the mask image is a high-resolution bilevel image (e.g., 300 dpi) and is typically where
1185-553: A small ActiveX control (named " plugin.ocx ") that acted as a shim between ActiveX and the NPAPI plugin. Microsoft dropped support in version 5.5 SP2 onwards for security reasons. Google Chrome permanently dropped all NPAPI support from all platforms in September 2015. In September 2013, Google announced that it would phase out NPAPI support in its Google Chrome browser during 2014, stating that "[its] 90s-era architecture has become
1264-469: A stream may be used instead of the ASCII cross-reference table and contains the offsets and other information in binary format. The format is flexible in that it allows for integer width specification (using the /W array), so that for example, a document not exceeding 64 KiB in size may dedicate only 2 bytes for object offsets. At the end of a PDF file is a footer containing If a cross-reference stream
1343-537: A u and an o with a spot inside turning into an e. Whether lossy compression has occurred is not stored in the file. Thus the DjView viewing application can't warn the user that glyph substitutions might have occurred, neither when opening a lossy compressed file, nor in the Information or Metadata dialogue boxes. DjVu is an open file format with patents. The file format specification is published, as well as source code for
1422-455: Is a feature allowing JavaScript code in a web page to interact with the plugin. Various versions of Netscape and then Mozilla supported this feature using different technologies, including LiveConnect, XPConnect, and NPRuntime. LiveConnect is a feature of Web browsers that allows Java and JavaScript software to intercommunicate within a Web page. From the Java side it allows an applet to invoke
1501-415: Is a subset of PostScript, simplified to remove such control flow features, while graphics commands remain. PostScript was originally designed for a drastically different use case : transmission of one-way linear print jobs in which the PostScript interpreter would collect a series of commands until it encountered the showpage command, then execute all the commands to render a page as a raster image to
1580-464: Is also a shading pattern , which draws continuously varying colors. There are seven types of shading patterns of which the simplest are the axial shading (Type 2) and radial shading (Type 3). Raster images in PDF (called Image XObjects ) are represented by dictionaries with an associated stream. The dictionary describes the properties of the image, and the stream contains the image data. (Less commonly, small raster images may be embedded directly in
1659-465: Is called an embedded font while the former is called an unembedded font . The font files that may be embedded are based on widely used standard digital font formats: Type 1 (and its compressed variant CFF), TrueType , and (beginning with PDF 1.6) OpenType . Additionally PDF supports the Type 3 variant in which the components of the font are described by PDF graphic operators. Fourteen typefaces, known as
SECTION 20
#17328548092781738-589: Is designed specifically to ease the implementation of out-of- process plugin execution. PPAPI was initially only supported by Google Chrome and Chromium . Later, other Chromium-based browsers such as Opera and Vivaldi added PPAPI plugin support. In February 2012 Adobe Systems announced that future Linux versions of Adobe Flash Player would be provided only via PPAPI. The previous release, Flash Player 11.2, with NPAPI support, would receive security updates for five years. In August 2016 Adobe announced that, contrary to their previous statement, it would again support
1817-535: Is heavily tied to the version of Java embedded within the Netscape browser. This prevented the browser from using other Java runtimes, and added bloat to the browser download size, since it required Java to script plugins. Additionally, LiveConnect is tricky to program: The developer has to define a Java class for the plugin, run it through a specialized Java header compiler , and implement native methods . Handling strings , exceptions , and other Java objects from C++
1896-520: Is integration technology that allows any computer program to integrate parts of other computer programs that support such integration. Internet Explorer, however, is discontinued and its replacement, Microsoft Edge, does not support ActiveX. On 12 August 2009 a page on Google Code introduced a new project called Pepper, with the associated Pepper Plugin API (PPAPI); PPAPI is a derivative of NPAPI aimed to make plugins more portable and more secure. This extension
1975-561: Is non-obvious. In addition, LiveConnect uses an earlier and now obsolete application programming interface (API) for invoking native C++ calls from Java, called JRI. The JRI technology has long since been supplanted by JNI . XPConnect (Cross Platform Connect) is a technology which enables simple interoperation between XPCOM and JavaScript. XPConnect allows JavaScript objects to transparently access and manipulate XPCOM objects. It also enables JavaScript objects to present XPCOM compliant interfaces to be called by XPCOM objects. A main goal
2054-418: Is not being used, the footer is preceded by the trailer keyword followed by a dictionary containing information that would otherwise be contained in the cross-reference stream object's dictionary: Within each page, there are one or multiple content streams that describe the text, vector and images being drawn on the page. The content stream is stack-based , similar to PostScript. There are two layouts to
2133-541: Is not required in situations where a PDF file is intended only for print. Since the feature is optional, and since the rules for tagged PDF were relatively vague in ISO 32000-1, support for tagged PDF among consuming devices, including assistive technology (AT), is uneven as of 2021. ISO 32000-2, however, includes an improved discussion of tagged PDF which is anticipated to facilitate further adoption. An ISO-standardized subset of PDF specifically targeted at accessibility, PDF/UA ,
2212-434: Is organized using ASCII characters, except for certain elements that may have binary content. The file starts with a header containing a magic number (as a readable string) and the version of the format, for example %PDF-1.7 . The format is a subset of a COS ("Carousel" Object Structure) format. A COS tree file consists primarily of objects , of which there are nine types: Comments using 8-bit characters prefixed with
2291-484: Is possible to select and copy text. Since JB2 (also called DjVuBitonal) is a variation on JBIG2, working on the same principles, both compression methods have the same problems when performing lossy compression. In 2013 it emerged that Xerox photocopiers and scanners had been substituting digits for similar looking ones, for example replacing a 6 with an 8. A DjVu document has been spotted in the wild with character substitutions, such as an n with bleeding serifs turning into
2370-418: Is preceded by a 4-byte AT&T magic number . Following is a single FORM chunk with a secondary identifier of either DJVU or DJVM for a single-page or a multi-page document, respectively. All the chunks can be contained in a single file in the case of the so called bundled documents, or can be contained in several files: one file for every page plus some files with shared chunks. DjVu divides
2449-402: Is represented by text elements in page content streams. A text element specifies that characters should be drawn at certain positions. The characters are specified using the encoding of a selected font resource . A font object in PDF is a description of a digital typeface . It may either describe the characteristics of a typeface, or it may include an embedded font file . The latter case
DjVu - Misplaced Pages Continue
2528-485: Is still called "LiveConnect", despite the Open Java Interface -specific approach having been abandoned. With Netscape 4, NPAPI was extended to allow plugins to be scripted. This extension is called LiveConnect. A plugin could implement a Java class and expose an instance of it . The class could be called from JavaScript and from Java applets running within the page. The disadvantage of LiveConnect is, that it
2607-430: Is supported by a number of multi-format document viewers and e-book reader software on Linux ( Okular , Evince , Zathura ), Windows ( Okular , SumatraPDF ), and Android ( Document Viewer , FBReader, EBookDroid, PocketBook). The DjVu technology was originally developed by Yann LeCun , Léon Bottou , Patrick Haffner , Paul G. Howard , Patrice Simard , and Yoshua Bengio at AT&T Labs from 1996 to 2001. Prior to
2686-519: Is that objects communicating from either side of an XPCOM style interface should not generally need to know or care about the implementation language of the object on the other side of the interface. XPConnect's primary reason for existence is to replace handwritten code used in places where native code needs to interact with JavaScript code. An example is the DOM module. Full privileges are only granted by default to chrome scripts, i.e. scripts that are part of
2765-439: Is used as the basis for generating PostScript-like PDF code (see, e.g., Adobe Distiller ). This is done by applying standard compiler techniques like loop unrolling , inlining and removing unused branches, resulting in code that is purely declarative and static. The end result is then packaged into a container format , together with all necessary dependencies for correct rendering (external files, graphics, or fonts to which
2844-556: Is used extensively throughout Mozilla. Starting with Netscape 6.1 and Mozilla 0.9.2, NPAPI was extended, so that a plugin could return a scriptable interface to itself and XPConnect would marshal calls to it from JavaScript and the C++ implementation. XPConnect has no Java dependency. However, the technology is based on XPCOM. Thus the plugin developer must be familiar with reference counting , interfaces and IDL to implement scripting. The dependency on XPCOM led to certain dynamic linking issues (e.g.
2923-447: Is very similar to that of PostScript, except for the use of transparency, which was added in PDF 1.4. PDF graphics use a device-independent Cartesian coordinate system to describe the surface of a page. A PDF page description can use a matrix to scale , rotate , or skew graphical elements. A key concept in PDF is that of the graphics state , which is a collection of graphical parameters that may be changed, saved, and restored by
3002-582: Is wider on Linux distributions than it is on Windows or macOS. Additionally, the format is rarely supported by proprietary scanning software. In 2002, the DjVu file format was chosen by the Internet Archive as a format in which its Million Book Project provides scanned public-domain books online (along with TIFF and PDF). In February 2016, the Internet Archive announced that DjVu would no longer be used for new uploads, among other reasons citing
3081-533: The Windows and Macintosh operating systems, fonts using these encodings work equally well on any platform.) PDF can specify a predefined encoding to use, the font's built-in encoding or provide a lookup table of differences to a predefined or built-in encoding (not recommended with TrueType fonts). The encoding mechanisms in PDF were designed for Type 1 fonts, and the rules for applying them to TrueType fonts are complex. For large fonts or fonts with non-standard glyphs,
3160-400: The fragile base class problem) which had to be solved before the plugin would work correctly with different browsers. XPCOM has since been changed to supply a statically linked version to address such issues. This approach also requires an .xpt file to be installed next to the dynamic-link library (DLL); otherwise the plugin appears to work, but the scripting does not, causing confusion. At
3239-419: The standard 14 fonts , have a special significance in PDF documents: These fonts are sometimes called the base fourteen fonts . These fonts, or suitable substitute fonts with the same metrics, should be available in most PDF readers, but they are not guaranteed to be available in the reader, and may only display correctly if the system has them installed. Fonts may be substituted if they are not embedded in
DjVu - Misplaced Pages Continue
3318-539: The 2000s, with the growth of the World Wide Web and before widespread adoption of broadband , DjVu was often adopted by digital libraries as their format of choice, thanks to its integration with software like Greenstone and the Internet Archive , browser plugins which allowed advanced online browsing, smaller file size for comparable quality of book scans and other image-heavy documents and support for embedding and searching full text from OCR . Some features such as
3397-807: The ESR channel retained general support for this feature with version 52 ESR being the last NPAPI resort. Firefox 69.0 disabled the Flash NPAPI by default. In Firefox 85.0, released in January 2021, NPAPI support was completely removed. In the ESR channel, support for Flash NPAPI ended with version 78.15.0, released in October 2021. Safari has dropped support for all NPAPI plugins except for Flash with version 12 released in September 2018. Flash support has been removed from Safari 14, released in September 2020. SeaMonkey stopped supporting NPAPI plugins from version 2.53.1, with
3476-503: The Mozilla source code tree in late June 2009 as part of the Mozilla 2 cleanup effort. It is no longer needed with the release of a redesigned Java Runtime Environment from Sun Microsystems. However the old implementation was restored for Gecko 1.9.2, as Apple had yet to port the newer JRE over to Mac OS X. The Java–JavaScript functionality supported by the redesigned Java Runtime Environment
3555-429: The PDF files: non-linearized (not "optimized") and linearized ("optimized"). Non-linearized PDF files can be smaller than their linear counterparts, though they are slower to access because portions of the data required to assemble pages of the document are scattered throughout the PDF file. Linearized PDF files (also called "optimized" or "web optimized" PDF files) are constructed in a manner that enables them to be read in
3634-516: The application or of an extension. For remote HTML / XHTML / XUL documents, most XPCOM objects are not accessible by the scripts as they have limited privileges due to security reasons. Even if they are accessible (e.g. the XMLHttpRequest object), the usual security restrictions can also be found (e.g. cannot open URLs of other domains ). Mozilla was already using XPCOM to define the interfaces to many objects implemented in C++. Each interface
3713-652: The browser encounters a content type it cannot handle natively, it loads the appropriate plugin, sets aside space within the browser context for the plugin to render and then streams data to it. The plugin is responsible for rendering the data. The plugin runs in-place within the page, as opposed to older browsers that had to launch an external application to handle unknown content types. NPAPI requires each plugin to implement and expose approximately 15 functions for initializing, creating, deleting and positioning plugin content. NPAPI also supports scripting, printing, full-screen plugins, windowless plugins and content streaming. NPAPI
3792-424: The burden of rendering the document on the reader, whereas DjVu places that burden on the creator. During a number of years, significantly overlapping with the period when DjVu was being developed, there were no PDF viewers for free operating systems—a particular stumbling block was the rendering of vectorised fonts, which are essential for combining small file size with high resolution in PDF. Since displaying DjVu
3871-508: The contents. PDF 2.0 defines 256-bit AES encryption as the standard for PDF 2.0 files. The PDF Reference also defines ways that third parties can define their own encryption systems for PDF. PDF files may be digitally signed, to provide secure authentication; complete details on implementing digital signatures in PDF are provided in ISO 32000-2. PDF files may also contain embedded DRM restrictions that provide further controls that limit copying, editing, or printing. These restrictions depend on
3950-411: The document refers), and compressed . Modern applications write to printer drivers that directly generate PDF rather than going through PostScript first. As a document format, PDF has several advantages over PostScript: Its disadvantages are: PDF since v1.6 supports embedding of interactive 3D documents: 3D drawings can be embedded using U3D or PRC and various other data formats. A PDF file
4029-411: The document root. This dictionary contains an array of Optional Content Groups (OCGs), each describing a set of information and each of which may be individually displayed or suppressed, plus a set of Optional Content Configuration Dictionaries, which give the status (Displayed or Suppressed) of the given OCGs. A PDF file may be encrypted , for security, in which case a password is needed to view or edit
SECTION 50
#17328548092784108-527: The early years PDF was popular mainly in desktop publishing workflows, and competed with several other formats, including DjVu , Envoy , Common Ground Digital Paper, Farallon Replica and even Adobe's own PostScript format. PDF was a proprietary format controlled by Adobe until it was released as an open standard on July 1, 2008, and published by the International Organization for Standardization as ISO 32000-1:2008, at which time control of
4187-517: The embedded scripts of a page, or to access the built-in JavaScript environment, much as scripts can. Conversely, from the JavaScript side, it allows a script to invoke applet methods, or to access Java runtime libraries, much as applets can. LiveConnect was used in Netscape 4 to implement scriptability of NPAPI plugins. The Open Java Interface -dependent implementation of LiveConnect was removed from
4266-810: The end of 2004, all major browser companies using NPAPI agreed on NPRuntime as an extension to the original NPAPI to supply scripting, via an API that is similar in style to the old C-style NPAPI and is independent of other browser technologies like Java or XPCOM. It is only supported by Firefox ESR (Extended Support Release) and Safari . Because of the age of the API, security issues, and adoption of alternative technologies such as HTML5 , many software vendors began to phase out NPAPI support in 2013. Internet Explorer versions 3 through 5.5 SP2 supported NPAPI, allowing plugins that functioned in Netscape Navigator to function in Internet Explorer. Support came via
4345-460: The exception of Flash. NPAPI support was completely removed in SeaMonkey 2.53.7, released in March 2021. The following list of web browsers support all NPAPI plugins: Internet Explorer and browsers based on Internet Explorer use ActiveX controls, ActiveX documents and ActiveX scripting to offer in-page extensibility on par with NPAPI. Although commonly associated with Internet Explorer, ActiveX
4424-474: The format's declining use and the difficulty of maintaining their Java applet based viewer for the format. Wikimedia Commons , a media repository used by Misplaced Pages among others, conditionally permits PDF and DjVu media files. PDF This is an accepted version of this page Portable Document Format ( PDF ), standardized as ISO 32000 , is a file format developed by Adobe in 1992 to present documents , including text formatting and images, in
4503-406: The full implementation of the ISO 32000-1 specification. These proprietary technologies are not standardized, and their specification is published only on Adobe's website. Many of them are not supported by popular third-party implementations of PDF. ISO published version 2.0 of PDF, ISO 32000-2 in 2017, available for purchase, replacing the free specification provided by Adobe. In December 2020,
4582-402: The graphics state, including patterns . PDF supports several types of patterns. The simplest is the tiling pattern in which a piece of artwork is specified to be drawn repeatedly. This may be a colored tiling pattern , with the colors specified in the pattern object, or an uncolored tiling pattern , which defers color specification to the time the pattern is drawn. Beginning with PDF 1.3 there
4661-494: The imaging model. A tagged PDF (see clause 14.8 in ISO 32000) includes document structure and semantics information to enable reliable text extraction and accessibility . Technically speaking, tagged PDF is a stylized use of the format that builds on the logical structure framework introduced in PDF 1.3. Tagged PDF defines a set of standard structure types and attributes that allow page content (text, graphics, and images) to be extracted and reused for other purposes. Tagged PDF
4740-416: The locations where each shape appears on the page. Thus, instead of compressing a letter "e" in a given font multiple times, it compresses the letter "e" once (as a compressed bit image) and then records every place on the page it occurs. Optionally, these shapes may be mapped to UTF-8 codes (either by hand or potentially by a text recognition system) and stored in the DjVu file. If this mapping exists, it
4819-565: The most recent being from 2005. The primary usage of the DjVu format has been the electronic distribution of documents with a quality comparable to that of printed documents. As that niche is also the primary usage for PDF, it was inevitable that the two formats would become competitors. It should however be observed that the two formats approach the problem of delivering high resolution documents in very different ways: PDF primarily encodes graphics and text as vectorised data, whereas DjVu primarily encodes them as pixmap images. This means PDF places
SECTION 60
#17328548092784898-440: The objects in the file, and also allows for small changes to be made without rewriting the entire file ( incremental update ). Before PDF version 1.5, the table would always be in a special ASCII format, be marked with the xref keyword, and follow the main body composed of indirect objects. Version 1.5 introduced optional cross-reference streams , which have the form of a standard stream object, possibly with filters applied. Such
4977-552: The percent sign ( % ) may be inserted. Objects may be either direct (embedded in another object) or indirect . Indirect objects are numbered with an object number and a generation number and defined between the obj and endobj keywords if residing in the document root. Beginning with PDF version 1.5, indirect objects (except other streams) may also be located in special streams known as object streams (marked /Type /ObjStm ). This technique enables non-stream objects to have standard stream filters applied to them, reduces
5056-524: The reader software to obey them, so the security they provide is limited. NPAPI Netscape Plugin Application Programming Interface ( NPAPI ) is a deprecated application programming interface (API) for web browser plugins , initially developed for Netscape Navigator 2.0 in 1995 and subsequently adopted by other browsers. In the NPAPI architecture, a plugin declares content types (e.g. "audio/mp3") that it can handle. When
5135-583: The reference library. The original authors distribute an open-source implementation named " DjVuLibre " under the GNU General Public License and a patent grant. The rights to the commercial development of the encoding software have been transferred to different companies over the years, including AT&T Corporation , LizardTech , Celartem and Cuminas . Patents typically have an expiry term of about 20 years. Celartem acquired LizardTech and Extensis . The selection of downloadable DjVu viewers
5214-495: The second edition of PDF 2.0, ISO 32000-2:2020, was published, with clarifications, corrections, and critical updates to normative references (ISO 32000-2 does not include any proprietary technologies as normative references). In April 2023 the PDF Association made ISO 32000-2 available for download free of charge. A PDF file is often a combination of vector graphics , text, and bitmap graphics . The basic types of content in
5293-423: The size of files that have large numbers of small indirect objects and is especially useful for Tagged PDF . Object streams do not support specifying an object's generation number (other than 0). An index table, also called the cross-reference table, is located near the end of the file and gives the byte offset of each indirect object from the start of the file. This design allows for efficient random access to
5372-432: The special encodings Identity-H (for horizontal writing) and Identity-V (for vertical) are used. With such fonts, it is necessary to provide a ToUnicode table if semantic information about the characters is to be preserved. A text document which is scanned to PDF without the text being recognised by optical character recognition (OCR) is an image, with no fonts or text properties. The original imaging model of PDF
5451-577: The specification passed to an ISO Committee of volunteer industry experts. In 2008, Adobe published a Public Patent License to ISO 32000-1 granting royalty-free rights for all patents owned by Adobe necessary to make, use, sell, and distribute PDF-compliant implementations. PDF 1.7, the sixth edition of the PDF specification that became ISO 32000-1, includes some proprietary technologies defined only by Adobe, such as Adobe XML Forms Architecture (XFA) and JavaScript extension for Acrobat, which are referenced by ISO 32000-1 as normative and indispensable for
5530-446: The standardization of PDF in 2008, DjVu had been considered superior due to it being an open file format in contrast to the proprietary nature of PDF at the time. The declared higher compression ratio (and thus smaller file size), and the claimed ease of converting large volumes of text into DjVu format, were other arguments for DjVu's superiority over PDF in the technology landscape of 2004. Independent technologist Brewster Kahle in
5609-447: The text is stored. The background and foreground images are then compressed using a wavelet-based compression algorithm named IW44. The mask image is compressed using a method called JB2 (similar to JBIG2 ). The JB2 encoding method identifies nearly identical shapes on the page, such as multiple occurrences of a particular character in a given font, style, and size. It compresses the bitmap of each unique shape separately, and then encodes
5688-476: The thumbnail previews were later integrated in the Internet Archive's BookReader and DjVu browsing was deprecated in its favour as around 2015 some major browsers stopped supporting NPAPI and DjVu plugins with them. DjVu.js Viewer attempts to replace the missing plugins. The DjVu file format is based on the Interchange File Format and is composed of hierarchically organized chunks. The IFF structure
5767-448: The time. When the PDF 1.4 specification was published, the formulas for calculating blend modes were kept secret by Adobe. They have since been published. The concept of a transparency group in PDF specification is independent of existing notions of "group" or "layer" in applications such as Adobe Illustrator. Those groupings reflect logical relationships among objects that are meaningful when editing those objects, but they are not part of
5846-481: Was opaque, similar to PostScript, where each object drawn on the page completely replaced anything previously marked in the same location. In PDF 1.4 the imaging model was extended to allow transparency. When transparency is used, new objects interact with previously marked objects to produce blending effects. The addition of transparency to PDF was done by means of new extensions that were designed to be ignored in products written to PDF 1.3 and earlier specifications. As
5925-524: Was a simpler problem for which free software was available, there were suggestions that the free software movement should employ DjVu instead of PDF for distributing documentation; rendering for creating DjVu is in principle not much different from rendering for a device-specific printer driver, and DjVu can as a last resort be generated from scans of paper media. However, when FreeType 2.0 in 2000 began to provide rendering of all major vectorised font formats, that specific advantage of DjVu began to erode. In
6004-438: Was defined by an IDL file, and run through an IDL compiler that produced header files and a language-neutral type library that was a binary representation of the interface. This binary described the interface, the methods, the parameters, the data structures and enumerations . XPConnect uses the type library information to marshal calls between different thread contexts and between JavaScript and natively compiled C++. XPConnect
6083-511: Was first published in 2012. With the introduction of PDF version 1.5 (2003) came the concept of Layers. Layers, more formally known as Optional Content Groups (OCGs), refer to sections of content in a PDF document that can be selectively viewed or hidden by document authors or viewers. This capability is useful in CAD drawings, layered artwork, maps, multi-language documents, etc. Basically, it consists of an Optional Content Properties Dictionary added to
6162-590: Was frequently used for plugins which required intensive, low-level performance such as video players, including Adobe Flash Player and Microsoft Silverlight , as well as platforms for web applications such as the Java Runtime Environment . NPAPI support among major browsers started to wane since 2015 and it was gradually deprecated over the following 7 years. All major web browsers have removed support for 3rd party NPAPI plugins for security and maintenance reasons while superior technology exists. Scripting
6241-686: Was standardized as ISO 32000 in 2008. The last edition as ISO 32000-2:2020 was published in December 2020. PDF files may contain a variety of content besides flat text and graphics including logical structuring elements, interactive elements such as annotations and form-fields, layers, rich media (including video content), three-dimensional objects using U3D or PRC , and various other data formats . The PDF specification also provides for encryption and digital signatures , file attachments, and metadata to enable workflows requiring these features. The development of PDF began in 1991 when John Warnock wrote
#277722