Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!DOCTYPE html><html lang="en"><head>
<title>EJ2 PDF Viewer</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Typescript PDF Viewer Control">
<meta name="author" content="Syncfusion">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-base/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-pdfviewer/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-buttons/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-popups/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-navigations/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-dropdowns/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-lists/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-inputs/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-splitbuttons/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/30.1.37/ej2-notifications/styles/material.css" rel="stylesheet">


<!-- Essential JS 2 PDF Viewer's script -->
<script src="https://cdn.syncfusion.com/ej2/30.1.37/dist/ej2.min.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>

<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="pdfViewer" style="height:500px;width:100%;"></div>
</div>


<script>
var ele = document.getElementById('container');
if(ele) {
ele.style.visibility = "visible";
}
</script>
<script src="index.js" type="text/javascript"></script>
</body></html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
// Render the PDF viewer control
var toolItem1 = {
prefixIcon: 'e-icons e-transform-left',
id: 'rotateCounterclockwise',
tooltipText: 'Custom toolbar item',
};
var toolItem2 = {
prefixIcon: 'e-icons e-transform-right',
id: 'rotateClockwise',
tooltipText: 'Custom toolbar item',
};
var viewer = new ej.pdfviewer.PdfViewer({
documentPath: 'https://cdn.syncfusion.com/content/pdf/form-designer.pdf',
resourceUrl: 'https://cdn.syncfusion.com/ej2/30.1.37/dist/ej2-pdfviewer-lib',
toolbarSettings: {
toolbarItems: [
toolItem1,
toolItem2,
'OpenOption',
'PageNavigationTool',
'MagnificationTool',
'PanTool',
'SelectionTool',
'SearchOption',
'PrintOption',
'DownloadOption',
'UndoRedoTool',
'AnnotationEditTool',
'FormDesignerEditTool',
'CommentTool',
'SubmitForm',
],
},
});
ej.pdfviewer.PdfViewer.Inject(
ej.pdfviewer.Toolbar,
ej.pdfviewer.Magnification,
ej.pdfviewer.BookmarkView,
ej.pdfviewer.ThumbnailView,
ej.pdfviewer.TextSelection,
ej.pdfviewer.TextSearch,
ej.pdfviewer.Print,
ej.pdfviewer.Navigation,
ej.pdfviewer.LinkAnnotation,
ej.pdfviewer.Annotation,
ej.pdfviewer.FormFields,
ej.pdfviewer.FormDesigner,
ej.pdfviewer.PageOrganizer
);

viewer.appendTo('#pdfViewer');
//Handle toolbar button click events
viewer.toolbarClick = function (args) {
// Rotate Clockwise
if (args.item && args.item.id === 'rotateClockwise') {
viewer.saveAsBlob().then(function (value) {
var reader = new FileReader();
reader.readAsDataURL(value);
reader.onload = () => {
//convert blob to base64 and load into PdfDocument
var base64 = reader.result.split('base64,')[1];
let pdfDocument = new ej.pdf.PdfDocument(base64);
//Get the first page and increment rotation
let page = pdfDocument.getPage(0); // Provide the required page number index here
var rotation = page.rotation + 1;
if (rotation > 4) {
rotation = 0;
}
page.rotation = rotation;
// Save and reload the rotated PDF
pdfDocument.saveAsBlob().then((value) => {
var reader = new FileReader();
reader.readAsDataURL(value.blobData);
reader.onload = () => {
var base64data = reader.result;
console.log(base64data);
viewer.load(base64data);
};
});
};
});
}
// Rotate Counterclockwise
else if (args.item && args.item.id === 'rotateCounterclockwise') {
viewer.saveAsBlob().then(function (value) {
var reader = new FileReader();
reader.readAsDataURL(value);
reader.onload = () => {
// Convert blob to base64 and load into PdfDocument
var base64 = reader.result.split('base64,')[1];
let pdfDocument = new ej.pdf.PdfDocument(base64);
//Get the first page and decrement rotation
let page = pdfDocument.getPage(0); // Provide the required page number index here
var rotation = page.rotation - 1;
if (rotation < 0) {
rotation = 3;
}
page.rotation = rotation;
// Save and reload the rotated PDF
pdfDocument.saveAsBlob().then((value) => {
var reader = new FileReader();
reader.readAsDataURL(value.blobData);
reader.onload = () => {
var base64data = reader.result;
console.log(base64data);
viewer.load(base64data);
};
});
};
});
}
};