欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

.NET 實現Html 生成圖片或PDF

admin
2024年2月27日 18:36 本文熱度 753

前言


本文將使用PuppeteerSharp組件、實現Html代碼片段生成Jpg照片

PuppeteerSharp地址

https://github.com/hardkoded/puppeteer-sharp

1、安裝引用PuppeteerSharp

使用Nuget界面管理器

搜索 "PuppeteerSharp",找到對應的包點安裝即可。

2、實現一段Html頁面

<body>
  <div class="box">
    <h1>考場號:&nbsp;&nbsp;&nbsp;01</h1>
    <h1>座位號:&nbsp;&nbsp;&nbsp;01</h1>
    <div class="center-box">
      <h4>&nbsp; &nbsp;&nbsp;名:&nbsp; &nbsp;花卷</h4>
      <h4>身份證號:&nbsp; &nbsp;545645456456465</h4>
      <h4>準考證號:&nbsp; &nbsp;54564545454</h4>
    </div>
    <div class="botom-box">
      <h2>溫馨提示:</h2>
      <h3>請核對信息無誤后,張貼在準考證指定位置!</h3>
    </div>
  </div>
</body>
<style>
  .box{
    box-sizing: border-box;
    padding-top10px;  
    text-align: center;
    font-family: fangsong;
  }
  .box>h1 {
    font-size46px;
  }
  .center-box {
    text-align: left;
    width:290px;
    margin:60px auto;
}
   .center-box > h4{
    font-size18px;
   }
  .botom-box {
    text-align: center;
    margin-left20px;
}
</style>

Html預覽效果

C#實現代碼

await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
    Headless = true
});
string destFilePath = AppDomain.CurrentDomain.BaseDirectory + "TestImgCreate\\";
if (!Directory.Exists(destFilePath))
{
    Directory.CreateDirectory(destFilePath);
}
string outputFile = destFilePath + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";
using (var page = await browser.NewPageAsync())
{
    await page.SetViewportAsync(new ViewPortOptions
    {
        Width = 425,//圖片寬度
        Height = 635//圖片高度
    });
    await page.SetContentAsync(@"
    <html>
    <body>
    <div class=\""box\"">
        <h1>考場號:&nbsp;&nbsp;&nbsp;01</h1>
        <h1>座位號:&nbsp;&nbsp;&nbsp;01</h1>
        <div class=\""center-box\"">
        <h4>姓&nbsp; &nbsp;&nbsp;名:&nbsp; &nbsp;花卷</h4>
        <h4>身份證號:&nbsp; &nbsp;545645456456465</h4>
        <h4>準考證號:&nbsp; &nbsp;54564545454</h4>
        </div>
        <div class=\""botom-box\"">
        <h2>溫馨提示:</h2>
        <h3>請核對信息無誤后,張貼在準考證指定位置!</h3>
        </div>
    </div>
    </body>
    </html>
    <style>
    .box{
        box-sizing: border-box;
        padding-top: 10px;  
        text-align: center;
        font-family: fangsong;
    }
    .box>h1 {
        font-size: 46px;
    }
    .center-box {
        text-align: left;
        width:290px;
        margin:60px auto;
    }
    .center-box > h4{
        font-size: 18px;
    }
    .botom-box {
        text-align: center;
        margin-left: 20px;
    }
    </style>"
);
    ScreenshotOptions screenshotOptions = new ScreenshotOptions();
    screenshotOptions.FullPage = true//是否截取整個頁面
    screenshotOptions.OmitBackground = false;//是否使用透明背景,而不是默認白色背景
    screenshotOptions.Quality = 100//截圖質量 0-100(png不可用)
    screenshotOptions.Type = ScreenshotType.Jpeg; //截圖格式
    await page.ScreenshotAsync(outputFile, screenshotOptions);
}

生成之后發現樣式沒有進行渲染,效果如下

發現html中的樣式丟失了,后將Html中的雙引號替換成單引號后,樣式可以正常展示,效果如下

如果需要生成PDF文件,只需要進行以下修改

await page.ScreenshotAsync(outputFile, screenshotOptions);
->
await page.PdfAsync(outputFile);
文件名稱修改成PDF后綴

轉自:小吳的成長之路

鏈接:cnblogs.com/wuyongfu/p/17243490.html


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