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 久久精品视频9,久久99国产亚洲精品,久久婷婷国产麻豆91天堂

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          如何實(shí)現(xiàn)將PDF和html相互轉(zhuǎn)換

          DF是一種比較穩(wěn)定的電子文檔格式,而HTML則是一種通用的網(wǎng)頁(yè)格式,如何才能實(shí)現(xiàn)這兩種格式之間的互轉(zhuǎn)呢?

          首先將網(wǎng)頁(yè)轉(zhuǎn)成PDF是相當(dāng)來(lái)說(shuō)比較簡(jiǎn)單的操作,而且只要我們對(duì)PDF格式比較熟悉,一定都知道PDF虛擬打印機(jī)可以將各種格式打印并以PDF格式保存,所以此方法也同樣適用于HTML轉(zhuǎn)換PDF,具體操作方法就是先打開(kāi)網(wǎng)頁(yè)后,在網(wǎng)頁(yè)任意處右擊并選擇“打印”

          接著在左上角的打印設(shè)置頁(yè)面,將目標(biāo)打印機(jī)更改為電腦已有的PDF虛擬打印機(jī)或另存為PDF,再點(diǎn)擊保存并選擇文檔保存位置后就可以了。

          而將PDF文件轉(zhuǎn)成網(wǎng)頁(yè)就需要使用一些工具了,先下載并安裝極速玩轉(zhuǎn)后,選擇PDF轉(zhuǎn)換中的PDF轉(zhuǎn)HTML進(jìn)入轉(zhuǎn)換頁(yè)面,并添加需要轉(zhuǎn)換的PDF文檔。

          然后在左下角的輸出路徑設(shè)置好轉(zhuǎn)換后的HTML網(wǎng)頁(yè)保存文件夾后,點(diǎn)擊右下角的開(kāi)始轉(zhuǎn)換就可以了。

          擬機(jī)為我們提供了一個(gè)無(wú)限可能的世界。在這個(gè)世界里,我們可以嘗試、學(xué)習(xí)、甚至犯錯(cuò),而不必?fù)?dān)心現(xiàn)實(shí)生活中的后果。Emacs,作為一款強(qiáng)大的文本編輯器,它的Org模式更是讓人們?cè)诮M織復(fù)雜信息時(shí)如魚得水。但是,當(dāng)我們嘗試將Org文件轉(zhuǎn)換為HTML格式時(shí),有時(shí)會(huì)遇到一個(gè)令人困惑的問(wèn)題:“source block missing language specification #include”。這是什么意思?它又該如何解決呢?

          在深入探討之前,讓我們先來(lái)思考一個(gè)問(wèn)題:為什么我們要將Org文件轉(zhuǎn)換為HTML?答案可能各有不同,但一個(gè)共同點(diǎn)是,我們都希望能夠更好地分享和展示我們的工作。HTML作為一種廣泛支持的格式,能夠讓我們的內(nèi)容在不同的平臺(tái)上呈現(xiàn)出一致的效果。這就像是我們穿上了一件合身的外衣,讓內(nèi)在的價(jià)值得以外顯。

          當(dāng)我們遇到“source block missing language specification #include”的提示時(shí),我們應(yīng)該怎么辦呢?首先,我們需要理解這個(gè)提示的含義。在Emacs的Org模式中,當(dāng)我們使用源代碼塊時(shí),通常需要指定語(yǔ)言類型,比如#+BEGIN_SRC python。這樣,Emacs就能夠知道如何高亮和格式化我們的代碼。但如果我們忘記了這一步,就會(huì)收到上述的提示。

          解決這個(gè)問(wèn)題的方法其實(shí)很簡(jiǎn)單。我們只需要回到源代碼塊的開(kāi)始,確保正確地指定了語(yǔ)言類型。如果是包含在文件中的代碼,比如C語(yǔ)言的頭文件,我們可以使用#+INCLUDE: "file.h" src c這樣的語(yǔ)法來(lái)引入。

          通過(guò)這個(gè)簡(jiǎn)單的修正,我們就能夠順利地將Org文件轉(zhuǎn)換為HTML,而不會(huì)再有任何阻礙。這個(gè)過(guò)程就像是我們?cè)谔摂M世界中解決了一個(gè)謎題,獲得了前進(jìn)的鑰匙。

          并且可以嘗試以下幾種方法來(lái)解決:

          方法一:添加語(yǔ)言規(guī)范

          在 Org 文檔中,對(duì)于包含代碼塊的文本,需要添加語(yǔ)言規(guī)范,以便 Org-mode 正確地解析和轉(zhuǎn)換代碼。

          具體步驟如下:

          在代碼塊的開(kāi)頭,添加一行指示語(yǔ)言規(guī)范的注釋。例如,對(duì)于 C 語(yǔ)言代碼,可以添加以下注釋:

          #lang c

          再次嘗試將 Org 文檔轉(zhuǎn)換為 HTML。

          方法二:使用 org-babel

          org-babel 是 Org-mode 的一個(gè)擴(kuò)展包,可以用于將代碼塊轉(zhuǎn)換為各種格式,包括 HTML。

          具體步驟如下:

          安裝 org-babel 擴(kuò)展包。

          M-x package-install RET org-babel

          在 Org 文檔中,將代碼塊標(biāo)記為 babel 塊。例如,對(duì)于 C 語(yǔ)言代碼,可以使用以下標(biāo)記:

          #+begin_src c#include <stdio.h>int main() {  printf("Hello, world!\n");  return 0;}#+end_src

          再次嘗試將 Org 文檔轉(zhuǎn)換為 HTML。

          方法三:使用 org-html-export-filter

          org-html-export-filter 是 Org-mode 的一個(gè)函數(shù),可以用于在導(dǎo)出 HTML 時(shí)自定義代碼塊的轉(zhuǎn)換。

          具體步驟如下:

          在 Emacs 配置文件中,添加以下代碼:

          (defun my-org-html-export-filter (block)  "自定義代碼塊的轉(zhuǎn)換。"  (if (string-match-p "^#lang\s+c\s*$" (org-block-property block :language))    (org-html-export-filter-block-as-code block "c" "highlight")    (org-html-export-filter-block-as-verbatim block)))(add-hook 'org-html-export-filter-alist 'my-org-html-export-filter)

          再次嘗試將 Org 文檔轉(zhuǎn)換為 HTML。

          以上三種方法都可以解決 Org 轉(zhuǎn)為 HTML 時(shí)提示“source block missing language specification #include<stdio.h>”的問(wèn)題。具體選擇哪種方法,可以根據(jù)自己的實(shí)際情況和需求來(lái)決定。

          嘍,今天是一篇HTML to PDF速食指南。

          Java 轉(zhuǎn)換 HTML 到PDF有許多類庫(kù),今天我們介紹一下第三方免費(fèi)的類庫(kù)OpenPDF。

          1. OpenPDF

          OpenPDF是免費(fèi)的Java類庫(kù) ,遵從LGPL 和 MPL協(xié)議,所以基本上能夠可以隨意使用。OpenPDF是基于iTEXT的,目前來(lái)說(shuō)也是維護(hù)的比較好的Java操作PDF的開(kāi)源軟件。

          話不多說(shuō),且看所需要的依賴,

          <dependency>    
              <groupId>org.jsoup</groupId>    
              <artifactId>jsoup</artifactId>   
              <version>1.13.1</version> 
          </dependency>
          <dependency>
              <groupId>com.openhtmltopdf</groupId>
              <artifactId>openhtmltopdf-core</artifactId>
              <version>1.0.6</version>
          </dependency>
          <dependency>
              <groupId>com.openhtmltopdf</groupId>
              <artifactId>openhtmltopdf-pdfbox</artifactId>
              <version>1.0.6</version>
          </dependency>
          

          jsoup可以將html文件轉(zhuǎn)換成輸入流等,也可以遍歷html的DOM節(jié)點(diǎn),提取元素及樣式等。

          2. 示例

          本篇示例將以下html文件轉(zhuǎn)換成pdf

          <html>
          <head>
              <style>
                  .center_div {
                      border: 1px solid #404e94;
                      margin-left: auto;
                      margin-right: auto;
                      background-color: #f6d0ed;
                      text-align: left;
                      padding: 8px;
                  }
                  table {
                      width: 100%;
                      border: 1px solid black;
                  }
                  th, td {
                      border: 1px solid black;
                  }
                  body,html,input{font-family:"msyh";}
              </style>
          </head>
          <body>
          <div class="center_div">
              <h1>Hello java North!</h1>
              <div>
                  <p>convert html to pdf.</p>
              </div>
              <div>
                  <table>
                      <thead>
                          <th>ROLE</th>
                          <th>NAME</th>
                          <th>TITLE</th>
                      </thead>
                      <tbody>
                          <tr>
                              <td>MARKSMAN</td>
                              <td>ASHE</td>
                              <td>THE FROST ARCHER</td>
                          </tr>
                          <tr>
                              <td>MAGES</td>
                              <td>ANNIE</td>
                              <td>THE DARK CHILD</td>
                          </tr>
                          <tr>
                              <td>射手</td>
                              <td>凱塔琳</td>
                              <td>皮城女警</td>
                          </tr>
                      </tbody>
                  </table>
              </div>
          </div>
          </body>
          </html>
          

          以上html用瀏覽器打開(kāi)如下,亂碼是因?yàn)橹形淖煮w不識(shí)別,下面轉(zhuǎn)換的時(shí)候會(huì)加載對(duì)應(yīng)的字體來(lái)進(jìn)行轉(zhuǎn)換。

          使用Java轉(zhuǎn)換HTML到PDF代碼如下:

          public class HtmlToPDFOpenSource {
              public static void main(String[] args) throws IOException {
                  HtmlToPDFOpenSource htmlToPDFOpenSource = new HtmlToPDFOpenSource();
                  htmlToPDFOpenSource.generatePdfByOpenhtmltopdf();
              }
          
              private  void generatePdfByOpenhtmltopdf() throws IOException {
                  File inputHtml = new File("E:\\javaNorth\\java-study-note\\javaOpenSource\\src\\main\\resources\\test.html");
          
                  //加載html文件
                  Document document = Jsoup.parse(inputHtml, "UTF-8");
                  document.outputSettings().syntax(Document.OutputSettings.Syntax.html);
                  
                  //引入資源目錄,可以單獨(dú)引入css,圖片文件等
                  String baseUri = FileSystems.getDefault()
                      .getPath("javaOpenSource\\src\\main\\resources")
                      .toUri().toString();
                 
                  try (OutputStream os = new FileOutputStream("javaOpenSource\\src\\main\\resources\\testOpenLeagueoflegends1.pdf")) {
                      PdfRendererBuilder builder = new PdfRendererBuilder();
                      builder.withUri("javaOpenSource\\src\\main\\resources\\testOpenLeagueoflegends1.pdf");
                      builder.toStream(os);
                      builder.withW3cDocument(new W3CDom().fromJsoup(document), baseUri);
                      
                      //引入指定字體,注意字體名需要和css樣式中指定的字體名相同
                      builder.useFont(new File("javaOpenSource\\src\\main\\resources\\fonts\\msyh.ttf"),"msyh",1,BaseRendererBuilder.FontStyle.NORMAL, true);
                      builder.run();
                  }
              }
          }
          

          使用Java代碼轉(zhuǎn)換成PDF如下(示例中使用了微軟雅黑中文字體):

          上述html文件中增加如下外部樣式

          <link href="style.css" rel="stylesheet">
          

          并在resources目錄下添加style.css文件,重新生成PDF文件如下。

          3. 總結(jié)

          本片介紹了使用OpenPDF將html文件轉(zhuǎn)換成PDF文件。同時(shí)也使用了自定義字體,外部樣式。但是以下幾點(diǎn)需要格外注意。

          • Java代碼中加載的字體名稱要和HTML引用的CSS樣式中的字體名相同 ({font-family:"msyh";})。
          • HTML文件標(biāo)簽節(jié)點(diǎn)必須閉合(<xxx></xxx>).否則解析會(huì)失敗。

          全部示例在此:https://github.com/javatechnorth/java-study-note/tree/master/javaOpenSource/src/main/java/pdf

          文章來(lái)源:Java技術(shù)指北


          主站蜘蛛池模板: 午夜视频在线观看一区二区| 无码人妻aⅴ一区二区三区有奶水| 日韩精品一区二区三区不卡| 国产精品揄拍一区二区| 精品一区二区在线观看| 国产福利一区二区在线视频 | 国产精品视频一区麻豆| 亚洲bt加勒比一区二区| 国产AV午夜精品一区二区三区| 精品视频在线观看一区二区| 国产一区二区三区小说| 成人毛片无码一区二区| 精品深夜AV无码一区二区老年| 亚洲福利视频一区二区三区| 精品三级AV无码一区| 久久综合亚洲色一区二区三区| 99久久无码一区人妻a黑| 国产精品香蕉一区二区三区| 无码午夜人妻一区二区不卡视频| 精品一区二区三区| 日本美女一区二区三区| 区三区激情福利综合中文字幕在线一区 | 亚洲美女视频一区二区三区| 亚洲一区中文字幕在线观看| 无码人妻精品一区二区蜜桃网站 | 亚洲AV成人精品一区二区三区| 亚洲AV成人精品日韩一区| 海角国精产品一区一区三区糖心 | 人成精品视频三区二区一区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲AV乱码一区二区三区林ゆな| 人妻夜夜爽天天爽爽一区| 精品欧洲av无码一区二区14| 日韩三级一区二区| 狠狠色婷婷久久一区二区| 无码国产精品一区二区免费模式| 精品少妇ay一区二区三区| 国产在线观看一区二区三区| 国产福利一区二区在线视频 | 少妇一夜三次一区二区| 国产乱子伦一区二区三区|