pdf轉ofd之移花接木

文章目錄

  • 1.pdf轉ofd的方法
    • 1.1 spire.pdf.free
    • 1.2 ofdrw
  • 2.移花接木
  • 3.總結

1.pdf轉ofd的方法

1.1 spire.pdf.free

????這個是一個半開源的類庫,免費版本的在轉換的時候會有一個10的限制,所以不推薦使用,具體教程網上都有,這里只是分享有這么一個坑。

image-20250824140411498

1.2 ofdrw

????這個是個國產開源的類庫,只不過它的更新處于停滯的狀態,所依賴的pdfbox(2.x)的版本還比較低

????依賴如下:

<dependency><groupId>org.ofdrw</groupId><artifactId>ofdrw-converter</artifactId><version>2.3.5</version>
</dependency>
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.25</version>
</dependency>

????這種搭配可以正常使用

2.移花接木

????如果把pdfbox的版本升級到3.x那么ofdrw就會報錯使用不了了,所以就需要修改ofdrw的源碼兼容pdfbox3.x的api:

<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.3</version>
</dependency>

????先將ofdrw2.0.25中的org.ofdrw.converter.ofdconverter.PDFConverter類復制放到項目的src/main/java下:

image-20250824143807293

????需要改動的類的源碼位置如下:

image-20250824142907907

????只需要將上面標紅的那個api換成如下的代碼:

PDDocument pdfDoc = Loader.loadPDF(FileUtil.readBytes(filepath.toFile()));

????FileUtil工具類是Hutool里面的引入Hutool的依賴就可以使用這個FileUtil工具類了,很方便,不用自己去寫讀取文件轉byte數據的代碼了。

3.總結

????這也是我在做項目的時候發現升級版本帶來的坑,然后我就去翻源碼,結果我在源碼中找到了一個新的api,修改源碼接上去就可以用了,親測有效,希望我的分享對你有所幫助,請一鍵三連,么么么噠!

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

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

相關文章

用【Coze】實現文案提取+創作

在AI技術飛速發展的當下&#xff0c;打造專屬智能應用成為不少人的向往。今天&#xff0c;就帶大家走進字節跳動的扣子Coze平臺&#xff0c;看看如何借助它搭建智能體&#xff0c;還會介紹AI工作流&#xff0c;以及詳細的Coze搭建步驟&#xff0c;開啟你的AI創作之旅&#xff5…

buuctf——web刷題第5頁

第五頁 目錄 [EIS 2019]EzPOP [WMCTF2020]Make PHP Great Again 2.0 [BSidesCF 2020]Hurdles [安洵杯 2019]iamthinking [GWCTF 2019]mypassword [HFCTF2020]BabyUpload [NewStarCTF 2023 公開賽道]include 0。0 [SWPU2019]Web4 [PASECA2019]honey_shop [Black Watc…

果蔬采摘機器人:自動駕駛融合視覺識別,精準定位,高效作業

在智慧農業的快速發展中&#xff0c;果蔬采摘機器人以其自動駕駛技術與視覺識別技術的完美融合&#xff0c;正逐步成為農業生產中的重要力量。這些機器人不僅實現了對果蔬的精準定位&#xff0c;還顯著提高了采摘效率&#xff0c;展現了強大的技術優勢。一、自動駕駛技術的引領…

2025年職業發展關鍵證書分析:提升專業能力的路徑選擇

在當今職場環境中&#xff0c;專業能力的提升已成為職業發展的重要方面。各類專業證書作為系統學習與能力驗證的方式&#xff0c;受到越來越多職場人士的關注。本文基于當前行業發展趨勢&#xff0c;分析8個在不同領域具有代表性的專業資格認證&#xff0c;為職場人士提供參考信…

【Qt】QCryptographicHash 設置密鑰(Key)

QCryptographicHash 本身不能設置密鑰&#xff08;Key&#xff09;。 它是一個用于計算非密鑰型加密哈希的函數&#xff0c;其設計目的和 HMAC 或加密算法完全不同。 下面我詳細解釋為什么&#xff0c;以及如何正確地實現你可能想要的功能。 1. QCryptographicHash 的核心功能&…

2025板材十大品牌客觀評估報告—客觀分析(三方驗證權威數據)

隨著消費者環保意識提升&#xff0c;板材作為家裝基礎材料的性能指標受到廣泛關注。中國林產工業協會數據顯示&#xff0c;2025年國內環保板材市場規模約860億元&#xff0c;但行業標準執行不一&#xff0c;消費者面臨信息不對稱問題。本報告嚴格依據可驗證的第三方數據&#x…

診斷通信管理(Diagnostic Communication Management)詳解

—— 基于《Specification of Diagnostics AUTOSAR AP R24-11》(SWS_Diagnostics.pdf) 診斷通信管理(Diagnostic Communication Management)是 AUTOSAR 自適應平臺診斷管理(Diagnostic Management,DM)的核心功能模塊之一,位于應用層,承擔 “診斷客戶端與診斷服務器實…

vue拖動排序,vue使用 HTML5 的draggable拖放 API實現內容拖并排序,并更新數組數據

vue拖動排序&#xff0c;vue使用 HTML5 的draggable拖放 API實現內容拖并排序&#xff0c;并更新數組數據 vue使用 HTML5 的draggable拖放 API實現內容拖并排序&#xff0c;并更新數組數據 實現效果實現代碼1.模板部分2. 添加拖拽相關方法3. 在 data 中添加拖拽狀態變量4. 添加…

行內元素塊元素

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>顯示例子</title><style>/* 將行內元素…

算法---動態規劃(持續更新學習)

1.動態規劃的經典問題 &#xff08;1&#xff09;動規基礎&#xff1a;爬樓梯、斐波那契數列 &#xff08;2&#xff09;背包問題&#xff1a;0-1背包&#xff0c;多重背包 &#xff08;3&#xff09;打家劫舍 &#xff08;4&#xff09;股票問題 &#xff08;5&#xff09;子序…

迅睿CMS自定義網站表單:HTML方式調用Select下拉選項數據指南

在迅睿CMS中&#xff0c;當我們需要自定義網站表單并希望以HTML方式調用select下拉選項數據時&#xff08;而非使用系統默認的{$myfield}、{$diyfield}或{$sysfield}模板變量&#xff09;&#xff0c;可以采用以下方法實現。 問題背景 默認情況下&#xff0c;迅睿CMS表單字段通…

k8s--efk日志收集

目錄 環境準備 下載efk軟件包 下載 nfs 設置nfs開機自啟 創建共享存儲目錄 配置共享目錄文件 加載nfs 使共享目錄生效 查看 node節點驗證 共享目錄配置成功 進入efk配置文件目錄 修改deployment.yaml文件 修改為master主節點ip 修改為nfs共享存儲目錄 修改 kibana …

數值分析——算法的穩定性

由于計算時&#xff0c;誤差會有累積&#xff0c;如果是長時間的計算&#xff0c;就會影響最后得到的結果&#xff0c;因此&#xff0c;需要分析一下誤差的影響能否控制&#xff0c;由此就引出了算法的穩定性 數值的穩定性 對于某一種算法&#xff0c;如果初始值有很小的誤差&a…

解密 Kotlin 中的隱藏調度器:Dispatchers.Main.immediate

在日常的 Android 開發中&#xff0c;我們經常使用協程來處理異步任務。你可能已經熟悉了 Dispatchers.Main、Dispatchers.IO 和 Dispatchers.Default&#xff0c;但今天我要介紹一個不太為人知卻極其有用的調度器&#xff1a;Dispatchers.Main.immediate。 一個令人困惑的現象…

I2C多點觸控驅動開發詳解

I2C多點觸控驅動開發詳解 1. 多點觸控技術概述 1.1 觸控技術發展歷程 觸控技術作為人機交互的重要方式&#xff0c;經歷了從單點觸控到多點觸控的演進過程。早期的電阻式觸控屏只能實現單點觸控&#xff0c;限制了用戶體驗。隨著電容式觸控技術的發展&#xff0c;多點觸控成為可…

UE5提升分辨率和幀率的方法

提問&#xff1a;分辨率大概理解就是是否模糊&#xff0c;幀率大概理解就是是否卡頓對嗎 回答 沒錯&#xff0c;一句話總結&#xff1a; 分辨率主要影響“看起來糊不糊”&#xff1b; 幀率與幀時間穩定性主要影響“順不順”。 如何快速提升UE5的分辨率&#xff1f; 是的&…

小狼毫輸入法中讓數字鍵盤上的數字鍵不再選擇候選詞而是與原始輸入一起直接上屏

使用搜狗輸入法的雙拼時&#xff0c;輸入“womf”然后按下主鍵盤上的數字1&#xff0c;會選擇排名第一的候選詞上屏&#xff08;大概率是“我們&#xff09;&#xff0c;輸入“womf”然后按下數字鍵盤上的數字1&#xff0c;不會選擇候選詞&#xff0c;而是將輸入文本變成“womf…

【C++】類和對象(終章)

作者主頁&#xff1a;lightqjx 本文專欄&#xff1a;C 目錄 一、構造函數 1. 構造函數體賦值 2. 初始化列表 &#xff08;1&#xff09;基本概念 &#xff08;2&#xff09;使用特性 3. explicit關鍵字 二、static成員 1. 概念 2. 特性 3. 應用 三、友元 1. 友元函…

水果目標檢測[2]:ALAD-YOLO:一種輕便、精確的蘋果葉病檢測儀

原文&#xff1a; 目錄 摘要&#xff1a; ALAD-YOLO的改進&#xff1a; 1.輕量化主干網絡&#xff1a; 2.改進的 Neck 網絡&#xff1a; 3.改進的 SPP 模塊&#xff1a; 4.注意力機制引入&#xff1a; 實驗結果 數據&#xff1a; 1 數據采集 (Data Collection) 2 數…

Let‘s Encrypt證書自動續期

證書失效后瀏覽器可以看到錯誤提示&#xff0c;以及證書過期時間。 排查服務器證書續期配置 1. 證書未正確安裝或配置 確保在阿里云服務器上部署的 Let’s Encrypt 證書已經正確安裝。你可以通過以下步驟確認&#xff1a; 使用命令 sudo certbot certificates 檢查證書是否正確…