If you're reading the stream using the Read function then chances are you're only reading part of it as streams deliver their data in chunks so what you have written to disc is only part of the file. Either keep using the Read method and appending to the buffer until the entire stream is read or use a method that reads the stream in entirety (if one exists), or one way is to use File.Create to create a stream that writes to the desired file on your disc, then simply use the CopyTo method of the stream that has come back from the webapi to copy it to the stream you got from FileCreate. That will handle all the chunking for you. I have sample code for this but not on me right now, you can use the above to give it a go or google for a solution, and failing that I can dig the code out when I have it in front of me. Your API will return something like return new FileStreamResult(pdfStream, ' application/pdf') where pdfStream is a stream of your PDF, either from a PDF generator that returns the PDF as an in-memory stream, or a stream from a file if it is on the disk. If you want to retrieve the PDF from this api and show it in the browser you need to read the stream, then re-write the stream to the client.

Introduction RealObjects PDFreactor is a powerful formatting processor that enables server-side PDF creation from HTML and XML documents using CSS to define page layout and styles. You can dynamically generate PDF documents such as reports, invoices, statements and others on-the-fly. Since PDFreactor runs on your server, the end-user does not need any software other than a Web browser with a free PDF viewer. By implementing the W3C specification for Paged Media and print, PDFreactor provides great control over the paged output via CSS. It is very easy to set page sizes, margins and pagination for specific elements, page headers and footers.

Using proprietary configuration and CSS properties, it is possible to set PDF specific information, to generate outlines and links for your documents and even to add meta information about the author or keywords. PDFreactor is provided as a Java library. The PDFreactor Java API is perfectly complemented by.NET, PHP, Perl, Python and Ruby APIs which enable a smooth cooperation of PDFreactor and your web applications. Being an integrator or developer with focus on Java, Servlet, EJB, CGI,.NET, PHP, Perl, Python or Ruby programming, you can easily integrate PDFreactor into your servlet, EJB or Web Service by using the comprehensive APIs at your disposal. In the simplest case you only have to specify an input and output file to generate a PDF document. It is also possible to use the operating system's standard input (stdin) and output (stdout) streams to read and write content.

A hedge is an investment position intended to offset potential losses or gains that may be incurred by a companion investment. In simple language, a hedge is used to.

The typical integration scenario for PDFreactor is Server-side PDF creation as part of large host applications (e.g. ERP, database, e-commerce) on a web application server in order to print or stream PDF documents - generated from HTML or XML sources - over the Web. Note: For details about system requirements and information about the latest changes, please see the readme.txt contained within the PDFreactor installation package.

However, if the.NET, PHP, Perl, Python or Ruby APIs are used, an application server running PDFreactor as a service is required. PDFreactor is delivered with a pre-configured version of Jetty, which enables you to quickly deploy PDFreactor as a service on your server.

Open Pdf In Iframe Passing Byte Data In PythonOpen Pdf In Iframe Passing Byte Data In Python

This chapter details the system requirements that must be met in order to run PDFreactor as a service. • pdfreactor.jar • pdfreactorcore.jar It is generally recommended to use the pdfreactor.jar, since it not only contains PDFreactor itself but also all 3 rd party libraries required by PDFreactor. This JAR file is a stand-alone PDFreactor library.

No other libraries are required. If some of the 3 rd party libraries are already installed on the server or if certain functionality is not required, the pdfreactorcore.jar can be used. It only contains PDFreactor, optional 3 rd party libraries contained in the 3rdparty directory should be added to the PDFreactor class path manually depending on whether or not they are already installed on the server or their functionality is desired. The PDFreactor Service If PDFreactor is deployed using the PDFreactor installer, the installation provides an option to automatically install the PDFreactor service with PDFreactor. No further configuration is required in this case. On Unix and Linux platforms, no installer is available. Therefore, the PDFreactor service must be started manually on these systems.

To do so, after unzipping the PDFreactor installation archive go to the path-to-PDFreactor/bin directory and use this command to start the service:./pdfreactorwebservice start To stop the service, use:./pdfreactorwebservice stop To display whether the service is already running, use:./pdfreactorwebservice status. Memory Depending on the input documents, PDFreactor may require additional memory. Large and especially complex documents, e.g. Documents containing several hundred pages or documents using a complex nested HTML structure, may require larger amounts of memory. The exact amount of memory required depends nearly entirely on the input document.

Should you run into any issues converting a document, we recommend increasing the memory to e.g. 2GB or higher before attempting another conversion. Please see the individual chapters and for how to increase the memory available to PDFreactor. Using Python To use the PDFreactor Python API simply copy the PDFreactor.py to a directory of your webserver where Python is enabled (by e.g. CGI or mod-python). Using Ruby To use the PDFreactor Ruby API simply copy the PDFreactor.rb to a directory of your webserver where Ruby is enabled (by e.g.

CGI or mod-ruby). Then include the PDFreactor.rb with: require 'PDFreactor.rb' With just a few lines you can create and directly show PDFs inside your Ruby web application: pdfReactor = PDFreactor.new() result = pdfReactor.renderDocumentFromURL('# Check if successful if result == nil # Not successful, print error and log print 'Content-type: text/html n n' puts 'Error During Rendering' puts '+pdfReactor.getError()+' puts '+pdfReactor.getLog()+' else # Set the correct header for PDF output and echo PDF content print 'Content-type: application/pdf n n' $stdout.binmode print result end. Changing the Port Sometimes it may be necessary to change the port of the PDFreactor web service. The port can be changed in the jetty.xml file located in the PDFreactor/jetty/etc directory. You can change the port in this line of the jetty.xml: 9423 When the port of the PDFreactor web service was changed, it is also necessary to specify the new port in the constructor of the PDFreactor class. The following examples show how to use the constructor of the various APIs if the port was changed to 9424. Logging The logging mechanism for the APIs that use the web service is different from the logging mechanism of the Java API.

Here, the PDFreactor instance has two additional methods getLog and getError which can be called after the conversion process to retrieve the log or any errors which may have occurred during the conversion, respectively. Another way of retrieving the log is using the method setAppendLog. This will append the log to the generated PDF you have both the generated PDF and the log in one document.

Additionally, the entire log output of the Jetty application server is written into the output.log file located in the PDFreactor/bin directory. Quick Introduction to the Command Line Interface In order to run PDFreactor from the command line, please make sure that a JRE is installed (you can find the minimum requirements in the readme file). Displaying Information about the Rendering Process Using -v or --verbose you can specify several levels of output: they reach from debug for all possible information available to fatal which only displays fatal errors. The following example displays all available debug information: java -jar pdfreactor.jar -v debug c: test test.html test.pdf This example only displays fatal errors: java -jar pdfreactor.jar -v fatal c: test test.html test.pdf When specifiying -v whithout indicating a level, it is set to info by default. HTML + CSS HTML is directly rendered by PDFreactor using a default CSS style sheet for HTML in addition to the document's style. PDFreactor automatically renders HTML form controls such as buttons, input fields and text areas.

PDFreactor can even be used to automatically generate interactive PDF forms (sometimes refered to as AcroForms) from HTML forms. For details please see the chapter HTML is parsed by the built-in HTML5 parser which parses the document according to HTML5 rules. This means that elements missing closing tags (such as without ) are handled as demanded by the HTML5 specifications, and SVG and MathML can be used without having to specify their respective namespace. When using XHTML, the code is also automatically cleaned, when a parse error occurs, e.g. If the document is not well-formed. The following Cleanup processes are available and only used for XHTML content: CyberNeko. CyberNeko is the default cleanup used by PDFreactor. This XHTML parser fixes the following XHTML incompatibilities.

• Missing or mismatched end tags are detected and corrected • End tags in the wrong order are corrected • Recovers from mixed up tags • Adding the missing '/' in end tags for anchors • Correcting lists by putting in tags missed out • Missing quotes around attribute values are added • Unknown/Proprietary attributes are reported • Proprietary elements are recognized and reported as such • Tags lacking a terminating '>' are spotted TagSoup. The TagSoup cleanup is able to fix most namespace issues that may occur when importing content from non-standard sources such as Office applications. It has the following cleanup features. Note: When using non-HTML5 documents, an SVG namespace has to be added and used: Rasterization. SVGs are embedded into the PDF as vector graphics, keeping them resolution independent. However SVGs containing masks, filters or non-default composites have to be rasterized. This behavior can be configured using CSS: The style disables the aforementioned SVG features to avoid having to rasterize the image. The property configures the resolution of the rasterization. The default value is 2, meaning twice the default CSS resolution of 96dpi.

Accepted values are all positive integers. Higher resolution factors increase the quality of the image, but also increase the conversion time and the size of the output documents.

CMYK Colors in SVG. PDFreactor supports CMYK colors in SVGs. Those are passed to the PDF as-is, as long as the SVG is not rasterized. • — Sets the error correction level of the QR code. Possible values are L(default), M, Q and H. • — Sets the size of the quiet (empty) zone around the QR code in modules (QR code 'square' widths). The default value is 1.

Possible values are 0 (no quiet zone) and positive integers. • — By default, QR codes are black on white. When setting this property to none, the CSS properties and are used instead. • — By default, The QR code is built from multiple squares. This method is fast and looks correct in print.

However, in PDF viewers on screen the edges of neighboring squares may be visible. When setting this property to high the squares are combined into one object, ensuring a seamless look, at the cost of performance. Iframes An iframe allows another document, for example content from other pages, to be embeded inside an existing one. The source document. There are two ways to define the inner document of an iframe. The first option is to use the src attribute and specifying the URL from which the document should be loaded.

The URL might be absolute or relative and should refer to an HTML document. The second option is useful if the inner document is very short and simple. When using the srcdoc attribute, its value is set to be the inner document's source code. This is fallback text in case the user-agent does not support iframes.

Note: If both attributes have been set, srcdoc has priority over src. Seamless. If the seamless attribute has been set, the iframe's document behaves as it would be in the document that contains the iframe. That means that the width and height of the iframe are ignored and the inner document is shown completely if possible. Furthermore, the borders of the iframe are removed and most importantly all styles from the outer document are inherited by the inner document. When generating the PDF, the headings and other bookmark styles inside the iframe are passed through, so they can be found in the bookmark list. The seamless attribute is a boolean attribute, which means that if it exists it is set to true and if it does not exist, it is set to false.

The only valid values of seamless are an empty string ' or 'seamless'. The attribute can also be used without any value. Note: The creation of shadows is a time-consuming task and can, depending on the content to generate, considerably increase the creation time of the PDF. Thus shadows should be used with caution if the creation time of the PDF is important. Resolution Independence.

PDFreactor by default does not use a resolution-dependent bitmap as the core of the canvas. Instead it converts the graphics commands from JavaScript to resolution-independet PDF objects. This avoids resolution-related issues like blurriness or pixelation. Shadows can not be convert to PDF objects. So those are added as images.

This does not affect other objects in the canvas. Accessing ImageData of a canvas or setting a non-default composite causes that canvas to be rasterized entirely. This behavior can be configured using CSS: The style disables functionality that causes the rasterization of the canvas. The style -ro-rasterization: always forces the canvas to be rasterized in any case.

The property configures the resolution at which the canvas or shadows are rasterized. The default value is 2, meaning twice the default CSS resolution of 96dpi. Accepted values are 1 to 4.

Higher resolution factors increase the quality of the image, but also increase the conversion time and the size of the output documents. This does not affect canvas objects that are not rasterized. Mode Decription Notes no layout There is no access to layout information and no re-layouts will be triggered. Faster, but will not provide correct results for scripts that require coordinates or sizes from the layout. Time-lapse Value of Date.getTime() increases faster.

JQuery animations finish immediatly, e.g. For Highcharts real-time No converter-specific optimizations for setInterval and setTimeout.

This mode is slower than time-lapse. It should only be used when it is the only mode providing correct results, e.g.

For amCharts. Kana Kanum Kalangal Serial Title Song there. Key Description marginRect Returns a ClientRect describing the margin rectangle. The point of origin is the upper left corner of the page content rectangle.

BorderRect Returns a ClientRect describing the border rectangle. This is the rectangle that is required in most cases. The point of origin is the upper left corner of the page content rectangle.

PaddingRect Returns a ClientRect describing the padding rectangle. The point of origin is the upper left corner of the page content rectangle. ContentRect Returns a ClientRect describing the content rectangle. The point of origin is the upper left corner of the page content rectangle. MarginRectInPage Returns a ClientRect describing the margin rectangle. The point of origin is the upper left corner of the page rectangle.

BorderRectInPage Returns a ClientRect describing the border rectangle. The point of origin is the upper left corner of the page rectangle. PaddingRectInPage Returns a ClientRect describing the padding rectangle. The point of origin is the upper left corner of the page rectangle. ContentRectInPage Returns a ClientRect describing the content rectangle.

The point of origin is the upper left corner of the page rectangle. PageIndex The index of the page of this box. The first page has the index 0. PageDescription The of the page of this box.

It contains the data of the page from the moment when this BoxDescription was created. Awesomizr.js The JavaScript library awesomizr.js is a collection of helpful functions for the use with PDFreactor. You have to import the JavaScript and in same cases the corresponding CSS. You can add the library by using the PDFreactor API method addUserScript(). To add the respective CSS, use the method addUserStyleSheet(): pdfReactor.addUserStyleSheet(', ', ', 'awesomizr.css'); pdfReactor.addUserScript(null, 'awesomizr.js', false); pdfReactor.addUserScript('Awesomizr.createTableOfContents();', null, false). • note Creates a small icon. This is the default style for all comments.

• invisible Does not create any visual effects. • highlight Highlights the background of a section of text. • underline Underlines a section of text with a straight line. • strikeout Strikes out a section of text. • squiggly Underlines a section of text with a squiggly line. The comment styles highlight, underline, strikeout and squiggly are only applicable to comments that encompass a section of text.

The following example demonstrates how to style a simple comment. • Title: The title of the comment.

In some cases, this is also used for the author. Use the CSS property to specify the title. • Color: The color of the comment. The default value for the color depends on the comment style chosen. Use the CSS property to set a color. • Date: The date of the comment.

When no date is specified, the current date is used. Use the CSS property to set the date. • Date Format: The format of the date you specified. The syntax is identical to Java's SimpleDateFormat.

Use the CSS property to specify a date format for the comment's date. • Position: The position of the comment icon (only applicable for the comment style note). Use the CSS property to specify a position for the comment's note icon. • Initial state: The initial state of the comment, i.e. Whether the comment should be open or closed when the PDF is opened in a viewer.

Use the CSS property to specify the initial state of the comment bubbles. The state can be either open or closed with the latter being the default value. The following sample shows how to customize all of the aforementioned properties. PDF/A Conformance PDFreactor supports the creation of PDF/A-1a or PDF/A-3a conformant files.

PDF/A is a family of ISO standards for long-term archiving of documents. The goal of these standards is to ensure the reproduction of the visual appearance as well as the inclusion of the document's structure. All information necessary for displaying the document in the same way every time is embedded in the file. Dependencies on external resources is not permitted.

Many companies and government organizations worldwide require PDF/A conformant documents. PDF/A-1a is the most strict PDF/A standard while the newer PDF/A-3a is more leniant, e.g. Allowing transparency and attachements. PDF/A restriction PDFreactor actions All used fonts are embedded. PDFreactor ignores the option to disable font embedding.

All images are embedded. Images are always automatically embedded by PDFreactor. Multi-media content is forbidden. Embedding objects is automatically prevented by PDFreactor, when PDF/A conformance is set. JavaScript is prohibited.

No JavaScript is embedded, when PDF/A conformance is set. (This does not prohibit JavaScript in the source HTML document to be processed during conversions) Encryption is disallowed. This is automatically prevented, when PDF/A conformance is set. The PDF must be tagged. This is automatically done by PDFreactor, when PDF/A conformance is set. Metadata included in the PDF is required to be standard-based XMP. This is automatically done by PDFreactor, when PDF/A conformance is set.

Colors are specified in a device-independent manner. In PDFreactor colors are defined either as RGB or CMYK. When PDF/A conformance is set, one of these color spaces has to be set in conjunction with a color space profile.

CMYK requires an ICC profile to be set, RGB colors use a default sRGB profile, if no other is set. PDF/A-1a restriction PDFreactor actions Transparency is disallowed PDFreactor will ignore certain kinds of transparency of images. Other occurences of transparency will cause an exception to be thrown. Attachments are disallowed This is automatically prevented, when PDF/A-1a conformance is set.

To create a PDF/A conformant document, the method setConformance can be used in the PDFreactor integration: pdfReactor.setConformance(PDFreactor.CONFORMANCE_PDFA1A); or pdfReactor.setConformance(PDFreactor.CONFORMANCE_PDFA3A); If CMYK colors are used in a document to be converted into a PDF/A-conformant file, an Output Intent has to be set. It is possible to use the following API methods: pdfReactor.setOutputIntentFromURL(String identifier, String profileUrl); or pdfReactor.setOutputIntentFromByteArray(String identifier, byte[] profileData); The first parameter is a string identifying the intended output device or production condition in human- or machine-readable form. The second parameter points to an ICC profile file or contains data of such a profile.

Encryption and Restrictions PDFreactor can protect generated PDF documents via 40 or 128 bit encryption. To encrypt the output PDF, set the encryption strength to a value other than ENCRYPTION_NONE: pdfReactor.setEncryption(PDFreactor.ENCRYPTION_128); When the PDF document is opened, the user has to supply the user password in order to view the content.

When no user password is set, the PDF can be viewed by any user. In either case, certain restrictions are imposed. These can be suspended by supplying the owner password. You can set the passwords as follows: pdfReactor.setUserPassword('upasswd'); pdfReactor.setOwnerPassword('opasswd'); Both passwords are optional, but recommended for security reasons. By default, all restrictions are imposed on the PDF document.

You can however exclude selected ones by using the following methods. Method name Allows. Viewer Preferences You can configure the initial presentation of the document in the viewer by setting viewer preferences.

Setting viewer preferences will activate / deactivate certain options of the viewer, for example it allows to hide the viewer's toolbar when the document is opened. Note that these preferences are not enforced, i.e. If you decide to set the HIDE_TOOLBAR preference, the user can still display the toolbar again when viewing this PDF if he decides to do so. Setting this preference only affects the default state of the toolbar when the document is opened, but does not enforce this state. Some viewer preferences also influence the default settings of the print dialog of the viewer. You can set viewer preferences by using the method setViewerPreferences. Multiple preferences can be combined using the OR operator, e.g.: pdfReactor.setViewerPreferences( PDFreactor.VIEWER_PREFERENCES_PAGE_LAYOUT_SINGLE_PAGE PDFreactor.VIEWER_PREFERENCES_DISPLAY_DOC_TITLE); PDFreactor supports the following viewer preferences.

Viewer Preference Effect PAGE_LAYOUT_SINGLE_PAGE Display one page at a time. (default) PAGE_LAYOUT_ONE_COLUMN Display the pages in one column. PAGE_LAYOUT_TWO_COLUMN_LEFT Display the pages in two columns, with odd numbered pages on the left.

PAGE_LAYOUT_TWO_COLUMN_RIGHT Display the pages in two columns, with odd numbered pages on the right. PAGE_LAYOUT_TWO_PAGE_LEFT Display two pages at a time, with odd numbered pages on the left. PAGE_LAYOUT_TWO_PAGE_RIGHT Display two pages at a time, with odd numbered pages on the right. PAGE_MODE_USE_NONE Show no panel on startup. PAGE_MODE_USE_OUTLINES Show document outline panel on startup. PAGE_MODE_USE_THUMBS Show thumbnail images panel on startup.

PAGE_MODE_FULLSCREEN Switch to fullscreen mode on startup. PAGE_MODE_USE_OC Show optional content group panel on startup.

PAGE_MODE_USE_ATTACHMENTS Show attachments panel on startup. HIDE_TOOLBAR Hide the viewer application's tool bars when the document is active. HIDE_MENUBAR Hide the viewer application's menu bar when the document is active. HIDE_WINDOW_UI Hide user interface elements in the document's window.

FIT_WINDOW Resize the document's window to fit the size of the first displayed page CENTER_WINDOW Position the document's window in the center of the screen. DISPLAY_DOC_TITLE Display the document's title in the top bar. NON_FULLSCREEN_PAGE_MODE_USE_NONE Show document outline panel on exiting full-screen mode. Has to be combined with PageModeFullScreen.

NON_FULLSCREEN_PAGE_MODE_USE_OUTLINES Show thumbnail images panel on exiting full-screen mode. Has to be combined with PageModeFullScreen. NON_FULLSCREEN_PAGE_MODE_USE_THUMBS Show optional content group panel on exiting full-screen mode.

Has to be combined with PageModeFullScreen. NON_FULLSCREEN_PAGE_MODE_USE_OC Show attachments panel on exiting full-screen mode.

Has to be combined with PageModeFullScreen. DIRECTION_L2R Position pages in ascending order from left to right. DIRECTION_R2L Position pages in ascending order from right to left. PRINTSCALING_NONE Print dialog default setting: disabled scaling PRINTSCALING_APPDEFAULT Print dialog default setting: set scaling to application default value DUPLEX_SIMPLEX Print dialog default setting: simplex DUPLEX_FLIP_SHORT_EDGE Print dialog default setting: duplex (short edge) DUPLEX_FLIP_SHORT_EDGE Print dialog default setting: duplex (long edge) PICKTRAYBYPDFSIZE_FALSE Print dialog default setting: do not pick tray by PDF size PICKTRAYBYPDFSIZE_TRUE Print dialog default setting: pick tray by PDF size. • Concatenation • Overlay Concatenation merges append PDFs before or after the generated PDF.

The following sample shows how to append an existing PDF after the generated one: pdfReactor.setMergeURL('pdfReactor.setMergeMode(PDFreactor.MERGE_MODE_APPEND); Overlay merges add the generated PDF above or below existing PDFs. The following sample shows how to overlay an existing PDF: pdfReactor.setMergeURL('pdfReactor.setMergeMode(PDFreactor.MERGE_MODE_OVERLAY); PDFreactor allows to repeat the pages of PDFs with less pages than other PDFs involved in the merger. The API method setOverlayRepeat offers different options to do this.

• PNG (optionally with transparent background) • JPEG • GIF • TIFF (only multi-page image output format; can use the following compression methods: LZW, PackBits, Uncompressed, CCITT 1D, CCITT Group 3 & CCITT Group 4) • BMP These can be selected using the method setOutputFormat, e.g.: pdfreactor.setOutputFormat(PDFreactor.OUTPUT_FORMAT_PNG, 512, -1) The later two parameters set the width and height of the resulting images in pixels. If either of these is set to a value of less than 1 it is computed from the other value and the aspect ratio of the page. Continuous Output The method setContinuousOutput sets PDFreactor to continuous mode. In this mode each document is converted into one image. Also screen styles will be used and print styles will be ignored, resulting in a very browser-like look for the output image. PdfReactor.setContinuousOutput(1024, 768); The first parameter sets the width of the layout. This has the same effect as the width of a browser window.

This only changes the layout. The result will still be scaled to the width specified by setOutputFormat The second parameter sets the height.

This has the same effect as the height of a browser window, i.e. It will cut off the image or increase its height.

Values of less than 1 cause the full height of the laid out document to be used. Note In case the document does not provide elements to use Running Elements and Generated Content does not suffice, it is possible to add elements to the document with JavaScript to be able to use Running Elements.

To create a Running Element, an element needs to be positioned as 'running', using the running() function with an identifier for the element as argument. The function is set as value of the property. This removes the element from the document content. To display a Running Element inside a Page Margin Box, set the element() function as value of the content property.

The argument of the function is the same identifier used to in the running() function of the Running Element. /* document fragment */ content: xhtml('); /* complete document */ content: xhtml('.'

); /* external document */ content: xhtml(url('header.html')); The document is loaded independantly inside the Page Margin Box but styles from the document are passed down to it. This can be an advantage as the same style is used throughout all documents. In some cases though this behavior is not desired as this style may break the layout of the document inside the Page Margin Box. To prevent passing down style the property is used. Cross-references A Cross-reference is a piece of text that references another location in the document in order to establish a thematic relationship to that location.

Although it is perfectly possible to add such references by hand, this approach is prone to error when creating and modifying the document. After a change the numbering and page numbers might not match the numbering from when the cross-reference was first defined. The same could happen to the reference text if it includes the chapter title. To automatically keep the reference up-to-date with the referenced location, CSS provides the target-counter() and target-text() functions to automatically retrieve the exact numbering, title or page number of the referenced location. Footnotes A footnote is a text note placed on the bottom of a page.

It references a specific part of the main content of the document, giving further explanations or information about a citation. A footnote is marked by a defined symbol both in the main content of the page and in the footnote area at the bottom of the page, to show which parts belong together.

For content that is required to have a footnote, the following style can be applied: float: footnote The text content of the element that the style applied to, will appear in the footnote area at the bottom of the page. Content in the footnote area can be styled via CSS using the footnote rule. Key Description Default angle The angle in degrees at which the header will be rotated. Should be between -90 and 90 45 width The width that the header cells should have after the transformation, e.g.

'auto' firstCol Whether to prevent the first column from being transformed. False lastCol Whether to prevent the last column from being transformed. False footer Whether to automatically create a element from the last row in the table. Has no effect if the table already contains a. Multi-column Layout The content of a document can be arranged in columns with elements like images or titles spanning through all columns if desired.

Elements are laid out in a way similar to pages, text and boxes will break whenever no space is left in a column. Multi-column layout is often used in print products like newspapers or magazines, it is intended to reduce the line width to make text easier to read. The following box shows how text flows in a three-column layout. The paragraphs are numbered to better visualize the effect of multi-column layout. Region Layout Regions are containers for document content similar to pages or, but they can be positioned individually.

In contrast to automatically created pages and columns, regions are based on block elements from the document, which presents them with more styling options. Regions belong to a region chain, that connects them and tells how their contents flows from one to another. The content of a region chain is called the named flow and elements can be added to a named flow to be displayed in regions.

MediaBox In prepress, a printed document can contain more information than just the actual content in the TrimBox (e.g. As this information does not belong to the print result and instead needs to be printed around it, a print sheet larger than the print result is needed.

The MediaBox defines the size of the print sheet. Special oversize formats are used as print sheet in such cases. For DIN standard-based formats, the matching oversize formats to the A series are the DIN-RA and DIN-SRA formats. An overview of all supported page sizes can be found in the Appendix The property is used to specify the media size. BleedBox The BleedBox contains the TrimBox and is sligtly larger. Content from the TrimBox may 'bleed' into the BleedBox where it is still painted. This is necessary for content that should reach to the edge of the print result.

The 'bleeded' content prevents having unprinted areas due to unprecise cutting out the print result form the oversized print sheet. The size of the BleedBox is defined as a width that adds up on the TrimBox' size. Common bleed values are 3-5 mm (Europe) or 1/8 inch (USA/UK). Setting the bleed size can be achieved by using the property. Printer Marks Printer Marks are special pieces of information located outside of the actual print result. They are used to prove the correctness of the result in prepress printing and are placed outside the.

Cutting out the print result of the print sheet is done inside the bleed area. Trim and bleed marks indicate where this area starts and ends. Both types of marks are displayed as hairlines in the corner of the print sheet.

Registration marks show whether the printer's colors are aligned properly. They are printed as crosshair-shaped objects located on each side of the print sheet. Color bars show if the colors of the print result meet the expected result.

They consist of a variety of colors that can be checked individually. • 'beforebegin': Before the element • 'afterbegin':As new first-child • 'beforeend':As new last-child • 'afterend':After the element 'afterbegin' elements array An array of the CSS selector strings of elements that should be added to the table of contents. Each TOC entry gets a class name based on the index of the corresponding selector in this array, e.g.

By default the h2 entries have the class ro-toc-level-2. ['h1', 'h2'] toctitle string The title of the table of contents. If an empty string is set, no title is inserted.

'Table of Contents' disabledocumenttitle boolean Whether the document title should NOT be inserted before the table of contents. False text function By default, the text for the entries of the TOC is the text content of the element matching the specified selector. Alternatively, you can specify a function, the return value of which will be used as text for the respective entry. The element representing the entry is passed as an argument to the function. Returning false will skip the entry entirely and not include it in the TOC. Shrink-to-Fit For some documents parts of the content are too wide to fit the pages. In most cases this is caused by HTML documents containing fixed widths intended for screens, e.g.

1024px for the main container element. While the best solution is adding a print style sheet to override the critical styles with relative widths, such content can also be shrunk automatically without changing the source document or adding specific styles. There are two different shrink-to-fit functionalities available in PDFreactor, setPixelsPerInchShrinkToFit and. These are non-exclusive and are applied in the aforementioned order. Pages Per Sheet Instead of containing only one page of the input document per PDF page, multiple pages of the input document can be displayed on one sheet. The pages will be arranged in a grid on the sheet. The number of columns and rows of this grid are user-defined.

To utilize Pages Per Sheet use the API method setPagesPerSheetProperties: pdfReactor.setPagesPerSheetProperties(int cols, int rows, String sheetSize, String sheetMargin, String spacing, int direction); The parameters rows and cols define the corresponding number of pages that get laid out on a single page. Their values are required. The values for sheetSize, sheetMargin and spacing can be set as CSS width values.

Direction defines in which way the single pages are ordered. There are the following options to set a direction. • PAGES_PER_SHEET_DIRECTION_RIGHT_DOWN — The single pages are ordered from left to right and top to bottom. This is the default value. • PAGES_PER_SHEET_DIRECTION_RIGHT_UP — The single pages are ordered from left to right and bottom to top. • PAGES_PER_SHEET_DIRECTION_LEFT_DOWN — The single pages are ordered from right to left and top to bottom. • PAGES_PER_SHEET_DIRECTION_LEFT_UP — The single pages are ordered from left to right and bottom to top.

• PAGES_PER_SHEET_DIRECTION_UP_RIGHT — The single pages are ordered from bottom to top and left to right. • PAGES_PER_SHEET_DIRECTION_UP_LEFT — The single pages are ordered from bottom to top and right to left. • PAGES_PER_SHEET_DIRECTION_DOWN_RIGHT — The single pages are ordered from top to bottom and left to right. • PAGES_PER_SHEET_DIRECTION_DOWN_LEFT — The single pages are ordered from top to bottom and right to left.

Booklet A Booklet is a set of folded pages meant to be read like a book. PDFreactor supports creating Booklets by combining the functionality with the feature. It orders the pages in booklet or rtl booklet page order and places two of these pages on each sheet, rotated by 90 degrees and side-to-side. An API method allows to configure the page size and margins of the container page as well as to use the default booklet page order or a reversed order: pdfReactor.setBookletMode('A4 landscape', '1cm', PDFreactor.PAGE_ORDER_BOOKLET_DEFAULT). Note: XSLT style sheets are applied in a pre-processing step, before the document is layed out and CSS or JavaScript is processed. Adding an XSLT style sheet using an API method: CLI: java -jar pdfreactor.jar -a links bookmarks -s file:///C:/style.css -X file:///C:/xsl-style.xsl sample.html C:/sample.pdf PHP: $pdfReactor->addXSLTStyleSheet(null, 'style.xsl'); Java: pdfReactor.addXSLTStyleSheet(null, 'style.xsl');.Net: pdfReactor.AddXSLTStyleSheet(null, 'style.xsl'); Referencing an external XSLT style sheet via the element.

How Do I Handle Relative References? For documents including relative resources, like.

PDFreactor needs a base URL to resolve these resources. If your source is a URL the base URL will be set automatically. In all other cases you have to set it yourself: Java: pdfReactor.setBaseURL('PHP: pdfReactor->setBaseURL('.NET: pdfReactor.SetBaseURL('CLI: -b 'It is also possible to specify file URLs: Java: pdfReactor.setBaseURL('file:///directory/') PHP: pdfReactor->setBaseURL('file:///directory/').NET: pdfReactor.SetBaseURL('file:///directory/') CLI: -b 'file://someServer/file'. • # followed by a 6 digit RGB value in hexadecimal notation, e.g. #00ff00 for perfect green. You can abbreviate this notation by using only 3 digits which will be expanded internally, e.g. #0f5 equals #00ff55.

• Using the function rgb. It takes the 3 RGB component values as parameters in decimal or procentual notation, e.g. Rgb(0,255,0) or rgb(0%,100%,0%) for perfect green. How do I set RGBA colors? RGBA colors are also supported and can be specified by using the function rgba. It takes the 3 RGB component values as well as 1 alpha component value as parameters in decimal or procentual notation, e.g.

Rgba(0,0,255,0.5) or rgba(0%,100%,0%,50%) for semi-translucent blue. While it is currently possible to set RGBA colors on any CSS border, complex border settings (e.g. Table cells borders) or border styles other than 'solid' are not yet supported and may cause unexpected visual outcome. How do I set CMYK colors? Besides rgb and rgba PDFreactor also supports the non-standard function cmyk.

It takes the 4 CMYK component values as parameters in decimal or percent notation, e.g. Cmyk(0,0,1,0) or cmyk(0%,0%,100%,0%) for perfect yellow. Color key words can be converted automatically into CMYK using the setDefaultColorSpace API method: pdfReactor.setDefaultColorSpace(PDFreactor.COLOR_SPACE_CMYK); CMYK colors are also supported in. How do I set HSL colors? HSL is another representation of the RGB colorspace.

The hue value is in the range of 0 to 360, the saturation and lightness values range between 0 and 1. It is possible to set HSL colors using the function hsl. It takes the 3 HSL component values as parameters in decimal or percent notation, e.g. Hsl(240,0,0) or hsl(66%,0%,0%) for blue. How do I use color key words? Instead of using color functions or the hexadecimal notation a single human readable key word can be used.

For more information which key words are supported by PDFreactor see the. The key words are internally converted into the user-set color space. By default, they are converted into RGB colors. Constant Description NONE Disable this functionality (default) PAGE_BORDERS Find content exceeding the actual edges of the page PAGE_CONTENT Find content exceeding the page content area. (avoids content extending into the page margins) PARENT Find content exceeding its parent (i.e.

Any visible overflow) For example: pdfReactor.setLogExceedingContent( PDFreactor.EXCEEDING_CONTENT_ANALYZE_CONTENT_AND_STATIC_BOXES, PDFreactor.EXCEEDING_CONTENT_AGAINST_PAGE_CONTENT); To programatically process the results you can get an array of ExceedingContent objects using the method getExceedingContents. Please see the API documentation for details on this class. How Can I Retrieve the Number of Pages of a Converted Document Programatically? After converting a document you can use the method getNumberOfPages of the same instance of PDFreactor to retrieve the nubmer of pages of the resulting PDF.

PdfReactor.renderDocumentFromContent(content); int numberOfPages = pdfReactor.getNumberOfPages(true); The boolean parameter specifies whether to return the number of pages of the final PDF ( true) or of the layed out input document without any postprocessing ( false). How Can I Set Request Headers And Cookies For The Outgoing Connections of PDFreactor? Using the method setRequestHeader, you can set request headers for all outgoing HTTP connections of PDFreactor, used to load the document and its resources like images and style sheets.

Similarly you can set cookies using the method setCookie. Both expect a key-value-pair as parameters and can be called multiple times to set multiple headers or cookies. Existing keys will be overwritten.

PdfReactor.setRequestHeader('User-Agent', 'PDFreactor'); pdfReactor.setCookie('name', 'Peter'); This functionality can be used to pass a session ID from the integration to PDFreactor. Font Installation on Mac OS X Mac OS X usually provides the recommended fonts in a proprietary format.

On recent versions of Mac OS X PDFreactor is not able to extract the TrueType font data from these fonts, due to a change within the font format. In this case the TTF fonts need to be installed separately. To install these fonts download Microsoft's True Type Core Font package (available at ). Unpack the fonts and move them into the directory: /System/Library/Frameworks/JavaVM.framework/Version/1.6.0/Home/lib/fonts/ The file permissions must allow the user running PDFreactor access to the *.ttf files in this directory.

The Font Cache Mechanism One of the steps PDFreactor performs on startup is registering fonts. The first time this is done will take some time since every font inside the font directories available to PDFreactor will be identified and registered. At the end of this step PDFreactor creates a font cache file that will be used on subsequent starts to significantly reduce it's startup time.

The font cache ensures the rendering process will start as soon as possible. If the font cache file is present new fonts put into the font directories available to PDFreactor will be ignored by PDFreactor unless the font cache file has been deleted. Then PDFreactor will create a new font cache file on startup as it would on it's first startup. To delete the font cache file, visit the user.home/.PDFreactor directory and delete all files inside it. Pseudo-element/-class Meaning CSS Level::after Generated content after an element CSS 2.1::before Generated content before an element CSS 2.1:empty An element without children (including text nodes) CSS 3:first-child An element, first child of its parent CSS 2.1:footnote-call Generated content replacing elements that are moved to the footnote area.

Usually shares its value with the corresponding footnote marker. CSS 3:footnote-marker Generated content preceeding footnotes. Usually shares its value with the corresponding footnote call.

CSS 3:last-child An element, last child of its parent CSS 3:nth-child(n) An element, n th child of its parent CSS 3:nth-last-child(n) An element, n th child of its parent CSS 3:first-of-type An element, first sibling of its type. CSS 3:last-of-type An element, last sibling of its type. CSS 3:only-of-type An element, only sibling of its type. CSS 3:nth-of-type(n) An element, n th sibling of its type. CSS 3:nth-last-of-type(n) An element, n th last sibling of its type. CSS 3:not(s) An element that does not match selector s CSS 3.

Attribute selector Meaning CSS Level Elem[attr] An Elem element with a attr attribute. CSS 2.1 Elem[attr='val'] An Elem element whose attr attribute value is exactly equal to 'val'. CSS 2.1 Elem[attr~='val'] An Elem element whose attr attribute value is a list of whitespace-separated values, one of which is exactly equal to 'val'. CSS 2.1 Elem[attr^='val'] An Elem element whose attr attribute value begins exactly with the string 'val'. CSS 3 Elem[attr$='val'] An Elem element whose attr attribute value ends exactly with the string 'val'.

CSS 3 Elem[attr*='val'] An Elem element whose attr attribute value contains the substring 'val'. A percentage X aligns the point X% across (for horizontal) or down (for vertical) the image with the point X% across (for horizontal) or down (for vertical) the element's padding box.

For example, with a value pair of '0% 0%',the upper left corner of the image is aligned with the upper left corner of the padding box. A value pair of '100% 100%' places the lower right corner of the image in the lower right corner of the padding box.

With a value pair of '14% 84%', the point 14% across and 84% down the image is to be placed at the point 14% across and 84% down the padding box. A length L aligns the top left corner of the image a distance L to the right of (for horizontal) or below (for vertical) the top left corner of the element's padding box. For example, with a value pair of '2cm 1cm', the upper left corner of the image is placed 2cm to the right and 1cm below the upper left corner of the padding box. Top Equivalent to '0%' for the vertical position. Right Equivalent to '100%' for the horizontal position. Bottom Equivalent to '100%' for the vertical position.

Left Equivalent to '0%' for the horizontal position. Center Equivalent to '50%' for the horizontal position if it is not otherwise given, or '50%' for the vertical position if it is. Source: CSS 2.1. Border-bottom-left-radius border-bottom-right-radius border-top-left-radius border-top-right-radius The two length or percentage values of the 'border-*-radius' properties define the radii of a quarter ellipse that defines the shape of the corner of the outer border edge.

The first value is the horizontal radius, the second the vertical radius. If the second value is omitted it is copied from the first. If either length is zero, the corner is square, not rounded. Percentages for the horizontal radius refer to the width of the border box, whereas percentages for the vertical radius refer to the height of the border box. Negative values are not allowed. Border-radius The ‘border-radius’ shorthand sets all four ‘border-*-radius’ properties. If values are given before and after the slash, then the values before the slash set the horizontal radius and the values after the slash set the vertical radius.

If there is no slash, then the values set both radii equally. The four values for each radii are given in the order top-left, top-right, bottom-right, bottom-left. If bottom-left is omitted it is the same as top-right. If bottom-right is omitted it is the same as top-left. If top-right is omitted it is the same as top-left. Border-spacing The lengths specify the distance that separates adjoining cell borders.

If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.

The distance between the table border and the borders of the cells on the edge of the table is the table's padding for that side, plus the relevant border spacing distance. For example, on the right hand side, the distance is padding-right + horizontal border-spacing. None No border; the computed border width is zero.

Hidden Same as 'none', except in terms of border conflict resolution for table elements. Dotted The border is a series of dots.

Dashed The border is a series of short line segments. Solid The border is a single line segment.

Double The border is two solid lines. The sum of the two lines and the space between them equals the value of 'border-width'. Groove The border looks as though it were carved into the canvas. Ridge The opposite of 'groove': the border looks as though it were coming out of the canvas. Inset The border makes the box look as though it were embedded in the canvas.

Outset The opposite of 'inset': the border makes the box look as though it were coming out of the canvas. Source: CSS 2.1.

Border-width This property is a shorthand property for setting 'border-top-width', 'border-right-width', 'border-bottom-width', and 'border-left-width' at the same place in the style sheet. If there is only one component value, it applies to all sides. If there are two values, the top and bottom borders are set to the first value and the right and left are set to the second. If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third. If there are four values, they apply to the top, right, bottom, and left, respectively. Auto Neither force nor forbid a page/column/region break before/after the box. Always Always force a page break before/after the box.

Avoid Avoid a page/column/region break before/after the box. Left Force one or two page breaks before/after the box so that the next page is formatted as a left page. Right Force one or two page breaks before/after the box so that the next page is formatted as a right page. Page Always force a page break before (after) the box. Column Always force a column break before/after the box.

Region Always force a region break before/after the box. Avoid-page Avoid a page break before/after the box. Avoid-column Avoid a column break before/after the box. Avoid-region Avoid a region break before/after the box.

Source: CSS3, Experimental More information. Left Requires that the top border edge of the box be below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document. Right Requires that the top border edge of the box be below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document. Both Requires that the top border edge of the box be below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document. None No constraint on the box's position with respect to floats. Source: CSS 2.1. Auto The element does not clip.

In CSS 2.1, the only valid value is: rect(,,, ) where and specify offsets from the top border edge of the box, and, and specify offsets from the left border edge of the box. Authors should separate offset values with commas.,,, and may either have a value or 'auto'. Negative lengths are permitted. The value 'auto' means that a given edge of the clipping region will be the same as the edge of the element's generated border box (i.e., 'auto' means the same as '0' for and, the same as the used value of the height plus the sum of vertical padding and border widths for, and the same as the used value of the width plus the sum of the horizontal padding and border widths for, such that four 'auto' values result in the clipping region being the same as the element's border box).

Source: CSS 2.1. Gradient-tint Defines a set of 11 grayscale colors, starting with a CMYK value of 0% each and raising the cyan, magenta and yellow values by 10% on every step. Progressive-color Defines a set including solid process colors (cyan, magenta, yellow, black), solid overprint colors (cyan & magenta, cyan & yellow, magenta & yellow) and a 50% tint of each of the process colors. []+ One or more colors which will be sequentially painted from left to right or from top to bottom respectively.

Source: Proprietary More information. None The pseudo-element is not generated. Normal Computes to 'none' for the:before and:after pseudo-elements. Text content. Counters may be specified with two different functions: 'counter()' or 'counters()'. Attr() This function returns as a string the value of attribute for the subject of the selector. Target counters may be specified with two different functions: 'target-counter()' or 'target-counters()'.

Target text may be specified with the function: 'target-text()'. Named strings may be specified with the function: 'string()'.

The string function has two arguments. The name of the named string as identifier and the location on the page (which is optional). Leaders may be specified with the function: 'leader()'. Running Elements may be specified with the function: 'element()' from a position property. The element function has two arguments.

The name of the running element as identifier and the location on the page (which is optional). Source: CSS 2.1, CSS3 More information:. Auto The UA determines the cursor to display based on the current context. Crosshair A simple crosshair (e.g., short line segments resembling a '+' sign). Default The platform-dependent default cursor. Often rendered as an arrow. Pointer The cursor is a pointer that indicates a link.

Move Indicates something is to be moved. E-resize, ne-resize, nw-resize, n-resize, se-resize, sw-resize, s-resize, w-resize Indicate that some edge is to be moved.

For example, the 'se-resize' cursor is used when the movement starts from the south-east corner of the box. Text Indicates text that may be selected. Often rendered as an I-beam.

Wait Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass. Progress A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass. Help Help is available for the object under the cursor. Often rendered as a question mark or a balloon.

The user agent retrieves the cursor from the resource designated by the URI. If the user agent cannot handle the first cursor of a list of cursors, it should attempt to handle the second, etc. If the user agent cannot handle any user-defined cursor, it must use the generic cursor at the end of the list. Intrinsic sizes for cursors are calculated as for background images, except that a UA-defined rectangle is used in place of the rectangle that establishes the coordinate system for the 'background-image' property. This UA-defined rectangle should be based on the size of a typical cursor on the UA's operating system. If the resulting cursor size does not fit within this rectangle, the UA may proportionally scale the resulting cursor down until it fits within the rectangle. Source: CSS 2.1.

Display The computed value is the same as the specified value, except for positioned and floating elements (see Relationships between 'display', 'position', and 'float') and for the root element. For the root element, the computed value is changed as described in the section on the relationships between 'display', 'position', and 'float'. Note that although the initial value of 'display' is 'inline', rules in the user agent's default style sheet may override this value. See the sample style sheet for HTML 4 in the appendix.

Block This value causes an element to generate a block box. Inline-block This value causes an element to generate an inline-level block container. The inside of an inline-block is formatted as a block box, and the element itself is formatted as an atomic inline-level box. Inline This value causes an element to generate one or more inline boxes. List-item This value causes an element (e.g., LI in HTML) to generate a principal block box and a marker box.

For information about lists and examples of list formatting, please consult the section on lists. None This value causes an element to not appear in the formatting structure (i.e., in visual media the element generates no boxes and has no effect on layout). Descendant elements do not generate any boxes either; the element and its content are removed from the formatting structure entirely. This behavior cannot be overridden by setting the 'display' property on the descendants. Please note that a display of 'none' does not create an invisible box; it creates no box at all. CSS includes mechanisms that enable an element to generate boxes in the formatting structure that affect formatting but are not visible themselves.

Please consult the section on visibility for details. Table, inline-table, table-row-group, table-column, table-column-group, table-header-group, table-footer-group, table-row, table-cell, and table-caption These values cause an element to behave like a table element (subject to restrictions described in the chapter on tables). Source: CSS 2.1. Font The 'font' property is, except as described below, a shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height' and 'font-family' at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts. All font-related properties are first reset to their initial values, including those listed in the preceding paragraph. Then, those properties that are given explicit values in the 'font' shorthand are set to those values.

An keyword is an index to a table of font sizes computed and kept by the UA. Possible values are: [ xx-small x-small small medium large x-large xx-large ] A keyword is interpreted relative to the table of font sizes and the font size of the parent element. Possible values are: [ larger smaller ]. For example, if the parent element has a font size of 'medium', a value of 'larger' will make the font size of the current element be 'large'.

Source: CSS 2.1. Specifies the height of the content area using a length value. Specifies a percentage height. The percentage is calculated with respect to the height of the generated box's containing block. If the height of the containing block is not specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the value computes to 'auto'. A percentage height on the root element is relative to the initial containing block.

Auto The height depends on the values of other properties. Source: CSS 2.1. None Words are not hyphenated, even if characters inside the word explicitly define hyphenation opportunities. Manual Words are only hyphenated where there are characters inside the word that explicitly suggest hyphenation opportunities. Auto Words may be broken at appropriate hyphenation points either as determined by hyphenation characters inside the word or as determined automatically by a language-appropriate hyphenation resource. Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation opportunities within the word. Source: CSS3 More information.

Driver Usb Serial Port Op Command there. Normal Tells user agents to set the used value to a 'reasonable' value based on the font of the element. The value has the same meaning as. The computed value is 'normal'. The specified length is used in the calculation of the line box height. Negative values are illegal. The used value of the property is this number multiplied by the element's font size. Negative values are illegal.

The computed value is the same as the specified value. The computed value of the property is this percentage multiplied by the element's computed font size. Negative values are illegal. Source: CSS 2.1.

Content For block elements there is one clickable area for each piece of content (text, image or empty block). For inline elements there is one clickable area for each part. Block For block elements there is one clickable area for the whole block. For inline elements there is one clickable area for the bounding rectangle of all parts. Content-block For block elements there is one clickable area for the bounding rectangle of the content.

For inline elements there is one clickable area for the bounding rectangle of all parts. Source: Proprietary See also: More information. Outside The marker box is outside the principal block box. The position of the list-item marker adjacent to floats is undefined in CSS 2.1. CSS 2.1 does not specify the precise location of the marker box or its position in the painting order, but does require that for list items whose 'direction' property is 'ltr' the marker box be on the left side of the content and for elements whose 'direction' property is 'rtl' the marker box be on the right side of the content.

The marker box is fixed with respect to the principal block box's border and does not scroll with the principal block box's content. Inside The marker box is placed as the first inline box in the principal block box, before the element's content and before any:before pseudo-elements. Source: CSS 2.1. Margin The 'margin' property is a shorthand property for setting 'margin-top', 'margin-right', 'margin-bottom', and 'margin-left' at the same place in the style sheet. If there is only one component value, it applies to all sides. If there are two values, the top and bottom margins are set to the first value and the right and left margins are set to the second. If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third.

If there are four values, they apply to the top, right, bottom, and left, respectively. Ro-pdf-overprint -ro-pdf-overprint-content Using the properties -ro-pdf-overprint and -ro-pdf-overprint-content you can specify the overprint properties of elements and their content to either none (default), mode0 or mode1 (zero overprint mode). -ro-pdf-overprint affects the entire element, while -ro-pdf-overprint-content only affects the content of the element (not its borders and backgrounds). In both cases the children of the element are affected entirely, unless overprint styles are applied to them as well. None Disables overprinting. Painting a new color, no matter in which color space, causes unspecified colorants to be erased at the corresponding positions. This means that in any area, only the color that was painted last is visible.

Mode0 Standard overprint mode, also known as 'OPM 0'. In this mode source color component values replace values that have been previously painted for the corresponding device colorants, regardless what the new values are. Mode1 Illustrator overprint mode, also known as 'OPM 1' or 'nonzero overprint mode'. When the overprint mode is 1, tint values of 0.0 for source color components do not change the corresponding components of previously painted colors. Source: Proprietary More information. Auto The page box will be set to a size and orientation chosen by the UA.

In the usual case, the page box size and orientation is chosen to match the target media sheet. Landscape Specifies that the page's content be printed in landscape orientation. The longer sides of the page box are horizontal. If a ' is not specified, the size of the page sheet is chosen by the UA. Portrait Specifies that the page's content be printed in portrait orientation.

The shorter sides of the page box are horizontal. If a ' is not specified, the size of the page sheet is chosen by the UA. The page box will be set to the given absolute dimension(s). If only one length value is specified, it sets both the width and height of the page box (i.e., the box is a square).

If two length values are specified, the first establishes the page box width, and the second the page box height. Values in units of 'em' and 'ex' refer to the page context's font.

Negative lengths are illegal. A page size can be specified using one of the following media names. This is the equivalent of specifying the ‘’ using length values. The definition of the the media names comes from Media Standardized Names.

A5, A4, A3, B5, B4, letter, legal, ledger Source: CSS3 More information. The offset is a fixed distance from the reference edge. Negative values are allowed. The offset is a fixed distance from the reference edge. Negative values are allowed.

The offset is a percentage of the containing block's height. Negative values are allowed. Auto For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well. For replaced elements, the effect of this value depends on the intrinsic dimensions of the replaced content. Source: CSS 2.1. A percentage for the horizontal offset is relative to the width of the bounding box. A percentage for the vertical offset is relative to height of the bounding box.

The value for the horizontal and vertical offset represent an offset from the top left corner of the bounding box. A length value gives a fixed length as the offset. The value for the horizontal and vertical offset represent an offset from the top left corner of the bounding box. Top Computes to 0% for the vertical position. Right Computes to 100% for the horizontal position. Bottom Computes to 100% for the vertical position.

Left Computes to 0% for the horizontal position. Center Computes to 50% (left 50%) for the horizontal position if the horizontal position is not otherwise specified, or 50% (top 50%) for the vertical position if it is. Normal The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline elements, implicit reordering works across element boundaries.

Embed If the element is inline, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property. Inside the element, reordering is done implicitly. This corresponds to adding a LRE (U+202A; for 'direction: ltr') or RLE (U+202B; for 'direction: rtl') at the start of the element and a PDF (U+202C) at the end of the element. Bidi-override For inline elements this creates an override. For block container elements this creates an override for inline-level descendants not within another block container element.

This means that inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored. This corresponds to adding a LRO (U+202D; for 'direction: ltr') or RLO (U+202E; for 'direction: rtl') at the start of the element or at the start of each anonymous child block box, if any, and a PDF (U+202C) at the end of the element.

Source: CSS 2.1 See also: More information. Baseline Align the baseline of the box with the baseline of the parent box. If the box does not have a baseline, align the bottom margin edge with the parent's baseline.

Middle Align the vertical midpoint of the box with the baseline of the parent box plus half the x-height of the parent. Sub Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.) super Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.) text-top Align the top of the box with the top of the parent's content area. Text-bottom Align the bottom of the box with the bottom of the parent's content area.

Raise (positive value) or lower (negative value) the box by this distance (a percentage of the 'line-height' value). The value '0%' means the same as 'baseline'. Raise (positive value) or lower (negative value) the box by this distance. The value '0cm' means the same as 'baseline'. Top Align the top of the aligned subtree with the top of the line box. Bottom Align the bottom of the aligned subtree with the bottom of the line box.

Source: CSS 2.1. Visible The generated box is visible. Hidden The generated box is invisible (fully transparent, nothing is drawn), but still affects layout. Furthermore, descendants of the element will be visible if they have 'visibility: visible'. Collapse For table rows, columns, column groups, and row groups the rows or columns are hidden and do not occupy space, as if display: none were applied to them. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'.

Source: CSS 2.1. Normal This value directs user agents to collapse sequences of white space, and break lines as necessary to fill line boxes. Pre This value prevents user agents from collapsing sequences of white space. Lines are only broken at preserved newline characters.

Nowrap This value collapses white space as for 'normal', but suppresses line breaks within text. Pre-wrap This value prevents user agents from collapsing sequences of white space. Lines are broken at preserved newline characters, and as necessary to fill line boxes. Pre-line This value directs user agents to collapse sequences of white space. Lines are broken at preserved newline characters, and as necessary to fill line boxes. Source: CSS 2.1.