Skip to content
78 changes: 78 additions & 0 deletions modules/ROOT/examples/live-demos/exportpdf-v2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<textarea id="exportpdf-v2">
<h1>Streamline - The Next-Gen Learning Management System (LMS)</h1>
<p>This document provides a comprehensive overview of the Streamline Learning Management System (LMS) project.</p>

<figure class="image">
<img src="https://images.unsplash.com/photo-1522199755839-a2bacb67c546?q=80&amp;w=2072&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.0.3&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A laptop on a polished wood table with a bronze cup, creating a warm workspace ambiance" width="573" height="429">
<figcaption>An elegant workspace featuring a laptop on a polished wood table, accompanied by a bronze cup, creating a warm and productive atmosphere.</figcaption>
</figure>

<p>Photo by <a href="https://unsplash.com/@anete_lusina">Anete Lūsiņa</a> on <a href="https://unsplash.com">Unsplash</a></p>

<h2>Project Goals</h2>
<p>Streamline aims to revolutionize online learning by offering a robust and user-friendly platform for educators and learners. The primary goals include:</p>
<ul>
<li><strong>Empowering educators</strong> with intuitive tools for content creation, course management, and student assessment.</li>
<li><strong>Enhancing the learning experience for students</strong> through engaging content delivery, interactive features, and personalized learning paths.</li>
<li><strong>Increasing accessibility and scalability</strong> to cater to diverse learning needs and support a growing user base.</li>
</ul>

<h2>System Features</h2>
<p>Streamline is designed to enrich the learning process through a comprehensive set of features:</p>
<ul>
<li><strong>Content Management System (CMS)</strong>: An intuitive interface enabling educators to create and upload various learning materials, including videos, documents, presentations, and quizzes.</li>
<li><strong>Course Management Tools</strong>: Structure courses with clear objectives, organize content modules, and manage student enrollments effectively.</li>
<li><strong>Interactive Learning Activities</strong>: Includes gamification, discussion forums, collaborative assignments, and more to maintain student engagement.</li>
<li><strong>Assessment & Analytics</strong>: Tools for creating quizzes, tracking student progress, generating reports, and identifying improvement areas.</li>
<li><strong>Personalized Learning Paths</strong>: Machine learning algorithms provide tailored content recommendations based on student progress and needs.</li>
</ul>

<h3>Table 1: Streamline - Target User Groups</h3>
<table style="border-collapse: collapse; width: 100%;" border="1">
<thead>
<tr>
<th style="text-align: left;">User Group</th>
<th style="text-align: left;">Benefits</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Educators</strong></td>
<td>Easy content creation, efficient course management, and valuable student insights.</td>
</tr>
<tr>
<td><strong>Learners</strong></td>
<td>Engaging learning experience, personalized learning paths, and interactive collaboration.</td>
</tr>
<tr>
<td><strong>Administrators</strong></td>
<td>Scalable platform management, user access control, and comprehensive reporting tools.</td>
</tr>
</tbody>
</table>

<h2>Technology Stack</h2>
<p>Streamline will leverage a robust technology stack to ensure performance, scalability, and security:</p>
<ul>
<li><strong>Front-End</strong>: ReactJS for a responsive and user-friendly interface.</li>
<li><strong>Back-End</strong>: Node.js for efficient server-side operations.</li>
<li><strong>Database</strong>: MongoDB for flexible and scalable data storage.</li>
<li><strong>Cloud Platform</strong>: Amazon Web Services (AWS) for reliable hosting and infrastructure.</li>
</ul>

<h2>Project Timeline</h2>
<ul>
<li><strong>Phase 1 (2 Months)</strong>: System design, core functionalities development, and front-end prototype creation.</li>
<li><strong>Phase 2 (3 Months)</strong>: Integration of advanced features like personalized learning and assessment tools.</li>
<li><strong>Phase 3 (1 Month)</strong>: Rigorous testing, bug fixing, and UI refinement.</li>
<li><strong>Phase 4 (Ongoing)</strong>: Deployment, user feedback collection, and continuous iterative development.</li>
</ul>

<blockquote>
<p><em>This timeline is preliminary and may be subject to change.</em></p>
</blockquote>

<h2>Conclusion</h2>
<p>Streamline LMS is poised to become a game-changer in online education. By empowering educators and enhancing student experiences, it aims to make effective and accessible learning available to all.</p>
</textarea>
31 changes: 31 additions & 0 deletions modules/ROOT/examples/live-demos/exportpdf-v2/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
tinymce.init({
selector: 'textarea#exportpdf-v2',
height: '800px',
plugins: [
"exportpdf", "advlist", "anchor", "autolink", "charmap", "code", "codesample", "fullscreen",
"help", "image", "insertdatetime", "link", "lists", "media",
"preview", "searchreplace", "table", "visualblocks",
],
toolbar: "undo redo | exportpdf | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
image_caption: true,
exportpdf_converter_options: {
version: '2',
document: {
size: 'A4',
orientation: 'portrait',
margins: {
top: '1in',
right: '1in',
bottom: '1in',
left: '1in',
enable_mirror_margins: true
}
},
metadata: {
title: 'Streamline LMS Overview',
author: 'TinyMCE',
subject: 'Learning Management System',
keywords: [ 'LMS', 'education', 'Streamline' ]
}
}
});
92 changes: 89 additions & 3 deletions modules/ROOT/examples/live-demos/exportpdf/index.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
<textarea id="exportpdf">
<div style="display: flex; gap: 20px; width: 100%;">
<div style="flex: 1; min-width: 0;">
<h2>Flat format (backwards compatible)</h2>
<textarea class="exportpdf-flat" style="width: 100%;">
<h1>Streamline - The Next-Gen Learning Management System (LMS)</h1>
<p>This document provides a comprehensive overview of the Streamline Learning Management System (LMS) project.</p>

<figure class="image">
<img src="https://images.unsplash.com/photo-1522199755839-a2bacb67c546?q=80&amp;w=2072&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.0.3&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A laptop on a polished wood table with a bronze cup, creating a warm workspace ambiance" width="573" height="429">
alt="A laptop on a polished wood table with a bronze cup, creating a warm workspace ambiance" style="width: 100%; height: auto;">
<figcaption>An elegant workspace featuring a laptop on a polished wood table, accompanied by a bronze cup, creating a warm and productive atmosphere.</figcaption>
</figure>

Expand Down Expand Up @@ -75,4 +78,87 @@ <h2>Project Timeline</h2>

<h2>Conclusion</h2>
<p>Streamline LMS is poised to become a game-changer in online education. By empowering educators and enhancing student experiences, it aims to make effective and accessible learning available to all.</p>
</textarea>
</textarea>
</div>
<div style="flex: 1; min-width: 0;">
<h2>Nested format (v2)</h2>
<textarea class="exportpdf-nested" style="width: 100%;">
<h1>Streamline - The Next-Gen Learning Management System (LMS)</h1>
<p>This document provides a comprehensive overview of the Streamline Learning Management System (LMS) project.</p>

<figure class="image">
<img src="https://images.unsplash.com/photo-1522199755839-a2bacb67c546?q=80&amp;w=2072&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.0.3&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A laptop on a polished wood table with a bronze cup, creating a warm workspace ambiance" style="width: 100%; height: auto;">
<figcaption>An elegant workspace featuring a laptop on a polished wood table, accompanied by a bronze cup, creating a warm and productive atmosphere.</figcaption>
</figure>

<p>Photo by <a href="https://unsplash.com/@anete_lusina">Anete Lūsiņa</a> on <a href="https://unsplash.com">Unsplash</a></p>

<h2>Project Goals</h2>
<p>Streamline aims to revolutionize online learning by offering a robust and user-friendly platform for educators and learners. The primary goals include:</p>
<ul>
<li><strong>Empowering educators</strong> with intuitive tools for content creation, course management, and student assessment.</li>
<li><strong>Enhancing the learning experience for students</strong> through engaging content delivery, interactive features, and personalized learning paths.</li>
<li><strong>Increasing accessibility and scalability</strong> to cater to diverse learning needs and support a growing user base.</li>
</ul>

<h2>System Features</h2>
<p>Streamline is designed to enrich the learning process through a comprehensive set of features:</p>
<ul>
<li><strong>Content Management System (CMS)</strong>: An intuitive interface enabling educators to create and upload various learning materials, including videos, documents, presentations, and quizzes.</li>
<li><strong>Course Management Tools</strong>: Structure courses with clear objectives, organize content modules, and manage student enrollments effectively.</li>
<li><strong>Interactive Learning Activities</strong>: Includes gamification, discussion forums, collaborative assignments, and more to maintain student engagement.</li>
<li><strong>Assessment & Analytics</strong>: Tools for creating quizzes, tracking student progress, generating reports, and identifying improvement areas.</li>
<li><strong>Personalized Learning Paths</strong>: Machine learning algorithms provide tailored content recommendations based on student progress and needs.</li>
</ul>

<h3>Table 1: Streamline - Target User Groups</h3>
<table style="border-collapse: collapse; width: 100%;" border="1">
<thead>
<tr>
<th style="text-align: left;">User Group</th>
<th style="text-align: left;">Benefits</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Educators</strong></td>
<td>Easy content creation, efficient course management, and valuable student insights.</td>
</tr>
<tr>
<td><strong>Learners</strong></td>
<td>Engaging learning experience, personalized learning paths, and interactive collaboration.</td>
</tr>
<tr>
<td><strong>Administrators</strong></td>
<td>Scalable platform management, user access control, and comprehensive reporting tools.</td>
</tr>
</tbody>
</table>

<h2>Technology Stack</h2>
<p>Streamline will leverage a robust technology stack to ensure performance, scalability, and security:</p>
<ul>
<li><strong>Front-End</strong>: ReactJS for a responsive and user-friendly interface.</li>
<li><strong>Back-End</strong>: Node.js for efficient server-side operations.</li>
<li><strong>Database</strong>: MongoDB for flexible and scalable data storage.</li>
<li><strong>Cloud Platform</strong>: Amazon Web Services (AWS) for reliable hosting and infrastructure.</li>
</ul>

<h2>Project Timeline</h2>
<ul>
<li><strong>Phase 1 (2 Months)</strong>: System design, core functionalities development, and front-end prototype creation.</li>
<li><strong>Phase 2 (3 Months)</strong>: Integration of advanced features like personalized learning and assessment tools.</li>
<li><strong>Phase 3 (1 Month)</strong>: Rigorous testing, bug fixing, and UI refinement.</li>
<li><strong>Phase 4 (Ongoing)</strong>: Deployment, user feedback collection, and continuous iterative development.</li>
</ul>

<blockquote>
<p><em>This timeline is preliminary and may be subject to change.</em></p>
</blockquote>

<h2>Conclusion</h2>
<p>Streamline LMS is poised to become a game-changer in online education. By empowering educators and enhancing student experiences, it aims to make effective and accessible learning available to all.</p>
</textarea>
</div>
</div>
34 changes: 33 additions & 1 deletion modules/ROOT/examples/live-demos/exportpdf/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tinymce.init({
selector: 'textarea#exportpdf',
selector: 'textarea.exportpdf-flat',
height: '800px',
plugins: [
"exportpdf", "advlist", "anchor", "autolink", "charmap", "code", "codesample", "fullscreen",
Expand All @@ -16,3 +16,35 @@ tinymce.init({
margin_left: '1in'
}
});

tinymce.init({
selector: 'textarea.exportpdf-nested',
height: '800px',
plugins: [
"exportpdf", "advlist", "anchor", "autolink", "charmap", "code", "codesample", "fullscreen",
"help", "image", "insertdatetime", "link", "lists", "media",
"preview", "searchreplace", "table", "visualblocks",
],
toolbar: "undo redo | exportpdf | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
image_caption: true,
exportpdf_converter_options: {
version: '2',
document: {
size: 'A4',
orientation: 'portrait',
margins: {
top: '1in',
right: '1in',
bottom: '1in',
left: '1in',
enable_mirror_margins: true
}
},
metadata: {
title: 'Streamline LMS Overview',
author: 'TinyMCE',
subject: 'Learning Management System',
keywords: [ 'LMS', 'education', 'Streamline' ]
}
}
});
13 changes: 8 additions & 5 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -277,11 +277,14 @@
**** xref:mediaembed-server-config.adoc[Configure Enhanced Media Embed Server]
**** xref:mediaembed-server-integration.adoc[Integrate Enhanced Media Embed Server]
*** xref:advtable.adoc[Enhanced Tables]
*** xref:exportpdf.adoc[Export to PDF]
**** xref:html-to-pdf-converter-api.adoc[HTML to PDF Converter API]
**** JWT Authentication
***** xref:export-to-pdf-with-jwt-authentication-nodejs.adoc[Node.js]
***** xref:export-to-pdf-with-jwt-authentication-php.adoc[PHP]
*** Export to PDF
**** xref:exportpdf.adoc[Export to PDF]
***** xref:html-to-pdf-converter-api-v2.adoc[HTML to PDF Converter API]
***** JWT Authentication
****** xref:export-to-pdf-v2-with-jwt-authentication-nodejs.adoc[Node.js (8.4.0+)]
****** xref:export-to-pdf-v2-with-jwt-authentication-php.adoc[PHP (8.4.0+)]
****** xref:export-to-pdf-with-jwt-authentication-nodejs.adoc[Node.js (pre-8.4.0)]
****** xref:export-to-pdf-with-jwt-authentication-php.adoc[PHP (pre-8.4.0)]
*** xref:exportword.adoc[Export to Word]
**** xref:html-to-docx-converter-api.adoc[HTML to DOCX Converter API]
**** JWT Authentication
Expand Down
14 changes: 14 additions & 0 deletions modules/ROOT/pages/8.4.0-release-notes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,19 @@ For information on the **<Open source plugin name>** plugin, see xref:<plugincod

The following premium plugin updates were released alongside {productname} {release-version}.

=== Export to PDF

The {productname} {release-version} release includes an accompanying release of the **Export to PDF** premium plugin.

**Export to PDF** includes the following addition.

==== exportpdf supports API version 2 converter options
// #TINY-13700

`{productname}` `{release-version}` adds support for version `2` of the `exportpdf` API through `exportpdf_converter_options`. Version `1` remains the default for backward compatibility. The new nested structure organizes options under `document`, `headers`, `footers`, `metadata`, `security`, and `signature`, enabling per-page headers and footers, PDF metadata, password protection, and certificate-based signing.

For information on the **Export to PDF** plugin, see xref:exportpdf.adoc[Export to PDF].

=== Media Optimizer

The {productname} {release-version} release includes an accompanying release of the **Media Optimizer** premium plugin.
Expand Down Expand Up @@ -199,6 +212,7 @@ In {productname} {release-version}, a new xref:non-editable-content-options.adoc

In {productname} {release-version}, the new xref:custom-view.adoc#view_show[`+view_show+`] option allows specifying which view to display when the editor is initialized. The option behaves similarly to `+sidebar_show+` but takes precedence for views; both sidebars and views can be configured to show on init.


[[changes]]
== Changes

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
= {pluginname} with JWT authentication (Node.js) Guide
:plugincode: exportpdf
:pluginname: Export to PDF
:navtitle: JWT Authentication setup for {pluginname}
:description: Guide on how to set up JWT authentication for exporting PDF files with {pluginname} using Node.js
:keywords: jwt, authentication, exportpdf, pdf, node.js


include::partial$auth/document-converters/nodejs/intro-and-prerequisites.adoc[]

[NOTE]
====
This guide uses the nested format (`version: '2'`) for `exportpdf_converter_options`. Requires {productname} 8.4.0 or newer. For full option documentation, see xref:exportpdf.adoc[Export to PDF]. For integrators on older versions, see xref:export-to-pdf-with-jwt-authentication-nodejs.adoc[JWT Authentication setup for Export to PDF (Node.js) – flat format].
====

include::partial$auth/document-converters/nodejs/initial-project-setup.adoc[]

== Setup

=== Generate a Public/Private Key Pair

include::partial$auth/document-converters/jwt-setup-document-converters.adoc[leveloffset=+2]

include::partial$auth/document-converters/nodejs/server-setup-jwt.adoc[]

=== Web Page (public/index.html)

Inside the `public` folder where you created the `index.html` file add the HTML setup code.

[source,html]
----
<!DOCTYPE html>
<html>
<head>
<title>TinyMCE with Export to PDF</title>
<script
src="https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js"
referrerpolicy="origin"
crossorigin="anonymous">
</script>
<script>
tinymce.init({
selector: 'textarea',
plugins: 'exportpdf',
toolbar: 'exportpdf',
exportpdf_converter_options: {
version: '2',
document: {
size: 'Letter',
margins: {
top: '1in',
right: '1in',
bottom: '1in',
left: '1in'
}
}
},

// exportpdf_token_provider fetches a token from the `/jwt` endpoint.
exportpdf_token_provider: () => {
return fetch('http://localhost:3000/jwt', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
}).then(response => response.json());
},
});
</script>
</head>
<body>
<h1>TinyMCE Export to PDF Demo</h1>
<textarea>
Welcome to TinyMCE! Try the Export to PDF feature.
</textarea>
</body>
</html>
----

include::partial$auth/document-converters/nodejs/configuration-steps.adoc[]

== Further configuration

For additional options such as per-page headers and footers, PDF metadata, and security settings, see the xref:exportpdf.adoc#exportpdf-converter-options[`exportpdf_converter_options`] section on the Export to PDF plugin page.
Loading
Loading