整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          探索辦公軟件PDF編輯器PDF與HTML轉換技巧,駕

          探索辦公軟件PDF編輯器PDF與HTML轉換技巧,駕馭PDF格式轉換功能

          數字化時代,我們經常需要將文件在不同的格式之間進行轉換。其中,將PDF文件轉換為HTML網頁或將HTML網頁轉換為PDF文件是常見的需求。然而,手動一個一個進行轉換非常耗時且繁瑣。為了解決這個問題,提升我們的工作效率,我向大家推薦一款強大的軟件——首助編輯高手

          1.它是一款功能全面的軟件,比如AI文章創作、魔法繪圖、自動粘貼文本等強大功能,特別是它支持PDF文件批量轉HTML,以及HTML網頁批量轉PDF。不論是需要將PDF文件轉換為HTML網頁以方便網頁展示,還是需要將HTML網頁轉換為PDF文件以方便打印或共享,都能幫助您輕松實現。

          2.軟件提供了直觀友好的用戶界面和簡單易懂的操作步驟,使得轉換過程變得簡單而快捷。

          3.首先,支持PDF文件批量轉HTML。您只需選擇需要轉換的PDF文件,設置輸出目錄和格式選項,

          4.點擊轉換按鈕,軟件將自動將PDF文件轉換為HTML網頁。這個功能非常適合將PDF文檔發布到網頁上,方便在線閱讀和分享。

          5.其次,也支持HTML網頁批量轉PDF。您可以選擇需要轉換的HTML網頁,設置輸出目錄和格式選項,然后點擊轉換按鈕,軟件將自動將HTML網頁轉換為高質量的PDF文件。

          6.此外,還提供了其他實用的功能。例如,您可以在轉換過程中自定義輸出設置,支持將心文件保存在原文件相同位置、指定位置。

          總而言之,它是一款功能強大的轉換軟件。其支持PDF文件批量轉HTML和HTML網頁批量轉PDF,讓您的文件轉換過程變得更加高效和便捷。不論是個人用戶還是商業用戶,無論您是需要將PDF文件轉換為HTML網頁,還是需要將HTML網頁轉換為PDF文件,首助編輯高手都能滿足您的需求。

          avaScript大文件上傳解決方案實例代碼,JavaScript大文件上傳解決方案,JavaScript大文件上傳實例,JavaScript大文件上傳思路,JavaScript大文件分塊上傳,JavaScript大文件分片上傳,JavaScript大文件加密上傳,JavaScript大文件批量上傳,JavaScript文件夾上傳,JavaScript文件夾批量上傳,


          對于大文件的處理,無論是用戶端還是服務端,如果一次性進行讀取發送、接收都是不可取,很容易導致內存問題。所以對于大文件上傳,采用切塊分段上傳

          從上傳的效率來看,利用多線程并發上傳能夠達到最大效率。

          文件上傳頁面的前端可以選擇使用一些比較好用的上傳組件,例如百度的開源組件WebUploader,這些組件基本能滿足文件上傳的一些日常所需功能,如異步上傳文件,文件夾,拖拽式上傳,黏貼上傳,上傳進度監控,文件縮略圖,甚至是大文件斷點續傳,大文件秒傳。

          在web項目中上傳文件夾現在已經成為了一個主流的需求。在OA,或者企業ERP系統中都有類似的需求。上傳文件夾并且保留層級結構能夠對用戶行成很好的引導,用戶使用起來也更方便。能夠提供更高級的應用支撐。

          該項目核心就是文件分塊上傳。前后端要高度配合,需要雙方約定好一些數據,才能完成大文件分塊,我們在項目中要重點解決的以下問題。

          * 如何分片;

          * 如何合成一個文件;

          * 中斷了從哪個分片開始。

          如何分,利用強大的js庫,來減輕我們的工作,市場上已經能有關于大文件分塊的輪子,雖然程序員的天性曾迫使我重新造輪子。但是因為時間的關系還有工作的關系,我只能罷休了。最后我選擇了百度的WebUploader來實現前端所需。

          如何合,在合之前,我們還得先解決一個問題,我們如何區分分塊所屬那個文件的。剛開始的時候,我是采用了前端生成了唯一uuid來做文件的標志,在每個分片請求上帶上。不過后來在做秒傳的時候我放棄了,采用了Md5來維護分塊和文件關系。

          在服務端合并文件,和記錄分塊的問題,在這方面其實行業已經給了很好的解決方案了。參考迅雷,你會發現,每次下載中的時候,都會有兩個文件,一個文件主體,另外一個就是文件臨時文件,臨時文件存儲著每個分塊對應字節位的狀態。

          這些都是需要前后端密切聯系才能做好,前端需要根據固定大小對文件進行分片,并且請求中要帶上分片序號和大小。前端發送請求順利到達后臺后,服務器只需要按照請求數據中給的分片序號和每片分塊大小(分片大小是固定且一樣的)算出開始位置,與讀取到的文件片段數據,寫入文件即可。

          為了便于開發,我 將服務端的業務邏輯進行了如下劃分,分成初始化,塊處理,文件上傳完畢等。

          秒傳功能,相信大家都體現過了,網盤上傳的時候,發現上傳的文件秒傳了。其實原理稍微有研究過的同學應該知道,其實就是檢驗文件MD5,記錄下上傳到系統的文件的MD5,在一個文件上傳前先獲取文件內容MD5值或者部分取值MD5,然后在匹配系統上的數據。

          斷點續傳,就是在文件上傳的過程中發生了中斷,人為因素(暫停)或者不可抗力(斷網或者網絡差)導致了文件上傳到一半失敗了。然后在環境恢復的時候,重新上傳該文件,而不至于是從新開始上傳的。

          斷點續傳的功能是基于分塊上傳來實現的,把一個大文件分成很多個小塊,服務端能夠把每個上傳成功的分塊都落地下來,客戶端在上傳文件開始時調用接口快速驗證,條件選擇跳過某個分塊。

          實現原理,就是在每個文件上傳前,就獲取到文件MD5取值,在上傳文件前調用接口,如果獲取的文件狀態是未完成,則返回所有的還沒上傳的分塊的編號,然后前端進行條件篩算出哪些沒上傳的分塊,然后進行上傳。

          當接收到文件塊后就可以直接寫入到服務器的文件中。


          導入項目:
          導入到Eclipse:
          http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
          導入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
          springboot統一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2



          下載示例:

          https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/




          工程



          NOSQL

          NOSQL示例不需要任何配置,可以直接訪問測試



          創建數據表

          選擇對應的數據表腳本,這里以SQL為例




          修改數據庫連接信息


          訪問頁面進行測試



          文件存儲路徑

          up6/upload/年/月/日/guid/filename






          相關問題:
          1.javax.servlet.http.HttpServlet錯誤
          2.項目無法發布到tomcat
          3.md5計算完畢后卡住
          4.服務器找不到config.json文件

          相關參考:

          文件保存位置


          源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

          源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl



          OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

          產品源代碼:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
          授權生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1

          復雜的網站都會有大量的CSS代碼,通常也會有許多重復的值。

          舉個例子,同樣一個顏色值可能在成千上百個地方被使用到,如果這個值發生了變化,需要全局搜索并且一個一個替換,效率不高且容易出錯。

          自定義屬性在某個地方存儲一個值,然后在其他許多地方引用它。另一個好處是語義化的標識。比如,--main-text-color 會比 #00ff00 更易理解,尤其是這個顏色值在其他上下文中也被使用到。

          概念

          自定義屬性(有時候也被稱作CSS變量或者級聯變量)是由CSS作者定義的,它包含的值可以在整個文檔中重復使用。

          由自定義屬性標記設定值(比如: --main-color: black;),由 var() 函數來獲取值(比如: color: **var(--main-color)**;)。

          優勢

          在構建大型站點時,作者通常會面對可維護性的挑戰。在這些網頁中,所使用的CSS 的數量是非常龐大的,并且在許多場合大量的信息會重復使用。

          例如,在網頁中維護一個配色方案,意味著一些顏色在 CSS 文件中多次出現,并被重復使用。當你修改配色方案時,不論是調整某個顏色或完全修改整個配色,都會成為一個復雜的問題,不容出錯,而單純查找替換是遠遠不夠的。

          如果使用了CSS 框架,這種情況會變得尤其糟糕,此時如果要修改顏色,則需要對框架本身進行修改。

          在這些場合使用 LESS 或 Sass 類似的預處理器是非常有幫助的,但是這種通過添加額外步驟的方式,可能會增加系統的復雜性。

          CSS變量為我們帶來一些預處理器的便利,并且不需要額外的編譯。

          這些變量的第二個優勢就是名稱本身就包含了語義的信息。CSS 文件變得易讀和理解。main-text-color比文檔中的#00ff00更容易理解,特別是同樣的顏色出現在不同的文件中的時候。

          用法

          下面是 CSS 變量的使用方法和步驟。

          CSS 中聲明變量

          我們都知道,在 JS 中要使用一個變量前,必須聲明這個表變量。在 CSS 中也是一樣的道理。

          聲明一個自定義屬性,屬性名需要以兩個減號(--)開始,屬性值則可以是任何有效的CSS值。和其他屬性一樣,自定義屬性也是寫在規則集之內的,如下:

          body {
              --bg-color: #7F583F;
              --color: #F7EFD2;
          }

          上面代碼中,body選擇器里面聲明了兩個變量:--bg-color和--color。

          它們與color、font-size等正式屬性沒有什么不同,只是沒有默認含義。所以 CSS 變量(CSS variable)又叫做**"CSS 自定義屬性"**(CSS custom properties)。

          規則集所指定的選擇器定義了自定義屬性的可見作用域。通常的最佳實踐是定義在根偽類 :root下,這樣就可以在HTML文檔的任何地方訪問到它了:

          :root {
              --main-bg-color: #eee;
          }

          自定義屬性名是大小寫敏感的,--my-color 和 --My-color 會被認為是兩個不同的自定義屬性。

          CSS 中使用變量

          通過var()函數來讀取變量。語法如下:

          var(custom-property-name, value)
          • name (必需) 變量名(以兩條破折號開頭)。
          • value (可選) 表示變量的默認值。如果該變量不存在,就會使用這個默認值。

          變量名稱必須以兩個破折號(--)開頭,且區分大小寫!

          使用方法:

          element {
            background-color: var(--main-bg-color);
          }

          變量也可以使用在變量聲明中:

          :root {
            --primary-color: #eee;
            --primary-bg-color: var(--main-bg-color);
          }

          變量值只能用作屬性值,不能用作屬性名。

          JS 操作 CSS 變量

          在 JS 代碼中,我們可能需要讀取 CSS 變量的值,其方法如下:

          const root=document.querySelector(":root");
          // 設置 CSS 變量
          root.style.setProperty("--main-bg-color", "red");
          // 讀取 CSS 變量
          const computedStyle=getComputedStyle(root);
          const mainBgColor=computedStyle.getPropertyValue("--main-bg-color");
          console.log(mainBgColor);
          // 刪除 CSS 變量
          root.style.removeProperty("--main-bg-color");

          總結

          以上就是關于 CSS 變量的一些基本概念及使用方法,更多詳情待后續!

          靈活使用 CSS 變量,不僅可以提高生產力,也能夠提高代碼的可閱讀性和維護性。

          ~

          ~

          ~ 本文完

          學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!

          大家好!我是〖編程三昧〗的作者 隱逸王,我的公眾號是『編程三昧』,歡迎關注,希望大家多多指教!

          知識與技能并重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!


          主站蜘蛛池模板: 精彩视频一区二区三区| 中文字幕精品亚洲无线码一区应用| 亚洲欧美国产国产综合一区| 精品一区二区在线观看| 中文字幕在线精品视频入口一区| 又紧又大又爽精品一区二区| 精品日韩一区二区三区视频| 日韩精品一区在线| 国产精品一区二区综合| 国产乱码精品一区二区三区| 无码一区二区三区AV免费| 亚洲日韩中文字幕一区| 日韩一区二区三区不卡视频| 日韩一区二区三区电影在线观看| 国产萌白酱在线一区二区| 无码毛片一区二区三区中文字幕| 亚洲AⅤ无码一区二区三区在线 | 久久精品亚洲一区二区| 性无码免费一区二区三区在线| 日韩精品无码中文字幕一区二区| 91一区二区在线观看精品| 亚洲日韩国产一区二区三区在线 | 在线播放精品一区二区啪视频| 人妻少妇精品视频三区二区一区| 精品一区二区久久久久久久网精| 男人的天堂亚洲一区二区三区| 大伊香蕉精品一区视频在线 | 精品国产一区二区三区不卡| 无码国产精品久久一区免费| 国产伦精品一区二区三区在线观看 | 无码国产精品一区二区免费3p| 中文字幕在线一区二区在线 | 久久亚洲一区二区| 亚洲A∨精品一区二区三区下载| 在线观看国产一区二区三区| 中日av乱码一区二区三区乱码| 久久无码人妻一区二区三区 | 人妻av无码一区二区三区| 国模视频一区二区| 综合人妻久久一区二区精品| 亚洲欧美国产国产一区二区三区|