Version 3.1.1 (February 15, 2021)
- Provides support for CSV output. Adds "csv" to the list of options for the output format and "kCsv" to the API parameters.
- Provides support for plain text output. Adds "plainText" to the list of options for the output format and "kPlainText" to the API parameters.
- Adds paragraph.xslt as a stylesheet sample to demonstrate XSLT transformation. This selects only paragraph content from the input document and transforms the XML output file using XSLT.
- Adds indentation to HTML output.
- Improves Command Line Interface help menu with streamlined usage directions and keyword filtering for optional parameters.
- Improves Command Line Interface error-handling.
- SF#42163 – Adds version and copyright information to PDF Alchemist application and SDK. Digitally signs PDF Alchemist and OCR components.
- SF#43630 – Corrects an issue where a slight diagonal shift in a line's path would interfere with table detection.
- SF#43666 – Improves paragraph detection in lines with slight differences in font size and improves drop cap detection.
- SF#43668 – Corrects an issue when processing actual text where incorrect characters were inserted when non-printable characters were encountered in the source PDF file.
- SF#43939 – Corrects an issue that could cause Alchemist to crash if text outside of a table cell intersects multiple tables.
- Resolves an issue where table cells with row_span attributes would cause successive rows to shrink in CSV and JSON output.
- Modifies HTML output to be formatted.
Version 3.0.1 (April 9, 2020)
- Provides support for JSON output. Adds 'json' to the possible values of OutputFormat.
- Provides support for XSL Transformation. Adds new parameter 'xsltStylesheetPath' to apply a custom transformation to XML output.
- Epub output support has been moved to the processPdf API using 'epub' as the OutputFormat. Adds 'epub' to the possible values of OutputFormat. Removes API process Pdf2Epub.
- Adds optional parameter 'outputFilename' that overwrites the default filename for XML, JSON or XSL Transformed XML. By default XML fills will be named "exportedXML.xml" while by default JSON and XML files transformed using XSL will be named after the input PDF.
- -enableXmlOutput is now a deprecated API parameter as of 3.0.0 (API version 4.0) and will be removed in a future release. Use OutputFormat 'xml' instead.
- Updates Visual C++ Runtime from 2015 to 2017 on Windows.
Version 2.7.0 (December 30, 2019)
- Adds new "reflowText" option (defaults to true). This feature ignores line breaks in paragraphs and results in reflowable text. When set to false, lines will break in text paragraphs to match the input.
- Adds new option "borderlessTableDetectionOnPages" to limit borderless table detection to a stated range of pages within a document. When set to "none" the option disables borderless table detection for the entire document. Without this option, borderless table detection is enabled for the document by default.
- Improves borderless table text styling to vertically align text to the top of a table cell instead of centering that text.
- Adds post-processing to OCR text to snap text to a common baseline and improve vertical alignment.
- Corrects an issue in which text from the same line was split into different table rows.
- Corrects an issue where text in a table, formatted as a dictionary (a simple list of terms and definitions), was output in paragraphs rather than being detected as a borderless table.
- Corrects an issue where the "indexing" purpose argument incorrectly reported that the setting of -tableBorders was invalid.
Version 2.6.0 (Tuesday September 12, 2019)
- Adds new option 'tableBorders' to override default detection of table borders and apply borders to either all tables or no tables. The values are ‘always’, ‘never’ or ‘detect’ (default).
- Adds new option 'stylesheetPath' to specify the location and name of the CSS stylesheet. If the location is not an absolute path, it will be interpreted as relative to the output directory.
- Adds new option 'imageDirectoryPath' to specify the location of the image files. If the location is not an absolute path, it will be interpreted as relative to the output directory.
- Adds new option 'imageFilenamePrefix' to specify a prefix for the image filenames. If a prefix is not specified, the files will be named as 0.png, 1.png etc.
- Adds new option 'fontDirectoryPath' to specify the location of the font files. If the location is not an absolute path, it will be interpreted as relative to the output directory.
- Adds new option 'fontFilenamePrefix' to specify a prefix for the font filenames. If a prefix is not specified, the files will be named as f0.ttf, f1.ttf etc.
- Improves the heuristic to determine line breaks so that groups of short lines are not concatenated.
Version 2.5.0 (Thursday August 1, 2019)
- Adds new option 'tablesOnly' to allow the user to only output tables and table data.
- Improves handling of output directories to either create a directory if it does not exist or write to it as appropriate as long as it has permissions.
- Adds new sample input file 'Alice.pdf' for improved OCR character handling. This replaces the 'OCR_blog_snippet.pdf' sample file.
- Corrects an issue in which spacing between words in some tables was lost.
- Corrects an issue with ligature handling in which solo glyphs were being overwritten by ligatures.
- Corrects nondeterministic output in which text shared a vertical position but were not part of the same line or paragraph.
Version 2.4.0 (Monday July 2, 2019)
- Introduces a new command line statement and API option, "removeInvisibleText." By default, PDF Alchemist exports all of the text found in a PDF document. But if a PDF document has white text, this text might not be visible against a white background in an HTML export file.Set this option to true to discard this text. Defaults to false.
- Improves the ability of the product to detect tables with borders that are not made of solid lines.
- Introduces a new command line statement and API option "pageRanges," allowing a user to select a specific set or range of pages for processing. The page numbers are comma-separated, and each page range is described with two page numbers separated by a hyphen. For example, a range value of 1-4 refers to exporting the first four pages of a document, or the page range could be rendered 1,3-5,7,9,14-18. The second page number may be omitted, indicating the end of the document (22-). Defaults to every page in a PDF document converted to an export file.
- Enhances the OCR processing of PDF Alchemist in "replace" mode to support special characters.
- Corrects an issue to prevent duplicate ID tags and HTML validation errors.
Version 2.3.9 (Monday June 3, 2019)
- Adds a command line statement, "-blackText." A user can add this option to force all text emitted from a source PDF document to an HTML file to be rendered in black. Normally PDF text will be black anyway, but this option can be used in case a source document features white text on a dark background.
- Adds a command line statement, “-enableInfographicDetection.” Defaults to True, but the user can add this statement to a command to turn the feature off. By default the system will detect infographic content, such as charts and diagrams, and render them as separate export image files. But this process can interfere with how PDF Alchemist formats tables and hyperlinks.
- Adds a set of PDF sample files for use in testing PDF Alchemist. When processed, these sample files demonstrate how the product manages large blocks of text, and tables with and without borders, and how the OCR tool converts text in images, including text in tables.
- Corrects a pair of issues related to tables, where text from tables with borders was duplicated, and where borders disappeared when a table was split across several pages in an HTML output file.
Version 2.3.8 (Friday May 3, 2019)
- Corrects an issue in which complex tables comprised of cells with many varied widths would not be preserved.
- Improves detection of borderless tables containing column headers with multiple lines of text and cells with alignment differences.
- Improves detection of borderless tables containing a single row that is shorter or longer than other rows.
- Corrects a problem in which large images were incorrectly determined to be part of headers and were removed when keepHeaderFooter was not set.
- Improves consistency of paragraph line spacing detection by updating the default property for each paragraph to match the previous paragraph.
- Corrects a problem where some graphics were not completely exported if they had white filled areas.
Version 2.3.5 (April 16, 2019)
- Completes a series of changes to how the software manages the licensing process, including how the license file is stored and accessed and how the system responds when the license expires.
- Adds enableCaptions option to allow the software to look for caption text after images in PDF documents.
- Applies a variety of changes to make sure that the output from PDF Alchemist is deterministic—that the font and the format are the same each time the system is run. This involves edits to the stylesheet and to how an EPUB output file is structured.
- PDF Link annotations are now sent to more precise locations in HTML export files, as close as possible to the linked-to content.
Version 2.3.4 (January 29, 2019)
- Improvements to table output, as well as improvements to the software’s ability to detect rows and columns in tables.
- When processing images, the OCR utility does not remove images if no text is found in those images. Text attributes are not created.
- All image types are supported by PDF Alchemist are also supported for OCR processing, and all images are normalized to the same resolution.
- Corrected problem with generating ePUB output file on Linux platforms.
Version 2.3.1 (January 15, 2019)
- PDF Alchemist now offers Optical Character Recognition (OCR) technology, allowing the software to scan images within PDF files and extract text found in those images. Users can select an option to add this OCR text to the export file as a supplement to the images, or they can replace the images with the recovered text. By default, the OCR tool supports English language text, but users can also select Dutch, French, German, Italian, Portuguese, or Spanish.
- A new parameter, “ocrMode,” has been added to the command line and to the API. This allows a user to turn the OCR function on (OCR is disabled by default) and either add text extracted from an image to an export file or use that text to replace the image in the export file.
- A new parameter, “ocrLanguage,” has been added to the command line and to the API. This allows a user to select the language to use for OCR processing when OCR is enabled.
- The ability to reconstruct tables in HTML or XML output files has been significantly improved. This includes creating borderless tables and cells, better alignment of text and images in tables, and improved address blocks.
- PDF Alchemist now honors “ActualText” span entries for text spans that contain this PDF tagging. If ActualText entries appear, these entries will override information found in the font ToUnicode tables or any font encoding information.
- Fixes a problem where PDF Alchemist had been too aggressive in identifying images in PDF documents as background images and then removing those images.
- The "replace" setting for ocrMode does not currently support images stored as JBIG2 or JPEG2000 images within the input PDF data stream. Contents from these images will be discarded. These image formats are supported using the "tag" setting for ocrMode, and the text generated using OCR is properly rendered.
- The "replace" setting for ocrMode replaces images which do not have any OCR-detectable text with blank regions within its output, and these images will disappear. The "tag" setting ocrMode can be used to use OCR for scanning images when you prefer to maintain images within the output.
Version 2.2.3 (October 3, 2018)
- Reduces excessive spacing in rows in tables. After exporting table content from PDF documents to HTML files, the browser tended to create large spaces around the data in table cells when the paragraph tag, <p>, appeared in those cells. Added settings in the style sheets of 0 points for the top and bottom margins for each paragraph flag (<p>) in a table, eliminating these unnecessary spaces. As a result, the tables that now appear in HTML output feature spacing that matches the spacing seen in the original PDF document.
- Improves table detection in cases where column headings in tables were center or left justified and subsequent rows were right justified. This allows the headings to align properly with the rows below them in the HTML output content.
Version 2.2.0 (August 22, 2018)
- PDF Alchemist can now convert PDF documents into XML files.
- When generating XML output, the “-purpose” tag now defaults to “indexing.” In this case the text copied to the XML file is not formatted for specifically for layout and appearance, but rather to make it easier to create an index for this text to make searching easier. It is possible for the user to manually change this setting to “balanced” instead.
- When exporting a table from a PDF document, the total count of rows and columns in that table are added to the <table> element to make analysis of the export process more efficient.
- Corrects a problem with detecting and providing an appropriate font for text when exporting to XML. The system had been sending text to an XML file and changing the original serif font, such as Times New Roman, with a non-serif font, like Arial.
- Improves table detection in cases where column headings did not align with the text below.
Version 2.1.7 (September 18, 2017)
- Corrects a memory corruption issue that caused applications to crash when calling PDF Alchemist from .NET.
Version 2.1.3 (August 2, 2016)
- When a customer extracts the PDF Alchemist software package when installing the product, the installation process now creates a folder for storing the software files that is named to include the version number of the PDF Alchemist release.
- The documentation now describes the return values provided from the processPDF function.
- Improved separation of table rows when text is indented in the first cell of a row.
- Control of hyphenation removal added. Previous versions removed hyphens by default, hyphens are now preserved by default and you can use the removeHyphen parameter to enable removing them. Note that hyphenation removal is performed by a simple algorithm without language or dictionary support, so it is a good idea to run a few sample files through and then decide whether or not you need to use the removeHyphen parameter.
- Adds the "purpose" option to control the handling of element processing for different workflows. Defaults to "balanced." Use "indexing" to optimize PDF Alchemist output for indexing/search applications. When specifying "indexing" as the purpose the preservation of text as text is more important than preserving the appearance of the original PDF document when overlapping or transparent elements are involved.
- EPUB output now defaults to writing new sections or chapters for every highest-level bookmark or Table of Contents (ToC) entry in input PDF.
- Updates to improve detection and output of multi-column sub layouts on a page where the page is predominantly single-column
- Updates to better break lines when visual layout indicates that adjacent lines are different lines, instead of continued lines of a paragraph
- Resolves issue with order of images being written in output in cases where input might be in multiple columns
- Resolves issue with improper handling of some non-letter characters in unembedded fonts that do not specify an encoding
- Resolves issue with association of text to proper image in multi-column image and caption layouts
- Resolves rendering issue with PDFs having image masks that specify their bits per component value.
- Resolves issues with EPUB output validation.
- Resolves problem with an erroneous member property "width," that had been written out for "col" members
- Resolves issue with EPUB output not having bookmarks/table of contents written when requested
- Resolves issue with invalid output being generated when splitting on every page, and when a page ended with a list item
- Improves error handling in cases where invalid PDF files are supplied for processing
Version 2.0.3 (December 22, 2015)
- Resolves line-breaking issue. Some lines that ended in numbers were being combined with lines to follow, and the product was converting the lines into a table of content-type lists.
- Resolves alignment issue for graphics, where some graphics that were right-aligned in the PDF input file were not right-aligned in output.
Version 2.0.2 (December 7, 2015)
- Adds additional checking for line groups and associated splitting heuristics for lines that end with delimiter symbols, including ']', ')', '}', or '>'.
- Fixes issue where some images were left out of the output file because the software incorrectly associated them with page headers and footers.
Version 2.0.1 (November 24, 2015)
- Fixes issue where text was left out of the output file because the software incorrectly associated that text with page headers and footers.
- Fixes issue where the software was incorrectly formatting lists of content as borderless tables.
- Fixes issue with table column positions, featuring cells in a column were improperly centered, or otherwise out of place.
- Fixes issue with paragraph breaking when lines only contain one word per line.
Version 2.0.0 (October 20, 2015)
- PDF Alchemist now supports generating EPUB output files.
- The product now supports dividing the source content into multiple output files for HTML or chapters for EPUB files. The content is split based on bookmarks found in the PDF document.
- Adds support for dividing source content into multiple output files for HTML or chapters for EPUB files, with the content split by a pre-determined number of pages. For example, a document could be set to divide into a separate HTML output file every ten pages of the original PDF document.
- Fixes problem in generating tables that caused multiple input cells to be merged into a single output cell.
Version 1.2 (October 9, 2015)
- The system can now detect a PDF table of contents (outlines / "bookmarks") and convert it into a Table of Contents view in a separate frame in an HTML file. Output is generated with the Bookmark View of the HTML as a separate file from the standard output, so that users can distribute the same output both with a bookmarks pane and without one.
- Allows links to be generated in standard HTML formatting. The product can override formatting in the source PDF. This allows users, for example, to make invisible PDF links visible in the HTML output.
- Image generation improvements & control over generated image resolution.
- A variety of improvements and fixes, including improvements related to lists, tables, and form generation.
- Support for generating reflowable AcroForms to HTML forms has improved but the feature is still under development.
Version 1.1, Initial Production Release (September 10, 2015)
PDF Alchemist is available for Windows 64, Windows 32, Linux 64, and MacOS 64 platforms, and provides both Command Line access and API access.
The product accepts one PDF file as input and generates a zip file, containing a folder with a single HTML file (page1.html), a stylesheet (stylesheet.css), a fonts folder, and an images folder.
The software positions images and text in the output to match their placing in the PDF source document. The images are extracted from the PDF source document and references them using inline tags in the HTML output.
It also formats tables in the PDF document as HTML tables to match the original, and detects page background images so that they also appear in the output as background images.
AcroForms are detected and converted into HTML forms.
- Paragraphs that span across pages are combined into a single continuous text flow.
- Multi-column text in the input is converted into single column reflowable and resizable text in output.
- Running headers and footers are removed.
- Extracted fonts are referenced in the stylesheet when possible.
- Font styles, such as bold, italic, and underline, are preserved from the input document to the HTML export
- Text indentation is detected and preserved
- Text justification (right, center, left) is preserved
- Text flow margins are detected and preserved
- Numbered and bulleted lists are detected and preserved
- Internal links/references are detected and converted to HTML anchors and references in output.
- Links to external URL addresses are detected and converted to HTML hyperlinks.