狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【C#】使用 wkhtmltopdf 在 PDF 中設置自定義頁眉和頁腳內容

admin
2024年11月17日 21:50 本文熱度 516

前言

使用 wkhtmltopdf 實現(xiàn)轉換 PDF 時,是否可以設置自定義頁眉和頁腳內容?wkhtmltopdf 作為一個命令行工具,它提供了全局參數(shù)大綱參數(shù)選項頁面對象參數(shù)頁眉和頁腳參數(shù)選項目錄對象參數(shù)五種命令參數(shù)。本文介紹頁眉和頁腳參數(shù)選項實現(xiàn)自定義頁眉和頁腳內容。

命令參數(shù)

1、頁眉和頁腳參數(shù)

  • 頁眉

--header-center [text]:在頁眉中居中指定文本;--header-left [text]:將文本放置在頁眉的左側;--header-right [text]:將文本放置在頁眉的右側;--header-html [url]:允許對標題使用自定義的 HTML 文件【包含格式化文本、圖像等】;

  • 頁腳

--footer-center [text]:在頁腳中居中指定文本;--footer-left [text]:將文本放在頁腳的左側;--footer-right [text]:將文本放置在頁腳的右側;--footer-html [url]:允許對頁腳使用自定義的 HTML 文件【包含格式化文本、圖像等】;

  • 動態(tài)元素

頁眉或頁腳參數(shù)的text用下面元素替換,則可顯示對應的內容。如 --footer-center "[page] of [topage]"

[page]:當前頁碼[toPage]:總頁數(shù)[date]:當前日期[time]:當前時間[title]:文檔標題[subTitle]:文檔副標題[pageNumber]:頁碼[totalPages]:總頁數(shù)

  • 樣式選項

#region 頁眉--header-spacing [value]:控制頁眉與內容之間的間距;--header-font-size [size]:設置標題文本的字體大小;--header-line:在頁眉下方顯示一條直線分隔正文;#endregion
#region 頁腳--footer-spacing [value]:控制頁腳與內容之間的間距;--footer-font-size [size]:設置頁腳文本的字體大小;--footer-line:在頁腳上方顯示一條直線分隔正文;#endregion

2、頁面對象參數(shù)

#region 部分--print-media-type:用顯示媒體類型代替屏幕;--no-print-media-type:不用顯示媒體類型代替屏幕;--page-offset <offset>:設置頁碼的起始值(默認值為0);--encoding <encoding>:為輸入的文本設置默認的編碼方式;--zoom <float>:設置轉換成PDF時頁面的縮放比例(默認為1);#endregion

3、全局參數(shù)

#region 部分--margin-bottom <unitreal> 設置頁面的 底邊距;--margin-left <unitreal>   設置頁面的 左邊距 (默認是 10mm);--margin-right <unitreal>  設置頁面的 右邊距 (默認是 10mm);--margin-top <unitreal>    設置頁面的 上邊距;--page-height <unitreal>   頁面高度;--page-size <Size>         設置頁面的尺寸,如:A4,Letter等,默認是:A4;--page-width <unitreal>    頁面寬度;--quiet                    靜態(tài)模式,不在標準輸出中打印任何信息;#endregion

4、命令參數(shù)詳解附錄

https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

自定義示例

1、轉換的HTML文件

<!DOCTYPE HTML><html>   <head>   <meta charset="gbk">   <title>測式文件</title>           </head>   <body>      <div id="sse">      <input id="url" size=200 value="ws://127.0.0.1:8080/service" /><button id="btn1" onclick="changewebsocket(this)" tt=1>打開連接</button><br>    <input id="msg" size=200 value='測試內容'/>    <button onclick="sendmsg()">發(fā)送數(shù)據(jù)</button><br>    <textarea id="onmsg" rows="10" cols="30"></textarea>      </div>   </body></html>

2、作為頁眉的HTML 文件

<!DOCTYPE html><html lang="en">  <head>    <title>      Testing    </title>  </head>  <body>    <table cellpadding="0" cellspacing="0" border="0" style="width:100%">      <tr>        <td style="max-width:40%">          <img alt="text" src="https://profile-avatar.csdnimg.cn/7d678480185a4ae5babed86c378e532e_funniyuan.jpg!1"          style="max-width:100%">        </td>        <td style="max-width:60%">          <table cellpadding="0" cellspacing="0" border="0" style="width:100%">            <tr>              <td align="center" style="font-size:30px;color:#e14a3a;font-family:SimHei;font-weight:600;padding:15px 0 5px">                Company Name              </td>            </tr>            <tr>              <td align="center" style="font-size:16px;color:#0a0f84;font-family:SimHei;padding-bottom:10px">                Invoice              </td>            </tr>          </table>        </td>      </tr>      <tr>        <td colspan="2" style="width:100%;border-width:1px;border-style:solid;border-color:#000">        </td>      </tr>    </table>  </body></html>

3、實現(xiàn)與調用

using System.Diagnostics;
namespace Fountain.WinConsole.ToPDFOrImageDemo{    public class ConverterPDF:IConverterEngine    {        /// <summary>        /// wkhtmltopdf 工具路徑        /// </summary>        public string ConverterPath { get; }        /// <summary>        /// 轉換類型        /// </summary>        public int EngineType { get; } = 1;        /// <summary>        ///        /// </summary>        /// <param name="converterPath"></param>        public ConverterPDF(string converterPath)        {            ConverterPath = converterPath;        }        /// <summary>        ///        /// </summary>        /// <param name="htmlPath"></param>        /// <param name="outputPath"></param>        /// <returns></returns>        public bool Convert(string htmlPath, string outputPath)        {            try            {                var ticks = DateTime.UtcNow.Ticks;                string optionSwitches = "";
               #region 頁眉                // 設置標題字體大小                optionSwitches += "--header-font-size 10 ";                // 將 header.html 作為頁眉內容                optionSwitches += "--header-html header.html ";                #endregion
               #region 頁面                // 使用的打印介質類型,而不是屏幕                optionSwitches += "--print-media-type ";                // 邊距                optionSwitches += "--margin-top 40mm --margin-bottom 10mm --margin-right 10mm --margin-left 10mm ";                // 紙張大小                optionSwitches += "--page-size A4 ";                #endregion
               #region 頁腳                //                optionSwitches += "--footer-font-size 8 ";                // 在頁腳的居中部分顯示頁腳文本                optionSwitches += "--footer-right \"[page]/[topage]\" ";                #endregion
               Process process = new Process();                process.StartInfo.UseShellExecute = true;                process.StartInfo.FileName = this.ConverterPath;                process.StartInfo.Arguments = $"{optionSwitches} \"{htmlPath}\" \"{outputPath}\" ";                process.Start();            }            catch (Exception ex)            {                throw new Exception("轉PDF出錯", ex);            }            return true;        }    }}
using System.Text;
namespace Fountain.WinConsole.ToPDFOrImageDemo{    internal class Program    {        static void Main(string[] args)        {            var ticks = DateTime.UtcNow.Ticks;            string outputpdf = $"{AppDomain.CurrentDomain.BaseDirectory}{ticks}.pdf";            string htmlPath = $"{AppDomain.CurrentDomain.BaseDirectory}test.html";            string convertPath= $"{AppDomain.CurrentDomain.BaseDirectory}wkhtmltopdf.exe";            ConverterPDF converter = new ConverterPDF(convertPath);            converter?.Convert(htmlPath, outputpdf);            Console.ReadKey();        }    }}

小結

以上是頁眉和頁腳參數(shù)選項內容介紹,并通過以個示例,了解其實現(xiàn)自定義頁眉和頁腳內容的方式。


該文章在 2024/11/18 9:05:00 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved