提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2024-04-30 10:56:30.947|阅读 12 次
概述:本文将为大家介绍如何使用Kendo UI for Angular PDF Viewer创建一个强大的阅读器,欢迎下载新版体验~
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
如今当用户需要处理PDF文件时,通常不得不下载应用程序或者浏览器插件,控制用户如何与PDF交互并不是一件容易的事。如果我们提供PDF作为内容,用户可以下载它并使用浏览器或PDF本身提供的控件进行交互。然而,一些企业可能希望控制用户使用PDF的方式,以提供更好的体验或在某些条件下限制下载。
构建这样的解决方案需要在后端和前端都付出巨大的努力,然而如果有一种方法可以让您在Angular PDF Viewer中用几行代码来管理PDF交互呢?
Kendo UI for Angular PDFViewer可以帮助大家解决上述的一些问题,它以最佳的方式应用到每个合适的场景中。
P.S:Kendo UI for Angular是专用于Angular开发的专业级Angular组件,这些组件是专门为Angular构建的,没有任何jQuery依赖项。
Kendo UI for Angular 2024 Q1新版下载
为一所大学开发一个应用程序,管理部门希望为学生提供以下功能:
为了满足大学的需求,我们使用Kendo UI for Angular PDFViewer,这个组件提供了大量的功能,当与Angular集成时可提供一个全面的解决方案。
首先,用命令ng new elearning-platform设置Angular应用。
ng new elearning-platform
cd elearning-platform
npm install
Kendo UI提供了一个schematics命令来注册它的Angular PDF Viewer。
ng add @progress/kendo-angular-pdfviewer
i Using package manager: npm
√ Found compatible package version: @progress/kendo-angular-pdfviewer@14.0.0.
√ Package information loaded.
The package @progress/kendo-angular-pdfviewer@14.0.0 will be installed and executed.
Would you like to proceed? Yes
√ Packages successfully installed.
UPDATE src/app/app.module.ts (515 bytes)
UPDATE package.json (1708 bytes)
UPDATE angular.json (3165 bytes)
√ Packages installed successfully.
UPDATE src/main.ts (259 bytes)
UPDATE tsconfig.app.json (294 bytes)
UPDATE tsconfig.spec.json (300 bytes)
我们已经设置好了,现在开始为用户和PDF Viewer定义布局和界面。
首先从app.component.html中删除默认的HTML,添加以下HTML元素:
<h1>Welcome to E-learning Platform</h1> <h2>You can read online and save the state, also download the book (if you agree with the terms)</h2> <select> <option value="angular.pdf">Angular</option> <option value="signals.pdf">Signals</option> </select> <label for="acceptTerms"> Do you agree with the terms of download? </label> <input id="acceptTerms" type="checkbox" />
要添加kendo-pdfviewer和“paywall”横幅,请在导入部分导入PDFViewerModule模块。
import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterOutlet } from '@angular/router'; import {PDFViewerModule} from "@progress/kendo-angular-pdfviewer"; @Component({ selector: 'app-root', standalone: true, imports: [CommonModule, RouterOutlet, PDFViewerModule], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = 'elearning-platform'; }
接下来,添加kendo-pdfviewer和pay-wall元素,这些元素应该只在用户从下拉列表中选择一个选项时出现。为了简化,将它们封装在一个ng容器中。
<ng-container> <kendo-pdfviewer > </kendo-pdfviewer> <div class="pay-wall"> <h1>You reach limit to read </h1> <button>Close</button> </div> </ng-container>
保存后,布局应该是这样的:
我们现在有了一个没有任何交互的布局,在继续之前先在assets目录中创建两个PDF文件——名称与下拉菜单中显示的一致(angular.pdf和signals.pdf)。
其中一个主要特性是能够在用户返回平台时记住他们离开的地方,这意味着当用户打开PDF时,他们应该被带到在上次会话中离开的确切页面。
实现这一点的最简单方法是在浏览器中使用本地存储,然而为了减少app.component中的代码量,我们将创建一个服务来封装保存和存储页码的逻辑。
要生成这个服务,使用Angular CLI命令ng g s services/reader。
ng g s services/reader
CREATE src/app/services/reader.service.spec.ts (357 bytes)
CREATE src/app/services/reader.service.ts (135 bytes)
打开reader.service.ts文件,执行如下操作:
public assetURL = '//localhost:4200/assets/'; private currentPage: number = 1; private storageKey: string = 'book-page'; savePage(page: number) { localStorage.setItem(this.storageKey, page.toString()); } getPage() { const savedPage = localStorage.getItem(this.storageKey) || this.currentPage; return +savedPage; }
reader.service有了第一个版本,让我们将它与HTML标记和Kendo UI PDF查看器连接起来。
现在我们已经准备好了ReaderService,下一步是启用第一个交互并显示PDF。为此,我们需要在app.component.ts文件中工作,并注入ReaderService。
下面是我们将要介绍的内容:
首先,导入ReaderService,并使用Angular的依赖注入将其注入到组件中。
import { Component, inject } from '@angular/core'; import { ReaderService } from './services/reader.service'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], }) export class AppComponent { title = 'elearning-platform'; readerService = inject(ReaderService); ....
接下来,让我们声明必要的变量并实现selectBook方法。在这个方法中,我们将通过组合readerService来更新readerService.assetUrl和bookName。
方法如下:
export class AppComponent { title = 'elearning-platform'; readerService = inject(ReaderService); pdfAssetUrl = ''; bookName!: string; selectBook() { this.pdfAssetUrl = `${this.readerService.assetURL}${this.bookName}`; } }
我们如何将这些变量与方法联系起来,并对变化做出反应?Angular提供了几种方法来监听事件并对变化做出反应,为了响应select元素中的change方法,我们可以使用(change)事件并将其链接到selectBook函数。
如何将选择元素的值链接到bookName变量?别担心,Angular提供了ngModel,它是FormsModule的一部分,它通过双向数据绑定帮助我们对变化做出反应。
<select (change)="selectBook()" [(ngModel)]="bookName"> <option value="angular.pdf">Angular</option> <option value="signals.pdf">Signals</option> </select>
接下来,我们希望响应更改,以便将PDF加载到kendo-pdfviewer组件中。为了实现这一点,我们绑定了url和saveFileName属性。
saveFileName属性允许我们在用户单击下载工具栏时定义文件的名称。
url属性是将PDF绑定到组件的几种方法之一,在本例中,我们提供存储PDF的URL。
最后的代码看起来像:
<kendo-pdfviewer [saveFileName]="bookName" [url]="pdfAssetUrl"> </kendo-pdfviewer>
保存更改,然后重新加载页面并与下拉菜单交互来加载不同的PDF。
是的,我们已经成功加载了PDF!但是,仍然有一些功能需要完成,例如保存页面位置和控制下载选项。篇幅有限,未完待续下期见~
Telerik_KendoUI产品技术交流群:726377843 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都网本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
全新升级的Kendo UI,是创建数据丰富的Web应用程序的最完整UI库。
Kendo UI for Angular完整的Angular UI组件库,助力构建高性能的现代Angular应用。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢