整合營銷服務商

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

          免費咨詢熱線:

          PDF怎么轉成HTML文檔?轉換方法和步驟介紹

          PDF怎么轉成HTML文檔?轉換方法和步驟介紹

          DF與HTML是兩種不同格式的文件,PDF是一種常見的便攜式文檔,HTML是一種常見的網頁格式,這兩種看似相差甚遠的文件甚至可以轉換。一些網站編輯需要將存儲數據的PDF文件轉換為存儲數據的HTML網站內容,這種方便直接將HTML嵌入到網頁模板中。那么你知道PDF是如何轉換成HTML文檔的嗎?以下與您分享。

          方法一:風云PDF軟件

          HTML將需要轉換成HTMLPDF將文件上傳到相應的功能頁面,這個網站可以支持批量轉換,每個人都可以上傳多個文件;

          在將PDF轉換為HTML之前,先選擇文件轉換的頁碼,其中可選擇轉換每一頁、奇數頁、偶數頁、指定頁;

          此后可點擊“開始轉換”按鈕,文檔轉換成功后,可在瀏覽器上觀看相應的HTML文檔。

          方法二:風云PDF在線網頁

          在瀏覽器中打開風云PDF在線網站,并選擇PDF轉換到網站首頁的功能欄。HTML。

          在線PDF轉換為HTML,PDF文檔可以直接轉換為HTML網頁格式,文檔成功轉換后,可以在瀏覽器上觀看HTML格式文檔,其原有的PDF頁面元素和排版都能準確保存。

          方法三:WPS辦公組

          文檔轉換成功后,其PDF頁面元素和排版都能準確保存;

          PDF到HTML轉換速度快,精度高;

          轉換過程中,操作簡單,使用方便。

          以上是如何將PDF轉換成HTML文檔的相關內容,如果你對此感興趣,你可以學習,風云PDF在線網站不僅可以實現PDF和HTML轉換,還有很多不同格式文件的轉換哦!

          司的某項業務需要與用戶線上簽訂協議,即用戶在線手寫一個簽名,后臺將公司公章信息和用戶的簽名以及合同信息生成一份PDF文件,供用戶查看和下載。



          比對了一些插件,我們最終決定使用dompdf這個插件,插件的github在這里:https://github.com/dompdf/dompdf。

          1. 使用方法

          • 安裝可以使用composer或者直接下載源代碼,使用require或者include引入。
          • 具體的使用方式,可以參考以下示例代碼。
          // 引入命名空間
          use Dompdf\Dompdf;
          // 初始化dompdf對象
          $dompdf=new Dompdf();
          // 加載html文檔內容
          $dompdf->loadHtml('hello world');
          // 設置紙張類型和方向
          $dompdf->setPaper('A4', 'landscape');
          // 渲染HTML為PDF
          $dompdf->render();
          // 流輸出
          $dompdf->stream();
          

          2. 常見問題和解決辦法

          2.1 中文亂碼的問題

          插件對于字體和編碼問題是這樣形容的:

          PDF documents internally support the following fonts: Helvetica, Times-Roman, Courier, Zapf-Dingbats, & Symbol. These fonts only support Windows ANSI encoding. In order for a PDF to display characters that are not available in Windows ANSI, you must supply an external font. Dompdf will embed any referenced font in the PDF so long as it has been pre-loaded or is accessible to dompdf and reference in CSS @font-face rules. See the font overview for more information on how to use fonts.The DejaVu TrueType fonts have been pre-installed to give dompdf decent Unicode character coverage by default. To use the DejaVu fonts reference the font in your stylesheet, e.g. body { font-family: DejaVu Sans; } (for DejaVu Sans). The following DejaVu 2.34 fonts are available: DejaVu Sans, DejaVu Serif, and DejaVu Sans Mono.

          嘗試了一下,默認帶的字體是無法渲染中文的,使用CSS的@font-face引入會報錯(也可能是我打開方式不對)。這樣就只好自己引入一個字體了。

          插件給了一個安裝語言文件的工具,地址再這里:https://github.com/dompdf/utils。

          使用步驟:

          • 下載或者復制load_font.php文件,放到dompdf文件夾內,與src和test文件夾同級
          • 修改load_font.php文件中引入的autoload.php為項目實際的位置
          • 在命令行中執行php load_font.php simkai /path/to/simkai.ttf

          這樣,我們就可以在html文檔的css中使用font-family屬性來指定字體了。

          html {
           font-family: simkai;
          }
          

          2.2 圖片無法展示

          插件應該是無法直接顯示網絡圖片,所以需要將圖片轉換為BASE64格式才能顯示。

          將HTML文檔中的所有圖片轉換為BASE64的方式:

          function imgToBase64($html) {
           $html=preg_replace_callback('/<img(?:.*?)src="(.*?)"(?:.*?)\/?>/', function($matches) {
           $imageInfo=getimagesize($matches[1]);
           $base64="" . chunk_split(base64_encode(file_get_contents($matches[1])));
           $base64_image='data:' . $imageInfo['mime'] . ';base64,' . $base64;
           return str_replace($matches[1], $base64_image, $matches[0]);
           }, $html);
           return $html;
          }
          

          這樣轉換其實性能影響挺大的,感覺性能不太好可以加一下緩存。

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

          Java 轉換 HTML 到PDF有許多類庫,今天我們介紹一下第三方免費的類庫OpenPDF。

          1. OpenPDF

          OpenPDF是免費的Java類庫 ,遵從LGPL 和 MPL協議,所以基本上能夠可以隨意使用。OpenPDF是基于iTEXT的,目前來說也是維護的比較好的Java操作PDF的開源軟件。

          話不多說,且看所需要的依賴,

          <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文件轉換成輸入流等,也可以遍歷html的DOM節點,提取元素及樣式等。

          2. 示例

          本篇示例將以下html文件轉換成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用瀏覽器打開如下,亂碼是因為中文字體不識別,下面轉換的時候會加載對應的字體來進行轉換。

          使用Java轉換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);
                  
                  //引入資源目錄,可以單獨引入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代碼轉換成PDF如下(示例中使用了微軟雅黑中文字體):

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

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

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

          3. 總結

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

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

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

          文章來源:Java技術指北


          主站蜘蛛池模板: 一夲道无码人妻精品一区二区| 亚洲国产精品一区二区第一页免 | 精品一区二区久久久久久久网站| 国产嫖妓一区二区三区无码| 日本一区高清视频| 国产剧情一区二区| 红杏亚洲影院一区二区三区| 成人免费一区二区三区| 亚洲成在人天堂一区二区| 亚洲Av永久无码精品一区二区| 大香伊蕉日本一区二区| 亚洲人AV永久一区二区三区久久| 日本中文字幕一区二区有码在线| 国产精品香蕉一区二区三区| 无码精品久久一区二区三区 | 国产成人精品日本亚洲专一区| 日韩精品一区二区三区在线观看l| 香蕉免费看一区二区三区| 91video国产一区| 精品在线一区二区| 少妇激情一区二区三区视频| 国产一区风间由美在线观看| 午夜福利一区二区三区在线观看| 影院成人区精品一区二区婷婷丽春院影视| 亚洲欧洲一区二区三区| 亚洲一区精彩视频| 亚洲综合无码AV一区二区 | 亚洲片国产一区一级在线观看| 精品视频无码一区二区三区| 一区二区三区波多野结衣| 一区二区三区四区免费视频| 日本一区二区三区免费高清在线 | 91精品一区国产高清在线| 一本一道波多野结衣AV一区| 农村人乱弄一区二区| 国产av一区二区精品久久凹凸| 亚洲美女视频一区二区三区| 丝袜人妻一区二区三区| 制服美女视频一区| 一区二区三区无码被窝影院| 国产午夜精品免费一区二区三区|