Implement API for adding document outline (a.k.a bookmarks).
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, 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.
Paint content stream operator ("Do" in PDF specification) currently draws only Image XObjects. We should implement support for Form XObjects. Available in R2 2017 Release
Highlight annotations appear as highlights in the text of a document. When opened, they display a pop-up window containing the text of the associated note.
or there should be an optional parameter "bool AcceptNewlines" or "bool IgnoreNewlines"
Currently, this can be implemented like this:
private void InsertTextWithNewlines(Block block, string text)
{
string[] lines = text.Split(new[] {"\r\n", "\r", "\n"}, StringSplitOptions.None);
for (int i = 0; i < lines.Length; i++)
{
block.InsertText(lines[i]);
if (i < lines.Length - 1)
{
block.InsertLineBreak();
}
}
}
When merging documents containing the same embedded font every time a document is merged the same font is repeatedly embedded in the merged document. This leads to very large files.
A possible workaround before this feature is developed could be to use the PdfProcessing model to import and merge the documents. After the documents are merged to iterate the document`s content in order to cache the fonts using their name and if there are duplicated names to set the already cached one (check the attached project).
As a side note, the suggested workaround doesn't cover all possible cases (e.g. if there are fonts with a common name but different font sets (modified fonts or font subsets) this may lead to missing/different characters in the produced document). So in order to use this workaround, you will need to ensure the font names are unique for every different font.
When opened in Adobe Reader it says that the file "claims compliance". However, when verifying the compliance with some validation tools there seem to be some issues mainly related but not limited to fonts.
This missing functionality may be workaround by implementing and registering custom IPdfFilter implementation that decodes JPEG2000 images. The custom decoder may be registered with FiltersManager class and its implementation may be similar to RadPdfViewers JpxDecoder SDK example implementation: - https://github.com/telerik/xaml-sdk/blob/master/PdfViewer/CustomDecoder/JpxDecoder.cs
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.
When merging, only the widgets are copied but not their fields. This can lead to ArgumentNullException when exporting the document. Implement copying the fields and consider cases which include collision of names of the fields. Workaround: Repair the generated document using the following code:In case of Name collision, you can use the attached project or the attached project to the following feedback item to rename the duplicate fields: Provide a way to rename FormFields.foreach
(Widget widget
in
this
.pdfDocument.Annotations.Where(annot => annot.Type == AnnotationType.Widget))
{
if
(!
this
.pdfDocument.AcroForm.FormFields.Contains(widget.Field.Name))
{
this
.pdfDocument.AcroForm.FormFields.Add(widget.Field);
}
}
Add support for ToUnicode CMap stream. A side effect of not supporting it is the following: exporting PDF document which, for example, contains German umlauts, to plain text, leads to wrong characters in the resulting text. As possible workaround, the PdfFormatProvider instance of RadPdfViewer can be used to import the document. For example:FormatProviderSettings settings =
new
FormatProviderSettings(ReadingMode.OnDemand);
PdfFormatProvider pdfViewerFormatProvider =
new
PdfFormatProvider(stream, settings);
RadFixedDocument document = pdfViewerFormatProvider.Import();
TextFormatProvider textFormatProvider =
new
TextFormatProvider();
String text = textFormatProvider.Export(document);
For example exporting the text "\uD83D\uDE0A" with "Segoe UI Symbol" font family should export a single smiling face. Instead the characters are skipped during the export as PdfProcessing is trying to export them as separate char values ("\uD83D" and "\uDE0A") and the font does not contain glyphs corresponding to these char codes.