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 最近中文字幕免费高清版7,91正在播放,日韩中文字幕精品视频在线

          整合營銷服務商

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

          免費咨詢熱線:

          5-LINUX HTML 轉 PDF-seleniu

          5-LINUX HTML 轉 PDF-selenium

          tml2pdf

          selenium

          Selenium 通過使用 WebDriver 支持市場上所有主流瀏覽器的自動化。 Webdriver 是一個 API 和協議,它定義了一個語言中立的接口,用于控制 web 瀏覽器的行為。 每個瀏覽器都有一個特定的 WebDriver 實現,稱為驅動程序。 驅動程序是負責委派給瀏覽器的組件,并處理與 Selenium 和瀏覽器之間的通信。

          這種分離是有意識地努力讓瀏覽器供應商為其瀏覽器的實現負責的一部分。 Selenium 在可能的情況下使用這些第三方驅動程序, 但是在這些驅動程序不存在的情況下,它也提供了由項目自己維護的驅動程序。

          Selenium 框架通過一個面向用戶的界面將所有這些部分連接在一起, 該界面允許透明地使用不同的瀏覽器后端, 從而實現跨瀏覽器和跨平臺自動化。

          selenium 驅動

          # selenium 驅動
          https://selenium-python.readthedocs.io/installation.html#drivers
          https://selenium-python.readthedocs.io/api.html

          selenium-java

          主要依賴

                  <dependency>
                      <groupId>org.seleniumhq.selenium</groupId>
                      <artifactId>selenium-java</artifactId>
                      <version>4.16.1</version>
                  </dependency>
          

          測試代碼

                  // 獲取 java 版本
                  String version=System.getProperty("java.specification.version");
          
                  // 獲取系統類型
                  String platform=System.getProperty("os.name", "");
                  platform=platform.toLowerCase().contains("window") ? "win" : "linux";
          
                  // 當前程序目錄
                  String current=System.getProperty("user.dir");
          
                  System.out.println("current:" + current);
          
                  // firefox 運行參數配置
                  FirefoxOptions options=new FirefoxOptions();
                  // 無頭模式
                  options.addArguments("--headless");
                  // 最大化
                  options.addArguments("--start-maximized");
          
                  FirefoxDriver browser=new FirefoxDriver(options);
          
                  Path url=Paths.get(current, "..", "index.html");
                  System.out.println("url:" + url.toString());
          
                  // NOTE 要使用 file 協議
                  browser.get(String.format("file://%s", url.toString()));
          
                  // 打印設置
                  PrintOptions print=new PrintOptions();
                  Pdf pdf=browser.print(print);
          
                  // pdf base64 內容
                  String content=pdf.getContent();
                  // 解碼內容
                  Base64.Decoder decoder=Base64.getDecoder();
                  byte[] buffer=decoder.decode(content);
          
                  try {
                      // 將 byte 寫入文件
                      Path file=Paths.get(String.format("java%s_%s.pdf", version, platform));
                      Files.write(file, buffer);
                  } catch (IOException e) {
                      throw new RuntimeException(e);
                  } finally {
                      browser.quit();
                  }
          

          效果預覽

          selenium/java11_linux.pdf · yjihrp/linux-html2pdf-demo - Gitee.com

          selenium/java11_win.pdf · yjihrp/linux-html2pdf-demo - Gitee.com

          測試結果


          測試結果

          下一篇 6-LINUX HTML 轉 PDF-selenium-python

          器之心報道

          項目作者:vinayak mehta參與:一鳴

          從 PDF 表格中獲取數據是一項痛苦的工作。不久前,一位開發者提供了一個名為 Camelot 的工具,使用三行代碼就能從 PDF 文件中提取表格數據。

          PDF 文件是一種非常常用的文件格式,通常用于正式的電子版文件。它能夠很好的將不同的排版格式固定下來,形成版面清晰且美觀的展示效果。然而,對于想要從 PDF 中提取信息的人們來說,PDF 是個噩夢,尤其是表格。

          大量的學術報告、論文、分析文章都使用 PDF 展示其中的表格數據,但是對于如果想要直接從表格中復制數據則會非常麻煩。不久前,有一位開發者提供了一個可從文字 PDF 中提取表格信息的工具——Camelot,能夠直接將大部分表格轉換為 Pandas 的 Dataframe。

          • 項目地址:https://github.com/camelot-dev/camelot

          Camelot 是什么

          據項目介紹稱,Camelot 是一個 Python 工具,用于將 PDF 文件中的表格數據提取出來。

          具體而言,用戶可以像使用 Pandas 那樣打開 PDF 文件,然后利用這個工具提取表格數據,最后再指定輸出的形式(如 csv 文件)。

          代碼示例

          項目提供的 PDF 文件如圖所示,假設用戶需要提取這些文字之間的表格 2-1 中的信息。

          PDF 文件。我們需要提取表格 2-1。

          使用 Camelot 提取表格數據的代碼如下:

          >>> import camelot
          >>> tables=camelot.read_pdf('foo.pdf') #類似于Pandas打開CSV文件的形式
          >>> tables[0].df # get a pandas DataFrame!
          >>> tables.export('foo.csv', f='csv', compress=True) # json, excel, html, sqlite,可指定輸出格式
          >>> tables[0].to_csv('foo.csv') # to_json, to_excel, to_html, to_sqlite, 導出數據為文件
          >>> tables
          <TableList n=1>
          >>> tables[0]
          <Table shape=(7, 7)> # 獲得輸出的格式
          >>> tables[0].parsing_report
          {
           'accuracy': 99.02,
           'whitespace': 12.24,
           'order': 1,
           'page': 1
          }
          

          以下為輸出的結果,對于合并的單元格,Camelot 在抽取后做了空行處理,這是一個穩妥的方法。

          安裝方法

          項目作者提供了三種安裝方法。首先,你可以使用 Conda 進行安裝,這是最簡單的。

          conda install -c conda-forge camelot-py
          

          最流行的安裝方法是使用 pip 安裝。

          pip install camelot-py[cv]
          

          還可以從項目中克隆代碼,并使用源碼安裝。

          ompdf是一個可以將HTML生成PD并保留樣式效果的PHP第三方擴展。

          下面就一步步講解如何使用:

          一、通過composer安裝

          composer require dompdf/dompdf


          安裝過程

          二 、編寫測試代碼

          (1)引用autoload.php

          include 'vendor/autoload.php'; 

          (2)實例化Dompdf

          $dompdf=new \Dompdf\Dompdf();

          (3)加載HTML

          $dompdf->loadHtml($html); //$html 為HTML字符串

          (4)設置紙張和方向

          $dompdf->setPaper('A4', 'landscape'); //紙張大小和紙張方向

          (5)生成PDF并下載

           $dompdf->render();
          $dompdf->stream('數據字典.pdf');

          三、導出PDF測試,發現中文亂碼了


          導出PDF發現中文亂碼了

          四、解決中文亂了問題

          (1)下載支持中文的字體包放到根目錄下(和vendor目錄同級),這里演示使用的是阿里巴巴的普惠字體(字體格式是ttf的,小編原先下載使用的字體格式是otf格式的無效)

          (2)下載dompdf字體安裝工具解壓到根目錄(和vendor目錄同級)

          下載地址:https://github.com/dompdf/utils

          (3)在命令行(CMD定位到根目錄)下執行命令

          php load_font.php "puhui" Alibaba-PuHuiTi-Light.ttf

          執行成功后在路徑(vendor\dompdf\dompdf\lib\fonts)下就會出現剛才的字體

          (4)在樣式文件中指定使用剛才安裝的字體

          body{font-family:puhui;}

          (5)再次導出PDF測試成功


          亂碼問題解決


          主站蜘蛛池模板: 一区二区三区在线观看中文字幕 | 亚洲老妈激情一区二区三区| 精品一区二区三区视频在线观看 | 曰韩人妻无码一区二区三区综合部| 亚洲日韩AV无码一区二区三区人 | 暖暖免费高清日本一区二区三区| 亚洲一区二区三区自拍公司| 无码一区18禁3D| 国产成人精品无人区一区 | 国产伦精品一区二区三区四区 | 人妻无码一区二区三区| 97人妻无码一区二区精品免费| 国产一区二区免费视频| 精品人体无码一区二区三区| 精品人妻一区二区三区四区| 亚洲日本va一区二区三区| 亚洲综合一区二区国产精品| 日韩精品在线一区二区| 成人精品视频一区二区三区不卡| 亚洲性日韩精品国产一区二区| 国产色欲AV一区二区三区| 在线视频一区二区三区四区| 人妻视频一区二区三区免费| 3D动漫精品啪啪一区二区下载| 日本成人一区二区三区| 国产色情一区二区三区在线播放 | 中文字幕乱码人妻一区二区三区| 亚洲免费视频一区二区三区| 久久99国产一区二区三区| 国产成人欧美一区二区三区| 中文字幕精品无码一区二区三区| 无码国产精品一区二区免费式芒果| 精品免费久久久久国产一区 | 亚洲中文字幕一区精品自拍| 亚洲国产美国国产综合一区二区| 久久无码人妻一区二区三区 | 亚洲一区日韩高清中文字幕亚洲 | 日韩精品一区二三区中文| 国产伦精品一区二区三区在线观看| 午夜DV内射一区区| 精品成人一区二区三区免费视频|