Currently, we support inserting png, jpg and other raster graphic images. Provide a way to insert image from SVG (vector graphic image format), by creating a FormSource from its parsed XML.
Currently RadFixedDocumentInfo is used only for export of Author, Title and Description document metadata properties. This should be extended to support custom properties. We should also implement the import of RadFixedDocumentInfo.
Currently, Standard fonts are exported always with StandardEncoding. This does not allow export of some special characters which do not fit in the first 255 glyph definitions in the font. Most of these characters are the ones with an accent such as "Eacute" glyph (É) which is with position number 303 in Times Roman font. The list of all standard fonts may be found in this documentation section: https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/concepts/fonts#standard-fonts
Currently, NotSupportedEncryptionException is thrown.
Current implementation relies on valid cross-reference offsets in the PDF documents so that PDF objects are easily found and parsed. However, we can implement a mechanism for repairing documents with invalid cross-reference tables. The attached project shows how to repair the simplest case of cross-reference table by using RepairDocumentWithSimpleCrossReferenceTable method.
Currently, there is no way to know when a new page is created when content "overflows" to the next page This event may be needed in order to generate the header and footer based on the currently generated content. In simple header/footer scenarios, however, this event may not be needed and the headers and footers may be drawn after all pages are generated as described in the comments below.
Implement the Exponential Interpolation Function in PdfProcessing. Currently, NotSupportedFunctionTypeException is thrown with a message "Function type 2 is not supported."
Implement Viewer related properties in PdfProcessing in order to enable the users to set PrintScaling, PrintClip, and other properties which are written in the Pdf Format specification as Interactive Features. ViewerPreferences are written a document's catalog. Check p.577 from pdf reference format specification, version 1.7
PDF/A-1a is with conformance level A (for "accessibility"), and must adhere to all of the requirements of the PDF Reference as modified by the ISO 19005 specification. It requires structural and semantic properties to be preserved. Level 1a uses “Tagged PDF” and Unicode character maps to preserve the document's logical structure and content text stream in natural reading order. The following features are used: - Language specification - Hierarchical document structure - Tagged text spans and descriptive text for images and symbols - Character mappings to Unicode The purpose is to improve accessibility and make the content accessible for screen readers.
The PDF format includes a general multimedia framework allowing users to insert and play/visualize different media types. The feature is described on page 755 from PDF Reference 1.7.
This API should provide a method for removing all fields and widgets in the document and draw the default widget appearance in place of the removed widgets. WORKAROUND: Sample implementation for flattening form fields may be seen in the FlattenFormFields method from the attached demo project.
Some PDF files have an additional content added before the file header (before %PDF-1.4 for example). This additional content makes all byte offsets in the document invalid, which causes the format provider to throw an exception. At this point, to import a similar document it should be pre-processed so the content before the version header is removed before importing it.
Allow customers to encrypt their documents using certificates.
Currently, PdfStreamWriter writes only PDF pages. If we implement API for merging multiple pages or whole documents we would be able to preserve links between pages (which are currently being corrupted). Merging whole documents would also allow preserving document properties (bookmarks, interactive forms, ...). For a more detailed list of the unsupported document properties you can refer to our documentation: https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/formats-and-conversion/pdf/pdfstreamwriter/features. We may also implement API for adding initial document properties from some existing PDF file.
This would ensure preserving the existing PDF file pages and document properties untouched and additionally would allow making a few modifications to the file. By appending bytes to existing PDF file one may achieve: - Modifying specific pages content and properties. - Adding new pages to pages collection. - Modify some document properties (such as Bookmarks). - Edit interactive forms field values. - Add digital signatures to existing documents.
The public API may be implemented as property of PdfExportSettings. Implementing this feature would help to easily workaround issue with PdfProcessing documents that cannot be opened on devices with iOS version 10.2 (due to the default FlateDecode compression).
For example when some PDF file has uncompressed contents we may import it and apply better compression to the stream objects.
This would allow to encrypt documents only with Owner Password and not showing password dialog when disabling some PDF features permissions. The customer should be able to disable printing, text and graphic selection and extraction, page rotations and others. The full specification of all permission bits may be seen in Table 3.20 on page 124 in PdfReference 1.7. On page 120 in PdfReference 1.7 are described the User and Owner passwords.