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 激情免费网站,国产又黄又爽又猛的免费视频播放,国产美女作爱全过程免费视频

          整合營銷服務商

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

          免費咨詢熱線:

          怎么把PDF轉換成HTML?這幾個工具幫你輕松解決

          于程序員來說,每天編寫代碼是他們必做的事。就像從事網(wǎng)課教育行業(yè)的小伙伴來說,他們需要在代碼的框架里加入PDF文檔的講義內(nèi)容。如果采取手動撰寫PDF里的內(nèi)容會拉低整體的工作效率,但是直接添加將PDF轉換為HTML格式用到程序框架中的話,就可以省掉許多無謂步驟了。那你們知道PDF轉HTML格式怎么弄?下面我就來告訴你們幾個簡單的轉換方法,你們快來看看吧!

          方法一:使用全能PDF轉換助手

          這是一款專業(yè)的文件轉換軟件,它能支持很多種文件轉換格式,包括PDF轉HTML、PDF轉Word、PDF轉Excel、PDF轉PPT、WPS轉Word、CAD轉圖片等格式,而且它大部分的轉換功能都支持批量的文件導入,對于辦公人士來說,非常方便。

          操作如下:

          第一步:首先在電腦上打開該軟件,點擊【PDF轉其他】,選擇【PDF轉HTML】,導入一個或者多個需要轉換的PDF文件。

          第二步:根據(jù)我們的需要,在文件后面選擇要轉換的頁碼,再點擊右下角的【開始轉換】,稍等片刻,系統(tǒng)就會自動轉換并下載好HTML格式的文件了。

          另外這款軟件還新推出了手機APP版本,可以隨時幫助我們進行轉換文件格式、翻譯、壓縮等操作,如果你們有興趣的話,也可以去下載試一試。

          方法二:使用萬能文字識別軟件

          這個軟件雖然是一個識別軟件,但它的功能也不少。該軟件也支持PDF轉換處理,我們只需使用這個軟件就可以快速地把PDF轉換HTML格式。

          操作如下:

          第一步:首先依次點擊該軟件的【PDF轉換處理】——【PDF轉HTML】,然后導入需要轉換格式的PDF文件。

          第二步:然后根據(jù)我們的需要點擊下面的【添加文件】添加多個需要轉換的PDF文件,再點擊【開始轉換】,HTML的格式就轉換好了。

          以上就是今天的內(nèi)容,現(xiàn)在你們應該都知道PDF轉HTML格式怎么弄了吧?如果大家還知道其他更好的方法,歡迎在評論區(qū)留言哦。

          里講一種實現(xiàn)起來比較簡單的html轉pdf下載的實現(xiàn)。

          依賴插件

          html2canvas jspdf

          思路

          通過html2canvas,我們可以將指定的一個dom元素,渲染到canvas中,然后從canva中獲得該圖片,并將圖片通過jspdf來生成。

          代碼

          function createPdf (selector,pagesize,direction,title){
              var key = pagesize +''+direction;
              var settings = {
                  '00' : {
                      pdf : {orientation : 'portrait',format : 'a4',unit : 'px'},
                      width : 448,
                      height : 632.5
                  },
                  '01' : {
                      pdf : {orientation : 'landscape',format : 'a4',unit : 'px'},
                      width : 632.5,
                      height : 448
                  },
                  '10' : {
                      pdf : {orientation : 'portrait',format : 'a3',unit : 'px'},
                      width : 632.5,
                      height : 894.2
                  },
                  '11' : {
                      pdf : {orientation : 'landscape',format : 'a3',unit : 'px'},
                      width : 894.2,
                      height : 632.5
                  }
              };
              var set = settings[key];
              var doc = new jsPDF(set.pdf);
              var arr = [];//根據(jù)順序保存
              var $arr = $(selector);
              function tempCreate(){
                  if($arr.length == 0){//沒有啦
                      //執(zhí)行生成
                      tempPdf();
                  }else{
                      var $dom = $arr.splice(0,1);
                      html2canvas($dom[0]).then(canvas => {
                          var dataurl = canvas.toDataURL('image/png');
                          arr.push(dataurl);
                          tempCreate();
                      });
                  }
              }
              function tempPdf(){
                  arr.forEach((item,i)=>{
                      if(i !== 0){
                          doc.addPage();
                      }
                      doc.addImage(item,'png',-1,-1,set.width,set.height);//根據(jù)不同的寬高寫入
                  })
                  //根據(jù)當前的作業(yè)名稱
                  doc.save(title+'.pdf');
              }
              tempCreate();
          }

          需要指定容器(依賴jquery),然后指定紙張A4或 A3,以及橫縱向。

          //調(diào)用
          createPdf('.single-page',0,0,'test')

          當然,如果是數(shù)據(jù)量很大的話,就不建議在前臺生成了,最好還是放在后端去做。個人測試過,做A4的圖片生成PDF,當數(shù)量大約在100左右的時候,瀏覽器就崩潰了,如果只是幾頁的數(shù)據(jù)的話,這個方式還是很方便的。

          Ps:瀏覽器要是現(xiàn)代瀏覽器哈。

          參考資料

          html2canvas : http://html2canvas.hertzen.com/ jspdf :https://github.com/MrRio/jsPDF

          多編程技術文章,請查閱IOKKS - 專業(yè)編程技術分享平臺

          在本文中,我們將確保讀取我們放在指定文件夾中的HTML文件,并解析其中的變量并替換為它們的實際值。然后,我使用了"openhtmltopdf-pdfbox"庫修改了HTML文件。我們將介紹如何將其轉換為PDF文件。

          首先,我們將讀取我們確定的文件夾下的HTML文件,解析它,并將我們自己的動態(tài)值傳遞給HTML中相關的變量。我們將使用"openhtmltopdf-pdfbox"庫中最新更新的形式將HTML文件轉換為PDF文件。

          我希望這將成為需要這方面幫助的人的參考。您可以在您的Java項目中輕松進行轉換。您可以在下面看到一個示例項目。

          首先,我們將創(chuàng)建一個新的輸入文件夾,我們將在其中讀取我們的輸入HTML文件,并創(chuàng)建一個輸出文件夾,我們將在其中寫入PDF文件。

          我們可以將HTML文件放在輸入文件夾下。我們定義一個要在HTML文件中替換的鍵值。這個鍵值被給定為#NAME#作為示例。在Java中,您可以選擇用外部發(fā)送的值替換您想要的鍵值。

          input folder :  \ConvertHtmlToPDF\input
          
          output folder:  \ConvertHtmlToPDF\output

          <?xml version='1.0' encoding='UTF-8' ?>
          <!DOCTYPE html>
          <html lang="tr">
            <head>
              <meta data-fr-http-equiv="Content-Type" content="text/html; charset=UTF-8">
              </meta>
              <title>Convert to Html to Pdf</title>
              <style type="text/css">
                body {
                  font-family: "Times New Roman", Times, serif;
                  font-size: 40px;
                }
              </style>
            </head>
            <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
              <table width="700" border="0" cellspacing="0" cellpadding="0" style="background-color: #1859AB;
          
                                           color: white;
                                           font-size: 14px;
                                           border-radius: 1px;
                                           line-height: 1em; height: 30px;">
                <tbody>
                  <tr>
                    <td>
                      <strong style="color:#F8CD00;">   Hello </strong>#NAME#
                    </td>
                  </tr>
                </tbody>
              </table>
            </body>
          </html>

          創(chuàng)建一個新項目

          我們正在創(chuàng)建一個新的Spring項目。我正在使用Intellj Idea。

          控制器

          為了在HTML中用值替換鍵,我們將從外部發(fā)送值。我們?yōu)榇司帉懸粋€rest服務。

          我們在Controller文件夾下創(chuàng)建"ConvertHtmlToPdfController.java"類。我們在Controller類中創(chuàng)建一個名為"convertHtmlToPdf"的get方法。我們可以動態(tài)地將值傳遞給這個方法,如下所示。

          package com.works.controller;
          
          import com.works.service.ConvertHtmlToPdfService;
          import org.springframework.http.ResponseEntity;
          import org.springframework.web.bind.annotation.GetMapping;
          import org.springframework.web.bind.annotation.PathVariable;
          import org.springframework.web.bind.annotation.RequestBody;
          import org.springframework.web.bind.annotation.RequestMapping;
          import org.springframework.web.bind.annotation.RestController;
          
          @RestController
          @RequestMapping("")
          public class ConvertHtmlToPdfController {
          
              private final ConvertHtmlToPdfService convertHtmlToPdfService;
          
              public ConvertHtmlToPdfController(ConvertHtmlToPdfService convertHtmlToPdfService) {
                  this.convertHtmlToPdfService = convertHtmlToPdfService;
              }
          
              @GetMapping("/convertHtmlToPdf/{variableValue}")
              public ResponseEntity<String> convertHtmlToPdf(@PathVariable @RequestBody String variableValue) {
                  try {
                      return ResponseEntity.ok(convertHtmlToPdfService.convertHtmlToPdf(variableValue));
                  } catch (Exception e) {
                      throw new RuntimeException(e);
                  }
              }
          
          }

          服務

          ConvertHtmlToPdfService.java服務包含一個名為convertHtmlToPdf的方法。convertHtmlToPdf方法接受字符串variableValue輸入。

          在convertHtmlToPdf服務方法中;

          "inputFile"變量被定義為讀取輸入文件夾下的html文件。我們可以給這個變量賦予我們將要讀取的輸入html文件的URL。

          "outputFile"變量被定義為將pdf文件分配給輸出文件夾。我們可以將輸出文件夾的URL賦給這個變量。

          您還可以從外部讀取字體文件。您可以從輸入文件夾下獲取這個文件。我們還可以將字體文件所在的URL分配給"fontFile"變量。

          在上述代碼行中,將包含輸入的文件夾的URL傳遞給"ConvertHtmlToPdfUtil.readFileAsString"方法,以讀取輸入文件夾中的HTML文件。

                       String htmlContent = ConvertHtmlToPdfUtil.readFileAsString(inputFile);
          package com.works.util;
          
          import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
          
          import java.io.BufferedReader;
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.OutputStream;
          
          public class ConvertHtmlToPdfUtil {
          
              public static void safeCloseBufferedReader(BufferedReader bufferedReader) throws Exception {
                  try {
                      if (bufferedReader != null) {
                          bufferedReader.close();
                      }
                  } catch (IOException e) {
                      throw new Exception("safeCloseBufferedReader  - the method got an error. " + e.getMessage());
                  }
              }
          
              public static String readFileAsString(String filePath) throws Exception {
                  BufferedReader br = null;
                  String encoding = "UTF-8";
          
                  try {
          
                      br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), encoding));
          
                      StringBuilder fileContentBuilder = new StringBuilder();
                      String line;
          
                      while ((line = br.readLine()) != null) {
                          if (fileContentBuilder.length() > 0) {
                              fileContentBuilder.append(System.getProperty("line.separator"));
                          }
                          fileContentBuilder.append(line);
                      }
          
                      return fileContentBuilder.toString();
          
                  } catch (Exception e) {
                      new Exception("readFileAsString - the method got an error." + e.getMessage(), e);
                      return null;
                  } finally {
                      safeCloseBufferedReader(br);
                  }
              }
          
              public static OutputStream htmlConvertToPdf(String html, String filePath, String fonts) throws Exception {
                  OutputStream os = null;
                  try {
                      os = new FileOutputStream(filePath);
                      final PdfRendererBuilder pdfBuilder = new PdfRendererBuilder();
                      pdfBuilder.useFastMode();
                      pdfBuilder.withHtmlContent(html, null);
                      String fontPath = fonts;
                      pdfBuilder.useFont(new File(concatPath(fontPath, "times.ttf")), "Times", null, null, false);
                      pdfBuilder.toStream(os);
                      pdfBuilder.run();
                      os.close();
                  } catch (Exception e) {
                      throw new Exception(e.getMessage(), e);
                  } finally {
                      try {
                          if (os != null) {
                              os.close();
                          }
                      } catch (IOException e) {
                      }
                  }
                  return os;
              }
          
              public static String concatPath(String path, String... subPathArr) {
                  for (String subPath : subPathArr) {
                      if (!path.endsWith(File.separator)) {
                          path += File.separator;
                      }
                      path += subPath;
                  }
          
                  return path;
              }
          }

          以上是ConvertHtmlToPdfUtil.readFileAsString方法中的代碼。它使用FileInputStream將HTML文件讀取為字符集,并使用InputStreamReader將其轉換為內(nèi)部緩沖區(qū),并使用BufferedReader將其放入內(nèi)部緩沖區(qū)。

          BufferedReader中的字符逐行讀取,如下所示。所有HTML內(nèi)容都被放入字符串變量中。使用safeCloseBufferedReader方法,當我們完成時,我們關閉緩沖區(qū)。

          我們可以將我們的HTML內(nèi)容發(fā)送到setVariableValue方法中,以便用我們從外部發(fā)送的值替換我們在服務中發(fā)送的值。我們在HTML中標記為#key#的鍵值將被值值替換。

              private String setVariableValue(String htmlContent, String key, String value) {
                  if (StringUtils.isNotEmpty(value)) {
                      htmlContent = htmlContent.replaceAll("#"+key+"#", value);
                  }else {
                      htmlContent = htmlContent.replaceAll("#"+key+"#", "");
                  }
                  return htmlContent;
              }

          然后,在替換過程之后,我們可以調(diào)用ConvertHtmlToPdfUtil.htmlConvertToPdf方法,將HTML URL文件生成為PDF輸出。ConvertHtmlToPdfUtil.htmlConvertToPdf方法可以接收HTML內(nèi)容、輸出和字體輸入,如下所示。

          我們可以將這些輸入傳遞給該方法。

                        ConvertHtmlToPdfUtil.htmlConvertToPdf(htmlContent, outputFile, fontFile);

          ConvertHtmlToPdfUtil.htmlConvertToPdf方法內(nèi)容;

          我們將創(chuàng)建一個新的FileOutputStream。這將確定我們指定的output.pdf文件的創(chuàng)建。

          PdfRendererBuilder類位于com.openhtmltopdf.pdfboxout庫中。因此,我們必須將此庫添加到pom.xml文件中,如下所示。

                <dependency>
                      <groupId>com.openhtmltopdf</groupId>
                      <artifactId>openhtmltopdf-pdfbox</artifactId>
                      <version>1.0.10</version>
                  </dependency>
          <?xml version="1.0" encoding="UTF-8"?>
          <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
              <modelVersion>4.0.0</modelVersion>
              <parent>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-parent</artifactId>
                  <version>3.1.1</version>
                  <relativePath/> <!-- lookup parent from repository -->
              </parent>
              <groupId>com.works</groupId>
              <artifactId>convertHtmlToPDF</artifactId>
              <version>0.0.1-SNAPSHOT</version>
              <name>convertHtmlToPDF</name>
              <description>convertHtmlToPDF</description>
              <properties>
                  <java.version>17</java.version>
                  <spring-cloud.version>2022.0.3</spring-cloud.version>
              </properties>
              <dependencies>
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter</artifactId>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-web</artifactId>
                  </dependency>
                  <dependency>
                      <groupId>com.openhtmltopdf</groupId>
                      <artifactId>openhtmltopdf-pdfbox</artifactId>
                      <version>1.0.10</version>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.cloud</groupId>
                      <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
                      <version>4.0.1</version>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-test</artifactId>
                      <scope>test</scope>
                  </dependency>
              </dependencies>
          
              <build>
                  <plugins>
                      <plugin>
                          <groupId>org.springframework.boot</groupId>
                          <artifactId>spring-boot-maven-plugin</artifactId>
                          <configuration>
                              <image>
                                  <builder>paketobuildpacks/builder-jammy-base:latest</builder>
                              </image>
                          </configuration>
                      </plugin>
                  </plugins>
              </build>
          
          </project>

          實現(xiàn)PdfRendererBuilder對象后,我們可以將HTML參數(shù)設置為'withHtmlContent',將fontpath參數(shù)設置為'useFont'。我們可以使用toStream設置輸出文件。最后,我們可以使用run方法運行它。

                      pdfBuilder.useFastMode();
                      pdfBuilder.withHtmlContent(html, null);
                      String fontPath = fonts;
                      pdfBuilder.useFont(new File(concatPath(fontPath, "times.ttf")), "Times", null, null, false);
                      pdfBuilder.toStream(os);
                      pdfBuilder.run();

          pdfBuilder.run(); 在運行該方法后,我們應該看到output.pdf文件被創(chuàng)建在output文件夾下。

          因此,我們可以看到使用openhtmltopdf-pdfbox庫進行平滑的HTML到PDF轉換過程。


          主站蜘蛛池模板: 国产激情一区二区三区在线观看| 精品国产一区二区三区色欲| 性色AV一区二区三区| 亚欧免费视频一区二区三区| 一区二区不卡久久精品| 亚洲av乱码中文一区二区三区| 亚洲制服中文字幕第一区| 无人码一区二区三区视频| 人妻无码一区二区三区| 天天躁日日躁狠狠躁一区| 国产一区二区在线| 亚洲sm另类一区二区三区| 亚洲AV无码一区二区三区在线| 无码人妻一区二区三区免费看| 真实国产乱子伦精品一区二区三区| 精品一区二区三区电影| 国产精品综合一区二区三区| 国模无码一区二区三区| 日韩精品无码一区二区三区| 无人码一区二区三区视频| 一区二区日韩国产精品| 精品福利一区二区三区免费视频| 精品人体无码一区二区三区| 一区三区三区不卡| 日韩精品国产一区| 欲色影视天天一区二区三区色香欲| 国产一区二区三区美女| 视频一区二区中文字幕| 视频在线一区二区| 中文字幕一区二区三区免费视频| 精品一区二区三区在线观看 | 理论亚洲区美一区二区三区 | 国产免费一区二区三区免费视频| 精品视频午夜一区二区| 国产乱码伦精品一区二区三区麻豆| 亚洲视频在线一区二区| 高清一区二区三区免费视频| 中文字幕一区二区精品区| 在线观看视频一区二区| 国产精品亚洲专一区二区三区| 一区二区三区亚洲视频|