Angluar 實現pdf頁面預覽以及編輯

之前用過一個pdf預覽的lib,并且還支持在線編輯,和直接下載編輯之后的pdf和直接打印,還不錯,記錄下

PdfShowcase

首先安裝依賴

npm install ngx-extended-pdf-viewer

然后引入?

import { NgxExtendedPdfViewerModule } from "ngx-extended-pdf-viewer";
imports: [NgxExtendedPdfViewerModule,],

然后就可以在html中使用了,我是因為項目需求關閉了某些功能,具體哪些功能怎么用就不一一介紹了,看官方文檔就行了。?

<ngx-extended-pdf-viewer[height]="'auto'"[textLayer]="true"[zoom]="zoom"[showSidebarButton]="true"[showFindButton]="true"[showPagingButtons]="false"[showDrawEditor]="true"[showStampEditor]="false"[showTextEditor]="true"[showZoomButtons]="false"[showPresentationModeButton]="false"[showOpenFileButton]="false"[showPrintButton]="false"[showDownloadButton]="true"[showSecondaryToolbarButton]="false"[showRotateCwButton]="false"[showRotateCcwButton]="false"[showHandToolButton]="false"[showScrollingButton]="false"[showSpreadButton]="false"[showPropertiesButton]="false"[src]="file"></ngx-extended-pdf-viewer>

這邊是我的service,直接去后端獲取源文件,然后賦值給[src]就行了?

  getFile(request:any): Observable<any> {return this.http.post(this.getTranslateCVFileUrl,request,{ responseType: 'blob' });}

但是似乎我是用的版本有個bug,就是他第一次展示的時候會顯示不出來,縮小一下就行了,所以我這邊手動修改了下zoom

      this.xxxxService.getFile(id).subscribe((res) => {this.zoom = "90%";this.orgin_file = res;this.file = this.orgin_file;timer(500).subscribe(() => {this.zoom = "100%";});});

?我的后端是python,你們看具體后端是什么修改一下自己的代碼。我這邊suppor了如果是docx就轉換成pdf再返回,如果是pdf就直接把path傳到send_file里面,as_attachment如果是需要瀏覽器彈出下載就True,否則就False

from flask import Response, current_app, send_file  
def get_cv_file(self,filename,ext,as_attch)->Response:app=current_app._get_current_object()root_path=app.config['ROOT_PATH']full_path=os.path.join(root_path, os.path.join(self.upload_path, filename+ext))if not os.path.isfile(full_path):raise FileNotFoundError(ErrorMassage.FILE_NOT_FOUND+full_path)if ext.lower() == FILE_EXT.DOCX:if not as_attch:pdf_path=self._cover_doc_docx_2_pdf(filename,ext,root_path)response=send_file(pdf_path, as_attachment=as_attch)else:response=send_file(full_path, as_attachment=as_attch)elif ext.lower() == FILE_EXT.PDF:response=send_file(full_path, as_attachment=as_attch)return response

?

如果部署nginx遇到了這個問題,可以看我這篇blog:

使用ngx-extended-pdf-viewer 20.0.0報錯pdf-4.1.889.min.mjs:1 Failed to load module script_pdf.mjs:報錯-CSDN博客

還有個需要注意的問題就是,他一個頁面只能繪制一個ngx-extended-pdf-viewer 組件,我還沒探究怎么繪制多個這個組件,動態顯示就直接替換src就可以了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41409.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硅紀元視角 | 中國電信“星辰大模型·軟件工廠”,兩分鐘完成應用開發,效率飛躍!

在數字化浪潮的推動下&#xff0c;人工智能&#xff08;AI&#xff09;正成為塑造未來的關鍵力量。硅紀元視角欄目緊跟AI科技的最新發展&#xff0c;捕捉行業動態&#xff1b;提供深入的新聞解讀&#xff0c;助您洞悉技術背后的邏輯&#xff1b;匯聚行業專家的見解&#xff0c;…

【數據結構】鏈表帶環問題分析及順序表鏈表對比分析

【C語言】鏈表帶環問題分析及順序表鏈表對比分析 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;C語言學習之路 文章目錄 【C語言】鏈表帶環問題分析及順序表鏈表對比分析前言一.順序表和鏈表對比1.1順序表和鏈表的區別1.2緩存利用率&#…

Leetcode 3211. Generate Binary Strings Without Adjacent Zeros

Leetcode 3211. Generate Binary Strings Without Adjacent Zeros 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3211. Generate Binary Strings Without Adjacent Zeros 1. 解題思路 這一題比較簡單&#xff0c;用一個遞歸算法即可實現。 2. 代碼實現 給出python代碼實現…

Linux基礎: 二. Linux的目錄和文件

文章目錄 二. Linux的目錄和文件1.1 目錄概要1.2 目錄詳細說明 二. Linux的目錄和文件 1.1 目錄概要 command&#xff1a;ls / Linux的文件系統像一棵樹一樣&#xff0c;樹干是根目錄&#xff08;/&#xff09;&#xff0c;樹枝是子目錄&#xff0c;樹葉是文件&#xff1b; …

亞信安全發布2024年6月威脅態勢,高危漏洞猛增60%

近日&#xff0c;亞信安全正式發布《2024年6月威脅態勢報告》&#xff08;以下簡稱“報告”&#xff09;&#xff0c;報告顯示&#xff0c;6月份新增信息安全漏洞 1794個&#xff0c;高危漏洞激增60%&#xff0c;涉及0day漏洞占67.67%&#xff1b;監測發現當前較活躍的勒索病毒…

C++多線程學習筆記

創建線程(thread) #include<iostream> #include<thread> using namespace std;// 函數fun&#xff0c;接收一個整型參數并在無限循環中打印遞增的值 void fun(int a) {while(1) {cout << a << "\n"; // 打印自增后的athis_thread::sleep_fo…

應用案例 | 基于物聯網工控屏的工業離心機設備監控系統

案例概況 客戶&#xff1a;博魯班特&#xff08;BROADBENT&#xff09; 應用產品&#xff1a;宏集物聯網工控屏 應用場景&#xff1a;離心機設備監控系統 一、前言 在現代工業生產中&#xff0c;離心機作為關鍵的分離設備&#xff0c;在生產過程中扮演著至關重要的角色。隨…

谷粒商城學習筆記-17-快速開發-逆向工程搭建使用

文章目錄 一&#xff0c;克隆人人開源的逆向工程代碼二&#xff0c;把逆向工程集成到谷粒商城的后臺工程三&#xff0c;以商品服務為例&#xff0c;使用逆向工程生成代碼1&#xff0c;修改逆向工程的配置2&#xff0c;以Debug模式啟動逆向工程3&#xff0c;使用逆向工程生成代碼…

名企面試必問30題(二十四)—— 說說你空窗期做了什么?

回答示例一 在空窗期這段時間&#xff0c;我主要進行了兩方面的活動。 一方面&#xff0c;我持續提升自己的專業技能。我系統地學習了最新的軟件測試理論和方法&#xff0c;深入研究了自動化測試工具和框架&#xff0c;例如 Selenium、Appium 等&#xff0c;并通過在線課程和實…

ISA95-Part4-業務流程的解析與設計思路

MES/MOM系統實現ISA-95標準的業務流程通常遵循以下思路,并包含一系列內容。 一、功能模塊: 1. 需求分析與規劃: - 確定業務流程需求,包括訂單管理、生產調度、庫存控制等,并規劃如何將這些流程與MES/MOM系統集成。 2. 系統集成架構設計: - 設計一個系統集成架構,確保M…

基于B/S模式和Java技術的生鮮交易系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;B/S模式、Java技術 工具&#xff1a;Visual Studio、MySQL數據庫開發工具 系統展示 首頁 用戶注冊…

【Java】詳解String類中的各種方法

創建字符串 常見的創建字符串的三種方式&#xff1a; // 方式一 String str "hello world"; // 方式二 String str2 new String("hello world"); // 方式三 char[] array {a, b, c}; String str3 new String(array); "hello" 這樣的字符串字…

Halcon 產品周圍缺口檢測

*讀取一張圖像read_image (Image, 原圖.jpg)*獲取圖像大小get_image_size(Image, Width, Height)*關閉已經打開的窗口dev_close_window ()*打開新窗口dev_open_window(0, 0, Width, Height, black, WindowHandle) //打開指定大小的窗口*對圖像進行閾值操作threshold (Image, R…

RedHat運維-Linux網絡管理基礎2-NetworkManager與其它

1. 查看NetworkManager接管網卡狀態的命令是_______________________________&#xff1b; 2. 查看NetworkManager接管網卡狀態的命令是_______________________________&#xff1b; 3. 查看NetworkManager接管網卡狀態的命令是_______________________________&#xff1b; 4…

【鏈表】【雙指針】1、合并兩個有序鏈表+2、分隔鏈表+3、刪除鏈表的倒數第N個結點+4、鏈表的中間結點+5、合并兩個鏈表

3道中等2道簡單 數組和字符串打算告一段落&#xff0c;正好最近做的幾乎都是雙指針&#xff0c;所以今天做鏈表&#xff01; 1、合并兩個有序鏈表&#xff08;難度&#xff1a;簡單&#xff09; 該題對應力扣網址 AC代碼 思路簡單 /*** Definition for singly-linked list.…

萬和day01代碼分析

將了數據庫的多表之間的操作&#xff0c;實際應用到JDBC中去。 一共五張表&#xff0c; info存儲的是具體的信息&#xff0c;edu job role 和info都是多對一的關系。 采用的是Java FX&#xff0c;界面采用xml去編寫。 項目理解一 在JavaFX中&#xff0c;ObservableList 是一個…

SCI一區TOP|準隨機分形搜索算法(QRFS)原理及實現【免費獲取Matlab代碼】

目錄 1.背景2.算法原理2.1算法思想2.2算法過程 3.結果展示4.參考文獻5.代碼獲取 1.背景 2024年&#xff0c;LA Beltran受到分形幾何、低差異序列啟發&#xff0c;提出了準隨機分形搜索算法&#xff08;Quasi-random Fractal Search, QRFS&#xff09;。 2.算法原理 2.1算法思…

【網絡安全】實驗三(基于Windows部署CA)

一、配置環境 打開兩臺虛擬機&#xff0c;并參照下圖&#xff0c;搭建網絡拓撲環境&#xff0c;要求兩臺虛擬的IP地址要按照圖中的標識進行設置&#xff0c;并根據搭建完成情況&#xff0c;勾選對應選項。注&#xff1a;此處的學號本人學號的最后兩位數字&#xff0c;1學號100…

Linux 搭建 Kafka 環境 - 詳細教程

目錄 一. Kafka介紹 1. 應用場景 2. 版本對比 二. Kafka安裝 1. 前置環境 &#xff08;1&#xff09;安裝JDK 2. 軟件安裝 &#xff08;3&#xff09;環境變量配置 &#xff08;3&#xff09;服務啟動 三. Console測試 基礎命令 &#xff08;1&#xff09;列出Kafk…

【c++刷題筆記-貪心】day30:56. 合并區間 、 738.單調遞增的數字

56. 合并區間 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;覆蓋區間問題&#xff0c;先排序再判斷邊界 重點&#xff1a;二維數組可以使用back&#xff08;&#xff09;函數直接更換邊界值 class Solution { public:static bool cmp(const vector<int>&a…