跳至頁尾內容
.NET 幫助

WebGrease .NET Core(開發者使用指南)

WebGrease 與 IronPDF 和 .NET Core 的整合提供了一種強大的方法來製作高品質的 PDF 文件並簡化網路應用程式的效能。 WebGrease 採用 JavaScript 壓縮、圖像最佳化和 CSS 最小化等功能,是一套功能豐富的套件,可讓開發人員的網站執行得更快速、更順暢。 開發人員可以使用 IronPDF(一個用於製作和處理 PDF 文件的功能強大的 .NET 工具包),從 HTML 和 MVC 視圖等多個來源輕鬆創建動態 PDF。

Web 應用程式透過此一整合保持流動性和適應性,可實現有效的資源管理和動態 PDF 生成。 WebGrease 和 IronPDF 與 .NET Core 完全相容,讓開發人員可以建立跨平台的應用程式,在 Linux、macOS 和 Windows 上完美運作。 由於最佳化的效能和優異的文件處理能力,使用者體驗得以提升。

什麼是 WebGrease?

WebGrease最初是作為 ASP.NET 堆疊的一個組件而創建的,它是一種工具,用於優化 JavaScript、壓縮、圖片優化和靜態檔案的 CSS 最小化等自動化流程,以提高網頁性能。 這些優化有助於減少網頁資源的大小,從而改善網頁應用程式的效能並加快載入時間。

WebGrease .NET Core (How It Works For Developers):圖 1

在 .NET Core 的上下文中,當我們討論 WebGrease 時,我們是指將這些最佳化方法應用於 .NET Core 應用程式。 Microsoft 創建了跨平台、開放源碼的 .NET Core Framework,讓開發人員可以建立尖端、可擴充且高效能的應用程式。開發人員可以透過整合 WebGrease,將傳統 ASP.NET 應用程式的效能最佳化技術套用至 .NET Core 專案。 如此一來,開發人員就能確保他們的網路應用程式在 Windows、Linux 和 macOS 等各種平台上的效率和效能。

WebGrease 的特點

在 .NET Core Framework 中,WebGrease 提供了一系列功能,旨在提高 Web 應用程式的效能和速度。 突出的特點如下:

CSS Minification:

  • 消除 CSS 檔案中無關的格式、註解和空白。
  • 將眾多 CSS 檔案合併為單一檔案,以減少 HTTP 請求。
  • 增強 CSS 的效能並加快載入時間。

JavaScript壓縮:

  • 透過移除不必要的字元,將 JavaScript 檔案最小化。
  • 將多個 JavaScript 檔案合併為一個。
  • 減少 JavaScript 檔案大小,以加快下載和執行時間。

圖像最佳化:

  • 在不大幅降低品質的情況下壓縮影像。
  • 適當時將圖像轉換為更有效率的格式。
  • 優化圖片資源以提高載入速度。

HTML最小化:

  • 移除 HTML 檔案中的空白和註解。
  • 簡化 HTML 檔案,以加快瀏覽器的解析與呈現。

資源捆綁:

  • 將多個 JavaScript 與 CSS 檔案合併為單一檔案。
  • 減少載入網頁所需的 HTTP 請求次數,改善載入時間。

設定彈性:

  • 提供配置最佳化程序的選項。
  • 允許開發人員選擇優化或排除哪些目錄和檔案。

跨平台相容性:

  • 與 .NET Core 完全相容,可在 Windows、Linux 和 macOS 上使用。
  • 確保效能改善在各種環境中運作良好。

與建置程序整合:

  • 可整合至建立程序,以便在部署和開發過程中自動最佳化資源。
  • 支援自動化流程,以確保在各開發階段進行一致的最佳化。

提升效能:

  • 將必須載入的資源減至最少,從而改善整體網路應用程式的效能。
  • 提升使用者體驗,並加快頁面的載入速度。

建立與設定 WebGrease

若要在 .NET Core 應用程式中使用 WebGrease,請安裝必要的套件、配置建立程序,並設定最佳化任務。 以下步驟將協助您在 .NET Core 應用程式中建立並設定 WebGrease:

建立 .NET Core 專案。

首先,建立一個新的 .NET Core 網路應用程式。 您可以使用 .NET CLI 來達到此目的。

dotnet new web -n WebGreaseApp
cd WebGreaseApp
dotnet new web -n WebGreaseApp
cd WebGreaseApp
SHELL

新增所需的套件

雖然 WebGrease 沒有直接的 .NET Core 套件,但您可以使用其他程式(如 BundlerMinifier)達到類似的功能。 將此套件加入您的專案。

dotnet add package BundlerMinifier.Core
dotnet add package BundlerMinifier.Core
SHELL

設定捆綁和最小化

在專案根目錄建立 bundleconfig.json 檔案,提供 CSS 與 JavaScript 檔案的捆綁與最小化設定。 以下是一個配置範例。

[
  {
    "outputFileName": "wwwroot/css/site.min.css",
    "inputFiles": [
      "wwwroot/css/site.css"
    ],
    "minify": {
      "enabled": true,
      "renameLocals": true
    }
  },
  {
    "outputFileName": "wwwroot/js/site.min.js",
    "inputFiles": [
      "wwwroot/js/site.js"
    ],
    "minify": {
      "enabled": true
    }
  }
]

與建置流程整合

在專案檔案 (.csproj)中加入指令,以便在建立過程中執行捆綁和最小化作業。

在您的 .csproj 檔案中的 <Project> 元件內加入下列元件:

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
XML

安裝並執行 BundlerMinifier

若要使用 BundlerMinifier 工具,您必須安裝 .NET 公用程式。 執行下列指令:

dotnet tool install -g BundlerMinifier.Core
dotnet tool install -g BundlerMinifier.Core
SHELL

要捆綁和最小化您的檔案,請執行:

dotnet bundle
dotnet bundle
SHELL

優化圖片

您可以使用 ImageSharp 或其他符合 .NET Core 的圖像優化工具進行圖像優化。

安裝 ImageSharp。

安裝 SixLabors.ImageSharp 套件:

dotnet add package SixLabors.ImageSharp
dotnet add package SixLabors.ImageSharp
SHELL

以下是圖像最佳化的程式碼片段範例:

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using System.IO;

public void OptimizeImage(string inputPath, string outputPath)
{
    // Load the image
    using (var image = Image.Load(inputPath))
    {
        // Resize and optimize the image
        image.Mutate(x => x.Resize(new ResizeOptions
        {
            Mode = ResizeMode.Max,
            Size = new Size(800, 600)
        }));
        // Save the image in an optimized format
        image.Save(outputPath); // Automatic encoder selected based on file extension.
    }
}
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using System.IO;

public void OptimizeImage(string inputPath, string outputPath)
{
    // Load the image
    using (var image = Image.Load(inputPath))
    {
        // Resize and optimize the image
        image.Mutate(x => x.Resize(new ResizeOptions
        {
            Mode = ResizeMode.Max,
            Size = new Size(800, 600)
        }));
        // Save the image in an optimized format
        image.Save(outputPath); // Automatic encoder selected based on file extension.
    }
}
$vbLabelText   $csharpLabel

執行您的應用程式,以確保捆綁和最小化的運作符合預期。 在瀏覽器中開啟您的應用程式,然後驗證 JavaScript 和 CSS 檔案是否已最小化。

按照這些步驟,您就可以使用與目前 .NET 環境相容的工具,為 .NET Core 應用程式設定和配置類似 WebGrease 的最佳化。

開始使用 IronPdf

為您的網路資源設定效能最佳化,以及使用 IronPDF 來產生和處理 PDF,都是在 .NET Core 應用程式中整合 WebGrease-like 優化與 IronPDF 的必要條件。 以下是如何逐步開始:

什麼是 IronPDF?

功能豐富的 .NET 函式庫 IronPDF 可讓 C# 程式製作、讀取和編輯 PDF 文件。 透過此程式,開發人員可以輕鬆地將 HTML、CSS 和 JavaScript 資訊轉換成高品質、可列印的 PDF。 其中最關鍵的任務包括新增頁首和頁尾,分割和合併 PDF,為文件新增水印,以及將 HTML 轉換為 PDF。

IronPDF 對各種應用程式都有幫助,因為它同時支援 .NET Framework 和 .NET Core。 由於 PDF 易於使用且包含廣泛的內容,因此開發人員可以輕鬆地將 PDF 融入其產品中。 由於 IronPDF 能夠處理複雜的資料佈局和格式,因此它所產生的 PDF 輸出內容與客戶最初提供的 HTML 文本非常接近。

WebGrease .NET Core (How It Works For Developers):圖 2

IronPDF 的特點

從 HTML 產生 PDF

  • 將 JavaScript、HTML 和 CSS 轉換為 PDF。
  • 支援媒體查詢和回應式設計,符合現代網路標準。
  • 有助於使用 HTML 和 CSS 動態裝飾 PDF 文件、報告和發票。

PDF編輯

  • 允許在現有的 PDF 中加入文字、圖片和其他內容。
  • 從 PDF 檔案中萃取文字和影像。
  • 將多個 PDF 合併為一個。
  • 將 PDF 檔案分割成獨立的文件。
  • 包括水印、註解、頁首和頁尾。

PDF 轉檔

  • 將多種檔案格式轉換為 PDF,包括 Word、Excel 和影像檔案。
  • 允許 PDF 轉換為圖像 (PNG、JPEG 等)。

效能與可靠性

  • 高效能、高可靠性,適合工業應用。
  • 可輕鬆處理大型文件集。

安裝 IronPDF

要獲得在 .NET 專案中使用 PDF 所需的工具,請安裝 IronPDF 套件。

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

設定捆綁和最小化

確保bundleconfig.json配置檔已就位,以根據需要再次提供捆綁和最小化設定:

[
  {
    "outputFileName": "wwwroot/css/site.min.css",
    "inputFiles": [
      "wwwroot/css/site.css"
    ],
    "minify": {
      "enabled": true,
      "renameLocals": true
    }
  },
  {
    "outputFileName": "wwwroot/js/site.min.js",
    "inputFiles": [
      "wwwroot/js/site.js"
    ],
    "minify": {
      "enabled": true
    }
  }
]

連接至建置流程

確保您的 .csproj 檔案包含在建立過程中執行 minification 和 bundling 作業的指示。 在 <Project> 元素中加入以下 Target:

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
XML

整合 IronPDF。

使用 IronPDF 建立控制器以產生 PDF。 建立新的 PdfController 控制器。

using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace WebGreaseIronPdfApp.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult GeneratePdf()
        {
            // Create a PDF from a simple HTML string
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>");

            // Save the PDF to a byte array
            var pdfBytes = pdf.BinaryData;

            // Return the PDF file as a download
            return File(pdfBytes, "application/pdf", "example.pdf");
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace WebGreaseIronPdfApp.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult GeneratePdf()
        {
            // Create a PDF from a simple HTML string
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>");

            // Save the PDF to a byte array
            var pdfBytes = pdf.BinaryData;

            // Return the PDF file as a download
            return File(pdfBytes, "application/pdf", "example.pdf");
        }
    }
}
$vbLabelText   $csharpLabel

在 PdfController 程式碼中,我們要做的第一件事就是匯入所需的命名空間,其中 Microsoft.AspNetCore.Mvc 用於 ASP.NET Core MVC 功能,IronPDF 用於 PDF 產生。 因為 PdfController 類派生出 Controller,所以它是 MVC 控制器。 此類別中的 GeneratePdf 方法定義用於管理 PDF 的建立。

WebGrease .NET Core (How It Works For Developers):圖 3

為了將 HTML 資料轉換成 PDF,此功能會建立 IronPDF 的 ChromePdfRenderer 的實例。 基本的 HTML 字串可以使用 RenderHtmlAsPdf 函式轉換成 PDF 文件。 然後使用 BinaryData 屬性將此 PDF 儲存為位元組陣列。 最後,PDF 檔案會使用 File 方法,連同所要求的檔案名稱 (example.pdf) 和正確的 MIME 類型 (application/pdf) 傳回為可下載的回應。 由於這個整合,程式現在可以根據 HTML 內容動態建立和提供 PDF 文件。

生成 PDF 的路徑

確保 PDF 生成路由包含在您的 Startup.cs 檔案中。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
            name: "pdf",
            pattern: "pdf",
            defaults: new { controller = "Pdf", action = "GeneratePdf" });
    });
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
            name: "pdf",
            pattern: "pdf",
            defaults: new { controller = "Pdf", action = "GeneratePdf" });
    });
}
$vbLabelText   $csharpLabel

執行與驗證

執行您的應用程式,以確保可以建立 PDF,且捆綁和最小化功能正常。

dotnet run
dotnet run
SHELL

開啟瀏覽器並導航至您的應用程式。 您應該可以瀏覽 /pdf 並下載 PDF 文件。

結論

IronPDF 與類似 WebGrease 的最佳化結合,為 .NET Core 應用程式提供了強大的組合,可改善線上效能並製作高品質的 PDF 文件。 開發人員可以透過使用 IronPDF 等工具來建立 PDF,以及使用 BundlerMinifier 來最佳化資源,以確保應用程式的效率與彈性。 除了圖片壓縮之外,CSS 和 JavaScript minification 等資源最佳化策略也有助於加快頁面載入速度並提升使用者體驗。 同時,IronPDF 具備從 HTML 文字動態建立 PDF 的強大功能,可簡化製作發票、報告等準備妥當文件的流程。

此整合為 .NET Core Framework 內的當代網路開發需求提供了完整的解決方案,不僅改善了線上應用程式的效能,也增加了處理 PDF 的有用功能。

透過 IronPDFIron Software,您可以利用 OCR、條碼掃描、PDF 製作、Excel 連線等功能,強化您的 .NET 開發工具包。 IronPDF 以極具競爭力的價格起步,透過結合其核心理念與高度彈性的 Iron Software 工具箱,讓開發人員可以使用更多的 Web 應用程式和功能,以及更有效率的開發。

專案的授權選項定義清楚,讓開發人員可以輕鬆選擇最佳模式,協助迅速、有條理且有效率地執行解決方案,以解決各種問題。

常見問題解答

如何優化.NET Core中的Web應用程式效能?

在 .NET Core 中,您可以透過整合 WebGrease 來提升 Web 應用程式的效能。 WebGrease 提供 JavaScript 壓縮、圖片優化和 CSS 精簡功能。這些技術可以減少資源大小並加快載入速度,從而提高效率和使用者體驗。

在 .NET Core 應用程式中從 HTML 產生 PDF 有什麼好處?

在 .NET Core 應用程式中使用 IronPDF 從 HTML 產生 PDF,可讓開發人員直接從 Web 內容建立可直接列印的文件。這非常適合動態產生報告、發票和其他文檔,並保留原始 HTML 的格式。

如何在.NET Core應用程式中建立動態PDF?

您可以使用 IronPDF 在 .NET Core 應用程式中建立動態 PDF。它允許將 HTML 和 MVC 視圖轉換為高品質的 PDF,從而產生保持原始結構和設計的文件。

如何將 PDF 生成功能整合到 .NET Core 應用程式中?

若要將 PDF 產生整合到 .NET Core 應用程式中,請安裝 IronPDF 包,在應用程式中配置必要的設置,並使用 IronPDF 的方法(例如RenderHtmlAsPdf實作 PDF 產生邏輯,將 HTML 內容轉換為 PDF。

WebGrease 如何提升 .NET Core 應用程式的效能?

WebGrease 透過自動化 CSS 和 JavaScript 程式碼壓縮、圖片最佳化以及資源打包等最佳化流程,提升 .NET Core 應用程式的效能。這些流程可以減小資源的大小,從而加快載入速度並提高應用程式效率。

我可以在Linux或macOS上使用WebGrease和IronPDF嗎?

是的,WebGrease 和 IronPDF 都與 .NET Core 相容,因此它們的功能可以在不同的作業系統上使用,包括 Linux 和 macOS 以及 Windows。

在 .NET Core 中使用 IronPDF 時,常見的故障排除場景有哪些?

在 .NET Core 中使用 IronPDF 時,常見的故障排除場景包括確保所有相依性都已正確安裝、驗證設定設定以及檢查與專案中其他程式庫或套件是否有任何衝突。

IronPDF在文件產生方面的主要功能有哪些?

IronPDF 的主要功能包括產生、讀取和編輯 PDF 文檔,將 HTML 和各種文件格式轉換為 PDF,以及維護複雜的資料佈局,從而確保在 .NET Core 應用程式中進行高品質的文檔處理。

IronPDF如何處理HTML內容以進行PDF轉換?

IronPDF 透過將其轉換為高品質的 PDF 檔案來處理 HTML 內容,這些 PDF 檔案能夠高度還原原始 HTML 結構。這確保了生成的 PDF 文件能夠保持來源內容的預期佈局、樣式和格式。

如何優化 .NET Core 應用程式中的影像處理?

為了優化 .NET Core 應用程式中的影像處理,可以考慮使用 ImageSharp 等影像優化工具,它可以在不造成明顯品質損失的情況下壓縮影像,並將其轉換為更有效率的格式,從而提高應用程式的整體效能。

Jacob Mellor,Team Iron 首席技術官
首席技術長

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。