Unplanned
Last Updated: 26 Mar 2024 13:33 by Raymond

Bug report

Reproduction of the problem

  1. Initialize a PDFViewer and add a button that calls a controller action on click.
<div id="pdfViewer">
</div>

<script type="text/javascript">
    $("#pdfViewer").kendoPDFViewer({
        pdfjsProcessing: {
            file: ""
        }
    });

    function loadFile() {
        $("#pdfViewer").data("kendoPDFViewer").fromFile("@Url.Action("GetPDF", "Home")");
    }
</script>
  1. Implement an action that returns a .pdf file or occasionally returns HttpNotFoundResult:
public ActionResult GetPDF()
{

    var name = "sample.pdf";
    string path = Server.MapPath("/Content/pdf/sample.pdf");

    //generate a random boolean:
    Random rng = new Random();
    bool randomBool = rng.Next(0, 2) > 0;
            
    if (randomBool)
    {
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, name);
    }
    else
    {
        return new HttpNotFoundResult("File not found.");
    }
}

Current behavior

In the case where the request returns HttpNotFoundResult, a number of js errors are thrown:

util.js:417 Uncaught (in promise)

The user loses the ability to load a file, because subsequent attempts to load a file by clicking the button result in another js exception:

api.js:1114 Uncaught TypeError: Cannot read properties of null (reading 'sendWithStream')

Expected/desired behavior

The component should show a message that a file is not found, without throwing js exceptions and should not become unusable after a failed attempt to load a file.

Environment

  • Kendo UI version: 2024.1.319
  • jQuery version: x.y
  • Browser: [all]
Unplanned
Last Updated: 05 Apr 2024 08:52 by ADMIN

Bug report

Using the PDFViewer with the latest version of PDF.js (3.9.179) throws js exceptions. Version 3.4.120 is the last one, with which no js exception is thrown.

Reproduction of the problem

Dojo example: https://dojo.telerik.com/IHedIhur/3

  1. Open the devtools consolve and run the example.

Current behavior

The file is loaded, however, js exceptions are thrown:

The --scale-factor CSS-variable must be set, to the same value as viewport.scale, either on the container-element itself or higher up in the DOM. text_layer.js:480:14

Expected/desired behavior

No js exceptions when using PDF.js versions newer than v3.4.120.

Environment

  • Kendo UI version: 2023.2.718
  • jQuery version: x.y
  • Browser: [all]
Declined
Last Updated: 03 Sep 2021 13:29 by ADMIN
Created by: Mugurel
Comments: 1
Category: PDFViewer
Type: Bug Report
0

I load a pdf on a PDFViewer component using loadDefault function, but Open event is not fired.

Also, I want to scroll to the end of the document and for that, I need to retrieve the count of the pages and activate the last page in the render event, even it's called multiple times.

How can I get the count of the pages and scroll to the end of the .pdf document after it is loaded?

    @(Html.Kendo().PDFViewer().Name("documentViewer")
        .PdfjsProcessing(pdf => pdf.File(Url.Content("~/Content/data/default.pdf")))
        .Events(e => e
            .Error("(function(e) { onDocumentViewerError(e); })")
            .Render("(function(e) { onDocumentViewerRender(e); })")
            .Open("(function(e) { onDocumentViewerOpen(e); })")
        )
    )
...
<script type="text/javascript">
...

function loadDefault() {
    var docUrl = window.location.origin + window.location.pathname + "Content/data/default.pdf";

    var pdfViewer = $("#documentViewer").data("kendoPDFViewer");
    pdfViewer.fromFile(docUrl);
 }

onDocumentViewerRender = function(e) {
    console.log("render");

    if (goToEnd) {
         goToEnd = false;

         setTimeout(function () {
              var pdfViewer = $("#documentViewer").data("kendoPDFViewer");
              pdfViewer.activatePage(pagesCount); // how to get pagesCount
         }, 2000);
    }
}

onDocumentViewerOpen = function(e) {
    console.log("open"); // not shown in Console
}
...
</script>
Completed
Last Updated: 07 Sep 2022 15:21 by ADMIN
Release 2022.R3

Bug report

Reproduction of the problem

Reproducible in the demos: https://demos.telerik.com/kendo-ui/pdfviewer/index

  1. Shrink the browser window so that the zoom tool goes into the overflow menu.
  2. Click on the overflow button to open the menu.

Current behavior

The zoom tool is disabled.

Expected/desired behavior

The zoom tool is enabled.

Environment

  • Kendo UI version: 2021.1.330
  • jQuery version: x.y
  • Browser: [all]
Completed
Last Updated: 14 Oct 2020 08:36 by ADMIN
Release 2020.R3.SP.next
Created by: Margarita
Comments: 0
Category: PDFViewer
Type: Bug Report
0

Bug report

There is empty title attribute of PDFViewer zoom level combobox

Reproduction of the problem

  1. Go to https://demos.telerik.com/kendo-ui/pdfviewer/index
  2. Inspect the zoom level combobox

Current behavior

Empty "title" attribute

Expected/desired behavior

The "title" attribute of the combobox explains the purpose of the combobox, e. g. Zoom level combobox

Environment

  • Kendo UI version: 2020.2.617
  • Browser: all
Completed
Last Updated: 18 Jan 2021 09:09 by ADMIN
Release 2021.R1
Created by: Ken
Comments: 0
Category: PDFViewer
Type: Bug Report
5

Bug report

A server side exception:
System.OverflowException: 'Value was either too large or too small for a Double.'
is thrown on attempting to serialize an existing .pdf file converted to FixedDocument.

Reproduction of the problem

  1. Use the DPL Processing demo of the PDFViewer in the MVC demos project.
  2. Instead of the default sample.pdf load the Development Plan.pdf file provided in Ticket ID: 1467984
public ActionResult GetInitialPdf(int? pageNumber)
{
    //exception with Development plan.pdf file:
    string filePath = Path.Combine(Server.MapPath("~/Content/web/pdfViewer"), "Development Plan.pdf");
    //it works with the sample.pdf file:
    //string filePath = Path.Combine(Server.MapPath("~/App_Data"), "sample.pdf");
    FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
    JsonResult jsonResult;
    FixedDocument doc = FixedDocument.Load(stream);

    if (pageNumber == null)
    {
        jsonResult = Json(doc.ToJson(), JsonRequestBehavior.AllowGet);
    }
    else
    {
        jsonResult = Json(doc.GetPage((int)pageNumber), JsonRequestBehavior.AllowGet);
    }

    jsonResult.MaxJsonLength = int.MaxValue;
    return jsonResult;
}

Current behavior

The exception is thrown during the FixedDocument JSON serialization:

doc.ToJson()

at the following place: ConvertToList method in ArrayExtension class (Telerik.Web.PDF namespace)

Expected/desired behavior

No exceptions are thrown during serialization.

Environment

  • Kendo UI version: 2020.2.513
  • jQuery version: x.y
  • Browser: [all]
Unplanned
Last Updated: 04 Nov 2019 15:06 by ADMIN

Bug report
Open a pdf file with links in PDF Viewer. Links are not clickable.

Reproduction of the problem
Open the demo for the PDF Viewer
Open a file, containing links
Click on a link

Current behavior
Clicking on a link does not redirect to the page

Expected/desired behavior
Clicking on a link should redirect to the link.

Environment
Kendo UI version: 2019.3.1023

Browser: [all]

Completed
Last Updated: 16 Sep 2019 14:23 by ADMIN
Release 2019.R3

Bug report

The toolbar.click is not serialized correctly when a custom button is added to the ToolBar of the widget. Thus, the click event is not being executed.

Reproduction of the problem

@(Html.Kendo().PDFViewer()
    .Name("test")
    .PdfjsProcessing(pdf => pdf.File(""))
        .Toolbar(t => t.Items(i =>
            {
            i.Add().Name("Open").Id("Open").Command("OpenCommand").Type("button").Icon("folder-open");
            i.Add().Name("Print").Id("Print").Type("button").Icon("print").Click("onPrintClick");
        }))
        .Height(500)
)

<script>
   function onPrintClick(e) {
        alert(e);
    }
</script>

Current behavior

toolbar is not serialized correctly.

Expected/desired behavior

toolbar.click should be serialized correctly.

Environment

  • Kendo UI version: 2019.2.516
  • Browser: [all]