When exporting merged documents when they are imported with ImportSettings set to ReadOnDemand an exception is thrown: KeyNotFoundException: 'The given key was not present in the dictionary.'
When a document containing a SignatureField is exported with the IsEncrypted property set to true, a not set UserPassword is required to open it, which makes it impossible to be opened. An InvalidOperationException is thrown with the message "Password is not correct." when importing with PdfProcessing; Adobe Acrobat also doesn't recognize the password.
Workaround: Exporting with AES256 encryption does not have this problem:
provider.ExportSettings = new PdfExportSettings
{
IsEncrypted = true,
EncryptionType = EncryptionType.AES256
};
This could be implemented by linking to RadFixedPages or Bookmarks.
Until this feature is developed this could be custom created with the help of Link annotations:
RadFixedPage toc = new RadFixedPage();
document1.Pages.Insert(0, toc);
FixedContentEditor editor = new FixedContentEditor(toc);
foreach (RadFixedPage page in document1.Pages)
{
int pageNumber = document1.Pages.IndexOf(page);
if (pageNumber > 0)
{
int factor = 20;
int offsetX = 70;
int offsetY = 20 + factor * pageNumber;
editor.Position.Translate(offsetX, offsetY);
Block block = new Block();
block.GraphicProperties.FillColor = new RgbColor(255, 5, 99, 193);
block.InsertText($"Page {pageNumber}");
Size blockSize = block.Measure();
editor.DrawBlock(block);
Location location = new Location
{
Left = 0,
Top = 0,
Zoom = 0,
Page = page
};
GoToAction goToAction = new GoToAction();
goToAction.Destination = location;
Link uriLink = toc.Annotations.AddLink(goToAction);
uriLink.Rect = new Rect(offsetX, offsetY, blockSize.Width, blockSize.Height);
}
}
According to the PDF Specification: A redaction annotation (PDF 1.7) identifies content that is intended to be removed from the document.
There are two possible options to workaround this functionality:
foreach (RadFixedPage page in document.Pages)
{
foreach (ContentElementBase elementBase in page.Content)
{
if (elementBase is TextFragment textFragment)
{
if (IsValidEmail(textFragment.Text))
{
textFragment.Text = string.Empty;
}
}
}
}
foreach (RadFixedPage page in document.Pages)
{
foreach (ContentElementBase elementBase in page.Content)
{
if (elementBase is TextFragment textFragment)
{
if (IsIntersecting(rectangleGeometry, textFragment))
{
textFragment.Text = string.Empty;
}
}
}
}
Hello Support,
I am generating pdf using PdfFormatProvider. In this i am passing html data which should be converted into pdf. For that I have written below code.
HtmlFormatProvider htmlFormatProvider = new HtmlFormatProvider(); RadFlowDocument htmlDocument = htmlFormatProvider.Import(htmlContentValue); var anotherpara = sectionBody.Blocks.AddParagraph(); editor.MoveToParagraphStart(anotherpara); editor.InsertDocument(htmlDocument, options);
This works fine and also get pdf with expected value. But I would like to set spacing between two lines which I could not set or its not working. For that I have added below code.
I have also attached screenshot for it. like how its showing on pdf
editor.ParagraphFormatting.AutomaticSpacingAfter.LocalValue = false; editor.ParagraphFormatting.AutomaticSpacingBefore.LocalValue = false; editor.ParagraphFormatting.SpacingAfter.LocalValue = 0; editor.ParagraphFormatting.SpacingBefore.LocalValue = 0;
So could you please let me know fix for it.
With the current implementation, the Trigger Events are skippet on import.
From the PDF Specification: An annotation, page object, or interactive form field may include an entry named AA that specifies an additional-actions dictionary that extends the set of events that can trigger the execution of an action.
Attempting to open a Pdf document containing an unsupported action type results in a NotSupportedActionException being thrown (see PdfProcessing: Add support for actions of type Launch).
Can the behavior be changed to ignore unsupported actions and allow the document to be opened?
With the current implementation, the Standard Fonts preloaded in the FontsRepository cannot be replaced.