Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国内精品一区二区2021在线,中文字幕一区二区三区在线观看,国产日韩免费视频

          整合營銷服務商

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

          免費咨詢熱線:

          java將html轉為pdf


          html轉為pdf的組件有很多,但是還沒有哪一款能達到這個效果,其只要原因是wkhtmltopdf使用webkit網頁渲染引擎開發的用來將 html轉成 pdf的工具,可以跟多種腳本語言進行集成來轉換文檔。但是就使用簡便性來說還是itext等組件占據優勢,如果你要轉換格式有比較高的要求,那么wkhtmltopdf絕對是不二之選!

          下載路徑

          官網地址 wkhtmltopdf.org/

          github地址 github.com/wkhtmltopdf…

          使用方法

          1. windows直接使用:只要在windows命令行中輸入c:\wkhtmltopdf.exe my.oschina.net/papio/blog/… c:\blog.pdf 就可以把這篇文章轉成pdf,并保存到C盤根目錄。
          2. java調用:java中調用wkhtmltopdf的命令Runtime.getRuntime().exec("c:\wkhtmltopdf.exe my.oschina.net/papio/blog/… c:\blog.pdf")就可以實現轉換。

          java調用demo

          public class HtmlToPdfInterceptor extends Thread { private InputStream is; public HtmlToPdfInterceptor(InputStream is){ this.is = is; } public void run(){ try{ InputStreamReader isr = new InputStreamReader(is, "utf-8"); BufferedReader br = new BufferedReader(isr); String line = null; while ((line = br.readLine()) != null) { System.out.println(line.toString()); //輸出內容 } }catch (IOException e){ e.printStackTrace(); } }}public class HtmlToPdf { //wkhtmltopdf在系統中的路徑 private static final String toPdfTool = "D:\wkhtmltopdf\bin\wkhtmltopdf.exe"; /** * html轉pdf * @param srcPath html路徑,可以是硬盤上的路徑,也可以是網絡路徑 * @param destPath pdf保存路徑 * @return 轉換成功返回true */ public static boolean convert(String srcPath, String destPath){ File file = new File(destPath); File parent = file.getParentFile(); //如果pdf保存路徑不存在,則創建路徑 if(!parent.exists()){ parent.mkdirs(); } StringBuilder cmd = new StringBuilder(); cmd.append(toPdfTool); cmd.append(" "); cmd.append(" --header-line");//頁眉下面的線 cmd.append(" --header-center 這里是頁眉這里是頁眉這里是頁眉這里是頁眉 ");//頁眉中間內容 //cmd.append(" --margin-top 30mm ");//設置頁面上邊距 (default 10mm) cmd.append(" --header-spacing 10 ");//(設置頁眉和內容的距離,默認0) cmd.append(srcPath); cmd.append(" "); cmd.append(destPath); boolean result = true; try{ Process proc = Runtime.getRuntime().exec(cmd.toString()); HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream()); HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream()); error.start(); output.start(); proc.waitFor(); }catch(Exception e){ result = false; e.printStackTrace(); } return result; } public static void main(String[] args) { HtmlToPdf.convert("https://my.oschina.net/papio/blog/835645", "d:/wkhtmltopdf.pdf"); }}復制代碼

          wkhtmltopdf 參數詳解

          wkhtmltopdf [OPTIONS]... <input file> [More input files] <output file>常規選項 --allow <path> 允許加載從指定的文件夾中的文件或文件(可重復) --book* 設置一會打印一本書的時候,通常設置的選項 --collate 打印多份副本時整理 --cookie <name> <value> 設置一個額外的cookie(可重復) --cookie-jar <path> 讀取和寫入的Cookie,并在提供的cookie jar文件 --copies <number> 復印打印成pdf文件數(默認為1) --cover* <url> 使用HTML文件作為封面。它會帶頁眉和頁腳的TOC之前插入 --custom-header <name> <value> 設置一個附加的HTTP頭(可重復) --debug-javascript 顯示的javascript調試輸出 --default-header* 添加一個缺省的頭部,與頁面的左邊的名稱,頁面數到右邊,例如: --header-left '[webpage]' --header-right '[page]/[toPage]' --header-line --disable-external-links* 禁止生成鏈接到遠程網頁 --disable-internal-links* 禁止使用本地鏈接 --disable-javascript 禁止讓網頁執行JavaScript --disable-pdf-compression* 禁止在PDF對象使用無損壓縮 --disable-smart-shrinking* 禁止使用WebKit的智能戰略收縮,使像素/ DPI比沒有不變 --disallow-local-file-access 禁止允許轉換的本地文件讀取其他本地文件,除非explecitily允許用 --allow --dpi <dpi> 顯式更改DPI(這對基于X11的系統沒有任何影響) --enable-plugins 啟用已安裝的插件(如Flash --encoding <encoding> 設置默認的文字編碼 --extended-help 顯示更廣泛的幫助,詳細介紹了不常見的命令開關 --forms* 打開HTML表單字段轉換為PDF表單域 --grayscale PDF格式將在灰階產生 --help Display help --htmldoc 輸出程序HTML幫助 --ignore-load-errors 忽略claimes加載過程中已經遇到了一個錯誤頁面 --lowquality 產生低品質的PDF/ PS。有用縮小結果文檔的空間 --manpage 輸出程序手冊頁 --margin-bottom <unitreal> 設置頁面下邊距 (default 10mm) --margin-left <unitreal> 將左邊頁邊距 (default 10mm) --margin-right <unitreal> 設置頁面右邊距 (default 10mm) --margin-top <unitreal> 設置頁面上邊距 (default 10mm) --minimum-font-size <int> 最小字體大小 (default 5) --no-background 不打印背景 --orientation <orientation> 設置方向為橫向或縱向 --page-height <unitreal> 頁面高度 (default unit millimeter) --page-offset* <offset> 設置起始頁碼 (default 1) --page-size <size> 設置紙張大小: A4, Letter, etc. --page-width <unitreal> 頁面寬度 (default unit millimeter) --password <password> HTTP驗證密碼 --post <name> <value> Add an additional post field (repeatable) --post-file <name> <path> Post an aditional file (repeatable) --print-media-type* 使用的打印介質類型,而不是屏幕 --proxy <proxy> 使用代理 --quiet Be less verbose --read-args-from-stdin 讀取標準輸入的命令行參數 --readme 輸出程序自述 --redirect-delay <msec> 等待幾毫秒為JS-重定向(default 200) --replace* <name> <value> 替換名稱,值的頁眉和頁腳(可重復) --stop-slow-scripts 停止運行緩慢的JavaScripts --title <text> 生成的PDF文件的標題(第一個文檔的標題使用,如果沒有指定) --toc* 插入的內容的表中的文件的開頭 --use-xserver* 使用X服務器(一些插件和其他的東西沒有X11可能無法正常工作) --user-style-sheet <url> 指定用戶的樣式表,加載在每一頁中 --username <username> HTTP認證的用戶名 --version 輸出版本信息退出 --zoom <float> 使用這個縮放因子 (default 1) 頁眉和頁腳選項--header-center* <text> (設置在中心位置的頁眉內容) --header-font-name* <name> (default Arial) (設置頁眉的字體名稱)--header-font-size* <size> (設置頁眉的字體大小)--header-html* <url> (添加一個HTML頁眉,后面是網址)--header-left* <text> (左對齊的頁眉文本)--header-line* (顯示一條線在頁眉下)--header-right* <text> (右對齊頁眉文本)--header-spacing* <real> (設置頁眉和內容的距離,默認0)--footer-center* <text> (設置在中心位置的頁腳內容) --footer-font-name* <name> (設置頁腳的字體名稱) --footer-font-size* <size> (設置頁腳的字體大小default 11)--footer-html* <url> (添加一個HTML頁腳,后面是網址)--footer-left* <text> (左對齊的頁腳文本)--footer-line* 顯示一條線在頁腳內容上)--footer-right* <text> (右對齊頁腳文本)--footer-spacing* <real> (設置頁腳和內容的距離)./wkhtmltopdf --footer-right '[page]/[topage]' http://www.baidu.com baidu.pdf./wkhtmltopdf --header-center '報表' --header-line --margin-top 2cm --header-line http://192.168.212.139/oma/ oma.pdf表內容選項中 --toc-depth* <level> Set the depth of the toc (default 3) --toc-disable-back-links* Do not link from section header to toc --toc-disable-links* Do not link from toc to sections --toc-font-name* <name> Set the font used for the toc (default Arial) --toc-header-font-name* <name> The font of the toc header (if unset use --toc-font-name) --toc-header-font-size* <size> The font size of the toc header (default 15) --toc-header-text* <text> The header text of the toc (default Table Of Contents) --toc-l1-font-size* <size> Set the font size on level 1 of the toc (default 12) --toc-l1-indentation* <num> Set indentation on level 1 of the toc (default 0) --toc-l2-font-size* <size> Set the font size on level 2 of the toc (default 10) --toc-l2-indentation* <num> Set indentation on level 2 of the toc (default 20) --toc-l3-font-size* <size> Set the font size on level 3 of the toc (default 8) --toc-l3-indentation* <num> Set indentation on level 3 of the toc (default 40) --toc-l4-font-size* <size> Set the font size on level 4 of the toc (default 6) --toc-l4-indentation* <num> Set indentation on level 4 of the toc (default 60) --toc-l5-font-size* <size> Set the font size on level 5 of the toc (default 4) --toc-l5-indentation* <num> Set indentation on level 5 of the toc (default 80) --toc-l6-font-size* <size> Set the font size on level 6 of the toc (default 2) --toc-l6-indentation* <num> Set indentation on level 6 of the toc (default 100) --toc-l7-font-size* <size> Set the font size on level 7 of the toc (default 0) --toc-l7-indentation* <num> Set indentation on level 7 of the toc (default 120) --toc-no-dots* Do not use dots, in the toc輪廓選項 --dump-outline <file> 轉儲目錄到一個文件 --outline 顯示目錄(文章中h1,h2來定) --outline-depth <level> 設置目錄的深度(默認為4)頁腳和頁眉 * [page] 由當前正在打印的頁的數目代替 * [frompage] 由要打印的第一頁的數量取代 * [topage] 由最后一頁要打印的數量取代 * [webpage] 通過正在打印的頁面的URL替換 * [section] 由當前節的名稱替換 * [subsection] 由當前小節的名稱替換 * [date] 由當前日期系統的本地格式取代 * [time] 由當前時間,系統的本地格式取代
          作者:曹元
          鏈接:https://juejin.im/post/6856547881873047559
          來源:掘金
          著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

          篇中我們介紹了文本的一些樣式,這篇接著講文本樣式。

          6.文本下劃線

          一般文本下劃線都用在什么地方呢?我想到一個就是畫重點考前劃重點,有沒有畫面感,^v^。


          用css來實現劃重點,也是別具風格呀。


          <!DOCTYPE html>
          <html>
          <head>
            <title>css顏色與度量單位</title>
            <style>
              span{
                text-decoration:underline;
              }
          </style>
          </head>
          <body>
            <p>
              在做等離子物理對撞實驗的時候,如果把第三能量的極坐標,向負方向調整三個阿爾法單位,那么對最終的結果將會產生多少影響?
              <br>
              <span>2伽馬一步徐龍根號3</span>
            </p>
          </body>
          </html>


          text-decoration可以給文本設置下劃線,上劃線,刪除線,取消線。


          上面代碼實現效果如下:

          這個效果看起來兩行之間的距離有點擁擠,我們可以調整的它們的距離,稍微遠一點,讓它們看起不那么擁擠。


          7.文本的行間距


          用line-height來指定行間距,因為文本都包含在p標簽中,所以我們給p標簽加了行間距為50px


          調整后的效果如下:

          看起來下劃線的文字還是不夠顯眼啊,我們再給它加點顏色上去,會更好。

          這回好多了。夠顯眼,就絕對記得住。


          text-decoration后面可以設置的值如下:

          說明

          none

          讓本身有劃線裝飾的文本取消掉

          underline

          讓文本的底部出現一條下劃線

          overline

          讓文本的頭部出現一條上劃線

          line-through

          讓文本的中部出現一條刪除線

          blink

          讓文本進行閃爍,基本不支持了


          text-decoration:none這個會讓本身有劃線裝飾的文本取消掉的意思,例如a標簽,天生就帶下劃線,那要不想要自帶的下劃線就可以利用這個樣式給它去掉。

          來嘗試一下

          <!DOCTYPE html>
          <html>
          <head>
            <title>css顏色與度量單位</title>
            <style>
              p{
                line-height: 50px;
              }
              span{
          
          
                text-decoration:underline;
                color: red;
              }
          </style>
          </head>
          <body>
            <p>
              在做等離子物理對撞實驗的時候,如果把第三能量的極坐標,向負方向調整三個阿爾法單位,那么對最終的結果將會產生多少影響?
              <br>
              <span>2伽馬一步徐龍根號3</span>
              <br>
              <a href="http://www.baidu.com">百度</a>
            </p>
          </body>
          </html>

          百度兩個字下面天生就帶了下換線,要去掉請使用text-decoration:none

          其余幾個大家可以自己動手嘗試一下效果。


          8.設置英文文本轉換為大小寫


          這個標題很好理解,就是專門針對英文的,如果想把英文文本轉換大小寫可以使用

          <!DOCTYPE html>
          <html>
          <head>
            <title>css顏色與度量單位</title>
            <style>
              p{
                line-height: 50px;
              }
              span{
          
          
                text-decoration:underline;
                color: red;
              }
              a{
                text-decoration:none;
              }
          </style>
          </head>
          <body>
            <p>
              在做等離子物理對撞實驗的時候,如果把第三能量的極坐標,向負方向調整三個阿爾法單位,那么對最終的結果將會產生多少影響?
              <br>
              <span>2伽馬一步徐龍根號3</span>
              <br>
              <a href="http://www.baidu.com">百度</a>
              <br>
              <span class="english">
                no zuo no die you why cry
                <br>
                you zuo you die don't ask why
              </span>
            </p>
          </body>
          </html>

          頁面效果如下:

          這里的英文文本也是寫在了span標簽里面,受span標簽樣式的影響這里也變成了紅色,也加了下劃線。我們給它取消掉這些樣式。并給它設置讓英文單詞首字母變成大寫的樣式。



          下面給出text-transform的值和作用的表格,大家可以自行動手嘗試效果。

          說明

          none

          將已被轉換大小寫的值恢復到默認狀態

          capitalize

          將英文單詞首字母大寫

          uppercase

          將英文轉換為大寫字母

          lowercase

          將英文轉換為小寫字母

          9.文本添加陰影


          text-shadow:5px 5px 5px red;

          這里有四個值(3個5px和一個red):第一個值代表水平偏移;第二個值代表垂直偏移;第三個值代表陰影模糊度(可選);第四個值代表陰影顏色(可選)。


          10.設置文本的對齊方式


          我們可以設置文本的對齊方式,如果你用過word文檔的話,那一定知道左對齊、右對齊、居中對齊。css里面同樣有

          我們來嘗試一下居中對齊


          說明

          left

          靠左對齊,默認

          right

          靠右對齊

          center

          居中對齊

          justify

          內容兩端對齊

          start

          讓文本處于開始的邊界

          end

          讓文本處于結束的邊界

          start和end屬于css3新增的功能,IE和Opera瀏覽器可能不支持。


          11.處理文本之間的距離(letter-spacing)

          也就是兩個字間的距離,通過例子來感受一下

          很明顯的可以看到字間距變大了。


          12.設置英文單詞之間的距離(word-spacing)



          13.文本首行的縮進(text-indent)


          一般每個段落的首行都要縮進,這是書寫書信文件時的規定。


          我們去掉了居中對齊的樣式,是為了更好地演示首行縮進的效果。

          看效果圖紅框的地方,明顯有縮進。

          好了,以上就是今天的內容了。

          希望大家可以早日學會編程,踏上高薪之路,早日成為白富美、高富帥。動手練,聽我的沒錯。

          們來先來分析一下這個案例。

          標題容器左對齊,有固定的寬高。標題文字白色,水平垂直居中。

          正文共四個段落,每個段落都有固定的寬度,右側邊界對齊。

          前三個段落首行空兩個字。每個段落里都有一段高亮的文本,有顏色和下劃線修飾,也有文本斜體和加粗效果。

          段落中的一些文字還有顏色、加粗、下劃線以及傾斜等修飾效果。

          第四個段落起始有個吉他圖標,英文字體有外發光效果。

          下面我們來制作這個網頁。

          創建 007-css-case-1 文件夾,在文件里創建一個 case-text-fonts.html 頁面文件和 case-1.css 樣式文件。

          在 html 文件內創建基礎代碼,在 head 標簽內部引入外部樣式 case-1.css。

          首先來制作標題。

          添加一個 h1 元素,填入標題文本。

          在編寫標題樣式之前,假設 UI 設計師給你的是一篇文章的圖片,你可能就犯難了,如何獲得標題的寬高、背景顏色和文字大小呢?

          大家打開電腦里的QQ,登錄進去,Mac電腦按下鍵盤 Control + Command + A,Windows電腦按下ctrl+alt+a,圈選頁面標題,點擊對號按鈕,完成截屏。

          在瀏覽器中輸入 ps.gaoding.com,打開在線版 PS。點擊文件,新建,再點擊創建按鈕。最后,Control + V,將截屏的圖片粘貼過來。

          應用選框工具,發現標題選區的寬度和高度分別為 200 和 50 像素,文字的大小為 24 像素。

          應用吸管工具,點擊標題框吸取背景色,點擊前景色按鈕,得到十六進制顏色值 #a52a2a。

          有了這三個值,就可以定義標題的樣式了。

          h1 {
            width: 200px;
            height: 50px;
            background-color: #a52a2a;
            color: white;
            line-height: 50px;
            font-size: 24px;
            text-align: center;
          }

          定義 h1 選擇器,聲明樣式 width: 200px,height: 50px,background-color: #a52a2a,color: white,font-size: 24px,text-align:center

          在瀏覽器中查看頁面,標題的效果基本上都實現了。接下來完成文本的垂直居中對齊。

          可以通過給文本聲明 line-height 行高屬性,來間接實現文本的垂直居中,那行高的值設置為多少呢?根據前面學習的行高知識,將行高的值設置為 50px,也就是文本所在容器的高度。這樣,文本在容器中恰好就垂直居中了。

          接下來制作四個段落。

          在 HTML里添加四個 p 元素,填入一些文本。下面給這些段落添加樣式。

          p {
            width: 500px;
            text-indent: 2em;
            text-align: justify;
            word-spacing: 10px;
            text-transform: capitalize;
            line-height: 28px;
          }

          定義 p 選擇器,聲明樣式:width: 500px,讓每一個段落都有固定的寬度。text-indent: 2em,每個段首空兩格。text-align: justify,實現段落右側邊界對齊。給最后一段英文添加樣式:word-spacing: 10px,添加單詞間距。text-transform: capitalize,每個單詞首字母大寫。最后再添加 line-height: 28px,給段落設置一個行間距。

          四個段落基本上制作完畢了。接下來裝飾個別段落和文字。

          分別使用三個 span 元素將這三部分文字包裹起來。給第一個和第三個 span 元素定義 class 屬性,值為 mark1。(第一個段落里面的帶有下滑劃線區域,和第三個段落中的下劃線區域)

          在CSS中定義 mark1 選擇器,聲明樣式 color: red,text-decoration-line: underline,text-decoration-style: double。

          我們看,這兩部分文本被紅色、雙下劃線修飾了。

          實際效果第三部分文本還帶有一個波浪線。需要再定義一個樣式覆蓋一下。

          給這個 span 的樣式類再添加一個 mark2。

          定義選擇器 mark2,聲明樣式 text-decoration-style: wavy。

          效果實現了。

          給第二個 span 添加 class 屬性,值為 mark3。

          定義選擇器 mark3,聲明樣式 color: orange。

          第二部分文本變成了橙色。

          案例還要求這兩部分文字為傾斜效果。使用 span 元素把他們包裹起來,定義 class 等于 mark4。

          定義選擇器 mark4,聲明樣式 font-style: italic。

          文本傾斜效果實現了。

          實際上,千鋒全部學科的名稱和被特殊修飾的文本都有加粗效果,給全部學科再添加一個 span元素包裹在外層。給所有需要加粗的 span 都添加 mark0 樣式類名。

          定義選擇器 mark0,聲明樣式 font-weight: bold。

          文本加粗效果實現了。

          .mark0 {
            font-weight:bold
          }
          
          .mark1 {
            color: red;
            text-decoration-line: underline;
            text-decoration-style: double;
          }
          
          .mark2 {
            text-decoration-style: wavy;
          }
          
          .mark3 {
            color:orange;
          }
          
          .mark4 {
            font-style: italic;
          }

          最后,給英文段落定義特殊字體并添加外發光的效果。

          .p1 {
            font-family: "Sofia", sans-serif;
            text-indent: 0;
          }

          在 head 里添加引用谷歌字體的 css 鏈接,和自定義 icon 圖標的 js 地址。

          <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Sofia&effect=outline">

          <script src="https://kit.fontawesome.com/772ccfd500.js" crossorigin="anonymous"></script>

          給英文的段落元素定義 class 屬性,值為 p1 font-effect-outline。

          添加 p1 選擇器,聲明樣式:font-family: "Sofia", sans-serif。

          字體效果實現了!在段首還有一個 icon 圖標。

          如何查找自己心儀的圖標呢?大家可以訪問 fontawesome 官網這個地址,海量圖標就任你選擇了。guitar 就在這里。 (https://fontawesome.com/search?p=2&favorites=staff)

          在段落頭部添加 i 元素,定義 class屬性,值為 fas fa-guitar。 (注意中間有空格)。

          我們發現,真正使用這個圖標時,樣式類的值,要求在官網查找到的圖標名字前,加上 fa- (讀作:fa杠),并且還需要添加 fas。

          圖標添加好了!實際的效果,最后一行沒有縮進。

          在 .p1 (注意這里有點) 選擇器里添加 text-indent: 0,來覆蓋 p 元素的樣式。

          為什么能覆蓋呢?答對了,因為作用的優先級—— class 選擇器要大于元素選擇器。

          這樣,就取消了最后一行的段首縮進!

          文章配套視頻鏈接:https://www.bilibili.com/video/BV1oU4y1278g?p=68


          主站蜘蛛池模板: 国产女人乱人伦精品一区二区| 中文字幕一区二区三区在线不卡| 精品一区二区三区四区电影 | 国产乱子伦一区二区三区| 日韩在线一区视频| 国产成人精品无码一区二区三区 | 国产一区二区在线视频| 麻豆精品人妻一区二区三区蜜桃 | 日本精品一区二区三本中文 | 视频一区精品自拍| 欧美一区内射最近更新| 国产一区二区三区91| 秋霞鲁丝片一区二区三区| 亚洲av成人一区二区三区在线播放| 曰韩精品无码一区二区三区| 亚洲男人的天堂一区二区| 免费看无码自慰一区二区| 91精品一区二区综合在线| 亚洲中文字幕无码一区二区三区| 无码人妻精品一区二区三区99不卡| 在线精品视频一区二区| 末成年女A∨片一区二区| 无码人妻AV免费一区二区三区| 久久国产香蕉一区精品| 久久久久国产一区二区| 一区二区在线视频观看| 国产精品一区二区AV麻豆| 精品人妻无码一区二区色欲产成人 | 精品无码国产一区二区三区麻豆| 亚洲精品国产suv一区88| 人妻无码第一区二区三区| 久久久久一区二区三区 | 精品国产一区二区三区AV性色| 国产精品福利一区| 国产在线精品一区二区在线看| 国产精品无码一区二区三区不卡| 色欲AV蜜桃一区二区三| 国产福利无码一区在线| 国产成人精品亚洲一区| 色综合视频一区二区三区| 亚洲AⅤ无码一区二区三区在线 |