Some PDF files are showing the following error during the watermark merging process. Please find the error below and kindly advise.
Error:
at Telerik.Windows.Documents.Utilities.Guard.ThrowExceptionIfNull[T](T param, String paramName) at Telerik.Windows.Documents.Fixed.Model.RadFixedDocument.Merge(RadFixedDocument source) at FinalPdfGenerator.CommitteePdfGeneratorService.CreateClonedDocument(RadFixedDocument document, RadFixedDocument existingDocument, Notes note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 129
at FinalPdfGenerator.CommitteePdfGeneratorService.GenerateFirstPage(Notes e_Note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 215
at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowText.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context, PdfString text) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowTextArray.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.<>c__DisplayClass8_0.<Execute>b__0() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation, Action`1 onException) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.Execute() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.ContentStream.ParseContentData(Byte[] data, IRadFixedDocumentImportContext context, IResourceHolder resourceHolder, IContentRootElement contentRoot, ContentStreamKeywordCollection keywordCollection) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.Page.CopyPageContentTo(IRadFixedDocumentImportContext context, RadFixedPage fixedPage) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyAllPageProperties(PostScriptReader reader, IRadFixedDocumentImportContext context, List`1 contextPages, IList`1 pages) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPagePropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.RadFixedDocumentImportContext.BeginImportOverride() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.BaseImportContext.BeginImport(Stream pdfFileStream) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.PdfImporter.Import(Stream input, IPdfImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.<>c__DisplayClass18_0.<ImportOverride>b__0() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride(Stream input) at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Import(Stream input) at FinalPdfGenerator.CommitteePdfGeneratorService.LoadExistingDocument(String file) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 727
at FinalPdfGenerator.CommitteePdfGeneratorService.GenerateFirstPage(Notes e_Note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 215
at Telerik.Windows.Documents.Utilities.Guard.ThrowExceptionIfNull[T](T param, String paramName) at Telerik.Windows.Documents.Fixed.Model.RadFixedDocument.Merge(RadFixedDocument source) at FinalPdfGenerator.CommitteePdfGeneratorService.CreateClonedDocument(RadFixedDocument document, RadFixedDocument existingDocument, Notes note) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 129
at System.Runtime.CompilerServices.RuntimeHelpers.AllocateUninitializedClone(Object obj) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.SimpleFontObject.GetToUnicodeOverride(CharCode code) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.Fonts.FontObject.GetCharactersOverride(PdfString str) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowText.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context, PdfString text) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Operators.Text.ShowTextArray.Execute(IContentStreamInterpreter interpreter, IPdfContentImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.<>c__DisplayClass8_0.<Execute>b__0() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation, Action`1 onException) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.InterpreterBase`1.Execute() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.ContentStream.ParseContentData(Byte[] data, IRadFixedDocumentImportContext context, IResourceHolder resourceHolder, IContentRootElement contentRoot, ContentStreamKeywordCollection keywordCollection) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.Page.CopyPageContentTo(IRadFixedDocumentImportContext context, RadFixedPage fixedPage) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyAllPageProperties(PostScriptReader reader, IRadFixedDocumentImportContext context, List`1 contextPages, IList`1 pages) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPagePropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Model.Elements.DocumentStructure.DocumentCatalog.CopyPropertiesTo(PostScriptReader reader, IRadFixedDocumentImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.RadFixedDocumentImportContext.BeginImportOverride() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.BaseImportContext.BeginImport(Stream pdfFileStream) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.PdfImporter.Import(Stream input, IPdfImportContext context) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.<>c__DisplayClass18_0.<ImportOverride>b__0() at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation) at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride(Stream input) at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Import(Stream input) at FinalPdfGenerator.CommitteePdfGeneratorService.LoadExistingDocument(String file) in C:\Users\JayaprakashS\Xencia\IndianBank\CodeMerge_01Oct24\LatestReviewIBCode_IBUAT_05Jun25\FinalPdfGenerator\CommitteePdfGeneratorService.cs:line 727
Code:
private RadFixedDocument CreateClonedDocument(RadFixedDocument document, RadFixedDocument existingDocument, Model.Notes note)
{
RadFixedDocument clonedDocument = new RadFixedDocument();
try
{
foreach (RadFixedPage currentPage in existingDocument.Pages)
{
Watermark(currentPage, note.strNoteStatus, 0, 0, FirstVal);
Watermark(currentPage, note.noteNumber, 0, 65, SecVal);
}
clonedDocument.Merge(GenerateFirstPage(note));
clonedDocument.Merge(existingDocument);
clonedDocument.Merge(GenerateSignaturePage((int)note.noteId));
clonedDocument.Merge(CommentAuditLogPage((int)note.noteId));
int pageNumber = 0;
foreach (RadFixedPage currentPage in clonedDocument.Pages)
{
pageNumber++;
Footer(currentPage, pageNumber, clonedDocument.Pages.Count);
}
}
catch (Exception ex) {
AddLogs(_dbContext, "ECommittee Pdf Genarator", ex.StackTrace, ex.InnerException?.ToString());
}
return clonedDocument;
}
<div style="height: 100%;">
<!-- Parent Grid -->
<div style="width: 60%; height: 100%; float: left;">
<h2>{_ParentItem_}s</h2>
@(Html.Kendo().TreeList<ParentChildModel>()
.Name("ParentGrid")
.Columns(columns =>
{
columns.Add().Field(p => p.Id).Width(80).Hidden(false);
columns.Add().Field(p => p.ItemId).Width(80).Hidden(true);
columns.Add().Field(c => c.Name).Title("Name").Width(140).Template("#= getIndentedName(Name, Id) #");
columns.Add().Field(e => e.AssetCode).Title("{_AssetCode_}").Width(60);
columns.Add().Field(e => e.Weight).Title("Weight").Format("{0:n3}").Width(40).Hidden(false);
columns.Add().Field(e => e.Dimension).Title("Dimension").Width(100).Hidden(false);
columns.Add().Command(c =>
{
c.Edit().Text("Edit").ClassName("k-grid-edit");
c.Destroy().Text("Delete").ClassName("k-grid-delete");
}).Title("Actions").Width(80);
})
.Editable(editable => editable.Move(move => move.Reorderable(true)).Mode(TreeListEditMode.PopUp)
.TemplateName("ParentPopupEditor"))
.Toolbar(toolbar =>
{
toolbar.Create().Text("Add New {_ParentItem_}");
toolbar.Custom().Template(
"<div>" +
"<input id='toolbarComboBox' style='width: 300px;' />" +
"</div>"
);
toolbar.Search();
})
.DataSource(dataSource => dataSource
.Read(read => read.Action("GetParentAndChildItems", "ParentChild").Data("parentSearchData"))
.Create(update => update.Action("AddNewRecord", "ParentChild").Type(HttpVerbs.Post))
.Update(u => u.Action("UpdateRecord", "ParentChild").Type(HttpVerbs.Post)) //.Data("saveFormData"))
.Destroy(update => update.Action("DeleteRecord", "ParentChild"))
.ServerOperation(false)
.PageSize(20)
.Model(m =>
{
m.Id(f => f.Id);
m.ParentId(f => f.ParentId);
m.Expanded(true);
m.Field(f => f.ItemId);
m.Field(f => f.AssetName);
m.Field(f => f.AssetCode);
m.Field(f => f.Weight);
m.Field(f => f.Dimension);
})
)
.Pageable(x => x.PageSizes(new int[] { 20, 50, 100, 200, 500 }).Refresh(true).Input(true))
.Sortable()
.Selectable()
.Events(e => e.DataBound("dataBound").Save("onEditorDataSave").DragEnd("onDragEnd"))//.DragStart("onDragStart").DragEnd("onDragEnd")
)
</div>
<!-- Assignable Assets -->
<div style="width: 40%; height: 100%; float: right;">
<h2>Assignable {_Asset_}s</h2>
@(Html.Kendo().Grid<ItemDto>()
.Name("AssetGrid")
.HtmlAttributes(new { style = "height:100%; width:100%;" })
.Columns(columns =>
{
//columns.Template(@<text> </text>).Draggable(true).Width(30);
columns.Template("").Draggable(true);
columns.Bound(a => a.Id).Title("Id").Width(60).HtmlAttributes(new { @class = "idColStyle" });
columns.Bound(a => a.Title).Title("{_AssetName_}").Width(150);
columns.Bound(a => a.ItemTypeName).Title("{_AssetType_}").Width(100);
columns.Bound(a => a.LocationName).Title("Destination {_Location_}").Width(110);
})
.ToolBar(toolbar =>
{
toolbar.Custom().ClientTemplate(Html.Kendo().Template().AddComponent(c => c
.TextBox().Name("toolbarTextBox")
.Placeholder("Filter by {_AssetName_}/{_AssetType_}...")
.HtmlAttributes(new { style = "float: right; width: 300px;" })
.Events(ev => ev.Change("toolbarTextBoxChanged"))
));
toolbar.Search();
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(false)
.Model(m => m.Id("Id")) //Ensure that the Model identifier ("Id") is defined.
.Read(read => read.Action("GetAssignableAssets", "ParentChild").Data("childrenSearchData"))
)
.Pageable()
.Sortable()
.Selectable()
)
</div>
</div>
$(document).ready(function () {
var treeList = $("#ParentGrid").data("kendoTreeList");
if (treeList) {
treeList.dataSource.bind("requestEnd", function (e) {
if (e.response) {
if (e.type === "create") {
console.log("call requestEnd type: create");
treeList.dataSource.read(); // Refresh immediately
} else if (e.type === "update") {
console.log("call requestEnd type: update");
setTimeout(function () {
treeList.dataSource.read(); // Refresh after 1 second
}, 200); // 1000 milliseconds = 1 second
}
}
});
}
});
function onDragEnd(e) {
var draggedItem = e.source; // The dragged item
var newParent = e.destination; // The new parent (if changed)
var newOrder = e.position; // The new order in the parent
// Prepare data for backend
var updateData = {
sourceId: draggedItem.id,
destId: newParent ? newParent.id : null,
destParentId: newParent ? newParent.id : null,
//sourceItemId = draggedItem.ItemId,
//destItemId = newParent ? newParent.ItemId : null,
order: newOrder
};
// Make an AJAX call to update the hierarchy/order in the backend
$.ajax({
url: "/ParentChild/Reorder", //"/ParentChild/Reorder",
type: "POST",
data: { //{destId: updateData.destId, sourceId: updateData.sourceId, order: updateData.order},
destId: e.destination.Id,
sourceId: e.source.Id,
destParentItemId: e.destination.ParentItemId,
order: e.position
},
//contentType: "application/json",
success: function () {
// Optionally refresh the TreeList
$("#ParentGrid").data("kendoTreeList").dataSource.read();
},
error: function () {
$("#ParentGrid").data("kendoTreeList").dataSource.read();
alert("Reorder failed (Can't make child asset as parent)");
}
});
console.log("Drag operation ended!", e);
}
// Initialize ParentGrid rows as drop targets
window.initializeDropTargets = function () {
var draggedItem = null;
// Make Rows Draggable
$("#AssetGrid").on("mousedown", "tr", function () {
var grid = $("#AssetGrid").data("kendoGrid");
var dataItem = grid.dataItem($(this));
draggedItem = dataItem; // Track the dragged item's data
console.log("AssetGrid -> mousedown", draggedItem);
});
// Track dragged item from ParentGrid
$("#ParentGrid").on("mousedown", "tr", function () {
var parentGrid = $("#ParentGrid").data("kendoTreeList");
draggedItem = parentGrid.dataItem($(this));
console.log("ParentGrid -> mousedown", draggedItem);
});
$("#ParentGrid").kendoDropTargetArea({
filter: "tbody tr",
group: "assetGroup", // Match the draggable group
drop: function (e) {
var parentGrid = $("#ParentGrid").data("kendoTreeList"); // Get the Kendo Grid instance
var dropTargetRow = $(e.dropTarget); //.closest("#ParentGrid tr.k-table-row.k-master-row"); // The row where the item was dropped
var targetItem = parentGrid.dataItem(dropTargetRow); // Target row data
console.log("Dragged Item:", draggedItem.Id);
console.log("Drop Target:", e.dropTarget);
console.log("Drop Target Row:", dropTargetRow);
console.log("Target Item:", targetItem.Id);
if (targetItem && draggedItem) {
//alert("Item '" + draggedItem.Title + "' dropped on Parent '" + targetItem.Name + "'");
// Add AJAX call here to save assignment in the database
$.ajax({
url: "/ParentChild/AssignAsset",
method: "POST",
data: { parentId: targetItem.Id, itemId: draggedItem.Id, parentItemId: targetItem.ParentItemId },
success: function (response) {
parentGrid.dataSource.read();
$("#AssetGrid").data("kendoGrid").dataSource.read();
console.log("AssignAsset ended from kendoDropTargetArea -> drop");
//parentGrid.refresh();
//alert("Assignment successful!");
},
error: function () {
alert("Error while assigning asset (Can't assign children to child asset).");
}
});
}
},
dragend: function (e) {
var draggedItem = e.source; // The dragged item
var newParent = e.destination; // The new parent (if changed)
var newOrder = e.destinationIndex; // The new order in the parent
// Prepare data for backend
var updateData = {
id: draggedItem.id,
parentId: newParent ? newParent.id : null,
order: newOrder
};
// Make an AJAX call to update the hierarchy/order in the backend
$.ajax({
url: "/ParentChild/Reorder",
type: "POST",
data: JSON.stringify(updateData),
contentType: "application/json",
success: function () {
// Optionally refresh the TreeList
$("#TreeList").data("kendoTreeList").dataSource.read();
console.log("AssignAsset ended from kendoDropTargetArea -> dragend -> Reorder");
},
error: function () {
alert("Reorder failed");
}
});
}
});
$("#AssetGrid").kendoDropTarget({
filter: "tbody tr",
group: "gridGroup", // Match the draggable group
drop: function (e) {
var parentGrid = $("#ParentGrid").data("kendoTreeList"); // Get the Kendo Grid instance
var dropTargetRow = $(e.dropTarget); //.closest("#ParentGrid tr.k-table-row.k-master-row"); // The row where the item was dropped
var targetItem = parentGrid.dataItem(dropTargetRow); // Target row data
console.log("Dragged Item:", draggedItem.Id);
console.log("Drop Target:", e.dropTarget);
console.log("Drop Target Row:", dropTargetRow);
console.log("Target Item:", targetItem.Id);
if (targetItem && draggedItem) {
//alert("Item '" + draggedItem.Title + "' dropped on Parent '" + targetItem.Name + "'");
// Add AJAX call here to save assignment in the database
$.ajax({
url: "/ParentChild/UnAssignAsset",
method: "POST",
data: { parentId: targetItem.Id, itemId: draggedItem.Id, parentItemId: targetItem.ParentItemId },
success: function (response) {
parentGrid.dataSource.read();
$("#AssetGrid").data("kendoGrid").dataSource.read();
console.log("AssignAsset ended from kendoDropTargetArea -> drop");
//parentGrid.refresh();
//alert("Assignment successful!");
},
error: function () {
alert("Error while assigning asset (Can't assign children to child asset).");
}
});
}
}
});
};
$(document).ready(function () {
// Make rows in the AssetGrid draggable
$("#AssetGrid").kendoDraggable({
filter: "tbody > tr", // Target rows in the grid
hint: function (element) {
return $("<div class='k-card k-card-type'><b>" + $(element).find("td:nth-child(2)").text() + "</b></div>");
},
group: "assetGroup"
});
var treeList = $("#ParentGrid").data("kendoTreeList");
// Configure drag-and-drop from TreeList to Grid
treeList.wrapper.kendoDraggable({
filter: "tr",
hint: function (element) {
var item = treeList.dataItem(element);
console.log("treeList.wrapper.kendoDraggable -> ", item);
return element;
},
group: "gridGroup"
});
window.initializeDropTargets();
});
Hi, I'm using a wizard with form component integration, using taghelpers.
The second page will have a dynamic list of phones:
class Phone {
[Required] public string number {get;set;}
[Required] public string country {get;set;} }
I can't find a way to accomplish the following:
How do I declare a loop to display all the phones?
How can I dynamically add more phones to the list, given that most non-form-related tags are invalid inside the form?
I have a custom validator to check the list length, but I don't see how to wire it up, since I haven't figured out how to render the list.
I'd appreciate it if you could point me in the right direction.
Regards,
Hello,
create/update posts an empty model to the controller.
It was working in a very old asp.net mvc project. I setup a new asp.net core project. I spent some hours to fix this, but no luck.
Reading the data source is ok and the data is shown in column 'valuestream'. At the moment for 'Agenda' two values are shown, editable with a mutiselect.
Controller:
public ActionResult ManagerQuestionnaireCreate([DataSourceRequest] DataSourceRequest request, QuestionnaireViewModel rs)
{
....
return Json(new[] { rs }.ToDataSourceResult(request, ModelState));
}
Model:
View:
I need to add charts to a project that doesn't have any. To learn about the Kendo chart control I added sample code to an existing view in the project. My guess is that the problem has to do with the CSS and JavaScript files that the project uses. Projects that I've downloaded that have chart code that works use Bootstrap 3 and Bootstrap 4 while our project uses Bootstrap 5.
This is the code:
<div class="chart-wrapper">
Prior to the most recent version we could use reflection to get the grid name in this method.
We have changed it to pass the grid name, but was wondering if there is a programmatic way of getting the grid name without passing it
public static GridToolBarCommandFactory<T> SuperSearch<T>(this GridToolBarCommandFactory<T> builder, string gridName, string title = "Super Search...") where T : class
I am trying to customize the default presentation of the image of the standard image displayed in the various nodes. I can see that it is defaulting to "full rounded" whereas I would like to use medium rounding.
Can someone point me to how I can accomplish this? I have tried several things but everything tried, so far, is promptly ignored and the default rounded image is displayed.
I like the basic layout except for the rounded images.
Hopefully this makes sense to you folks. Great product, sorry for the nitpicks.
Hello,
We are using older version of Telerik Ui for Asp.net core (2020.2.617), where we are using kenod.window() component. Within this when we inspect close , min and max button they are rendered as <a> tag with role=button and href=#.
When i see the latest version in documentation they are rendered as <button> instead of <a>.
Is that a change recently made? Also , we are asked to change it to button due to accessibility implementation. We understand that we can upgrade our project to latest version , but is there any other way to do so with minimal of code change?