在 C# 中建立可存取的 PDF 及符合第 508 條規定</#35;。

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 可讓開發人員使用 Google Chromium 的渲染引擎來建立符合第 508 條規範且可存取的 PDF,透過簡單的單行 SaveAsPdfUA() 方法呼叫來支援 PDF/UA 標準。

<! -- 引言實作示意圖 --> <!--說明:說明程式碼概念的圖表或截圖 -->

IronPDF 遵循 Google 的倡議,提高 PDF 的可讀性,並符合 Section 508 的規定。 該資料庫提供了一套全面的解決方案,可生成符合聯邦要求的無障礙 PDF,並確保殘障人士也能使用文件。 IronPDF 利用現代網路標準和 Google 對可讀性的改進,讓 .NET 開發人員能夠直接符合標準。

快速入門:使用 IronPDF 建立無障礙 PDF

使用 IronPDF 以最少的程式碼建立符合 Section 508 規範的 PDF。 本快速入門示範如何在 C# 中產生可存取的 PDF,提供在 PDF 文件中實現可存取性的直接方法。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

  2. 複製並運行這段程式碼。

    IronPdf.PdfDocument.FromFile("input.pdf").SaveAsPdfUA("output-accessible.pdf");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer

是什麼讓 PDF 具有可存取性並符合第 508 條規定?

2021年,我們改用GoogleChromium HTML渲染引擎,從HTML渲染PDF檔。這使得我們的軟體能夠繼承Google已實現的無障礙功能

無障礙 PDF 需要特定的結構元素,使螢幕閱讀器和輔助技術能夠正確詮釋文件內容。 這些元素包括

  • 標籤式內容結構定義閱讀順序和層次結構
  • 圖片和非文字元素的替代文字
  • 正確的標題結構(H1、H2、H3)用於導航
  • 螢幕閱讀器發音的語言規範
  • 邏輯閱讀順序遵循自然的內容流程
  • 文字與背景之間的對比度要高

PDF/UA(通用可访问性)标准代表了可访问 PDF 文档的国际基准。 當使用 SaveAsPdfUA() 方法時,IronPDF 會自動產生符合這些要求的 PDF。

為什麼 PDF/UA Compliance 對商業應用程式很重要?

美國聯邦機構和承包商必須遵守 Section 508 規範。 組織必須確保其數位內容 (包括 PDF) 可供殘障員工和客戶存取。 不遵守規定可能導致

  • ADA 下的法律懲罰與訴訟
  • 失去聯邦合約和商業機會
  • 排除 20% 的殘障人士
  • 損害品牌聲譽和客戶信任

IronPDF 可自動處理無障礙 PDF 生成的技術要求,從而簡化合規性。 資料庫可確保正確的文件結構、元資料和標籤,而不需開發人員瞭解 PDF/UA 規格的複雜性。

IronPDF 如何繼承 Google 的可讀性功能?

<! --! Chrome 渲染引擎可访问性流程图 --> <!--說明:流程圖顯示 IronPDF 如何從 Chrome 繼承可讀性功能 -->

IronPDF 利用 Google Chromium 的渲染引擎,其中包含內建的可讀性功能。 當 HTML 轉換成 PDF 時,Chrome 引擎:

1.保留 HTML 語義結構 - 保留標題、列表和表格的意義 2.轉移 ARIA 屬性 - 將無障礙屬性對應到 PDF 標籤 3.保持閱讀順序 - 分析 CSS 排版以獲得合乎邏輯的內容流程 4.處理複雜的佈局 - 正確標籤多欄文字和浮動元素

以下是從語意 HTML 建立可存取 PDF 的範例:

using IronPdf;

// Create renderer with accessibility-focused settings
var renderer = new ChromePdfRenderer();

// HTML with proper semantic structure
string accessibleHtml = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <title>Annual Report 2024</title>
</head>
<body>
    <header>
        <h1>Annual Financial Report</h1>
        <nav aria-label='Document navigation'>
            <ul>
                <li><a href='#summary'>Executive Summary</a></li>
                <li><a href='#finances'>Financial Overview</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <section id='summary'>
            <h2>Executive Summary</h2>
            <p>This report provides a comprehensive overview of our financial performance.</p>
        </section>

        <section id='finances'>
            <h2>Financial Overview</h2>
            <table>
                <caption>Quarterly Revenue Breakdown</caption>
                <thead>
                    <tr>
                        <th scope='col'>Quarter</th>
                        <th scope='col'>Revenue</th>
                        <th scope='col'>Growth</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Q1 2024</td>
                        <td>$1.2M</td>
                        <td>15%</td>
                    </tr>
                </tbody>
            </table>
        </section>
    </main>
</body>
</html>";

// Render to PDF and save as accessible PDF/UA
var pdf = renderer.RenderHtmlAsPdf(accessibleHtml);
pdf.SaveAsPdfUA("accessible-annual-report.pdf");
using IronPdf;

// Create renderer with accessibility-focused settings
var renderer = new ChromePdfRenderer();

// HTML with proper semantic structure
string accessibleHtml = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <title>Annual Report 2024</title>
</head>
<body>
    <header>
        <h1>Annual Financial Report</h1>
        <nav aria-label='Document navigation'>
            <ul>
                <li><a href='#summary'>Executive Summary</a></li>
                <li><a href='#finances'>Financial Overview</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <section id='summary'>
            <h2>Executive Summary</h2>
            <p>This report provides a comprehensive overview of our financial performance.</p>
        </section>

        <section id='finances'>
            <h2>Financial Overview</h2>
            <table>
                <caption>Quarterly Revenue Breakdown</caption>
                <thead>
                    <tr>
                        <th scope='col'>Quarter</th>
                        <th scope='col'>Revenue</th>
                        <th scope='col'>Growth</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Q1 2024</td>
                        <td>$1.2M</td>
                        <td>15%</td>
                    </tr>
                </tbody>
            </table>
        </section>
    </main>
</body>
</html>";

// Render to PDF and save as accessible PDF/UA
var pdf = renderer.RenderHtmlAsPdf(accessibleHtml);
pdf.SaveAsPdfUA("accessible-annual-report.pdf");
Imports IronPdf

' Create renderer with accessibility-focused settings
Dim renderer As New ChromePdfRenderer()

' HTML with proper semantic structure
Dim accessibleHtml As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <title>Annual Report 2024</title>
</head>
<body>
    <header>
        <h1>Annual Financial Report</h1>
        <nav aria-label='Document navigation'>
            <ul>
                <li><a href='#summary'>Executive Summary</a></li>
                <li><a href='#finances'>Financial Overview</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <section id='summary'>
            <h2>Executive Summary</h2>
            <p>This report provides a comprehensive overview of our financial performance.</p>
        </section>

        <section id='finances'>
            <h2>Financial Overview</h2>
            <table>
                <caption>Quarterly Revenue Breakdown</caption>
                <thead>
                    <tr>
                        <th scope='col'>Quarter</th>
                        <th scope='col'>Revenue</th>
                        <th scope='col'>Growth</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Q1 2024</td>
                        <td>$1.2M</td>
                        <td>15%</td>
                    </tr>
                </tbody>
            </table>
        </section>
    </main>
</body>
</html>"

' Render to PDF and save as accessible PDF/UA
Dim pdf = renderer.RenderHtmlAsPdf(accessibleHtml)
pdf.SaveAsPdfUA("accessible-annual-report.pdf")
$vbLabelText   $csharpLabel

目前支援哪些無障礙標準?

IronPDF 支援多種可讀性標準,以符合各種合規要求:

1.PDF/UA-1 - 透過 SaveAsPdfUA() 可存取 PDF 的主要標準 2.WCAG 2.1 AA 級 - 源 HTML 遵循 WCAG 標準時的合規性 3.Section 508 Refresh (2018) - 美國 符合 WCAG 2.0 的聯邦要求 4.EN 301 549 - 歐洲 ICT 產品無障礙標準

該資料庫還支援 UTF-8 和國際語言,確保不同語言和字元集的可讀性。

如何導出 PDF 以符合無障礙標準?

IronPDF 提供多種匯出選項,以符合不同的法規要求。 目前,您可以依據 PDF/A-3b 標準匯出文件。 瞭解更多資訊,請參閱 我們關於使用 IronPDF 進行 PDF/A 封存的文章

using IronPdf;

// Load or create a PDF document
var pdf = PdfDocument.FromFile("source-document.pdf");

// Export as PDF/UA for accessibility compliance
pdf.SaveAsPdfUA("accessible-output.pdf");

// Export as PDF/A for long-term archiving with accessibility
pdf.SaveAsPdfA("archived-accessible.pdf", PdfAVersions.PdfA3);

// Set document metadata for better accessibility
pdf.Metadata.Title = "2024 Accessibility Report";
pdf.Metadata.Author = "Compliance Department";
pdf.Metadata.Subject = "Annual accessibility compliance documentation";
pdf.Metadata.Keywords = "accessibility, Section 508, compliance, PDF/UA";
pdf.Metadata.Language = "en-US";

// Save with metadata
pdf.SaveAs("document-with-metadata.pdf");
using IronPdf;

// Load or create a PDF document
var pdf = PdfDocument.FromFile("source-document.pdf");

// Export as PDF/UA for accessibility compliance
pdf.SaveAsPdfUA("accessible-output.pdf");

// Export as PDF/A for long-term archiving with accessibility
pdf.SaveAsPdfA("archived-accessible.pdf", PdfAVersions.PdfA3);

// Set document metadata for better accessibility
pdf.Metadata.Title = "2024 Accessibility Report";
pdf.Metadata.Author = "Compliance Department";
pdf.Metadata.Subject = "Annual accessibility compliance documentation";
pdf.Metadata.Keywords = "accessibility, Section 508, compliance, PDF/UA";
pdf.Metadata.Language = "en-US";

// Save with metadata
pdf.SaveAs("document-with-metadata.pdf");
Imports IronPdf

' Load or create a PDF document
Dim pdf = PdfDocument.FromFile("source-document.pdf")

' Export as PDF/UA for accessibility compliance
pdf.SaveAsPdfUA("accessible-output.pdf")

' Export as PDF/A for long-term archiving with accessibility
pdf.SaveAsPdfA("archived-accessible.pdf", PdfAVersions.PdfA3)

' Set document metadata for better accessibility
pdf.Metadata.Title = "2024 Accessibility Report"
pdf.Metadata.Author = "Compliance Department"
pdf.Metadata.Subject = "Annual accessibility compliance documentation"
pdf.Metadata.Keywords = "accessibility, Section 508, compliance, PDF/UA"
pdf.Metadata.Language = "en-US"

' Save with metadata
pdf.SaveAs("document-with-metadata.pdf")
$vbLabelText   $csharpLabel

不同的合規要求應該使用哪種 PDF 標準?

<! -- PDF 標準比較圖 --> <!--說明:顯示不同 PDF 標準及其用例的視覺比較圖 -->

不同的產業和司法管轄區需要特定的 PDF 標準:

  • 政府/聯邦承包商PDF/UAPDF/A-3的可讀性和保存性
  • Healthcare (HIPAA)PDF/UA加密和密碼保護
  • 金融服務PDF/A-3b 內嵌原始資料
  • 教育程度PDF/UA 可存取的學生教材
  • 法律文件PDF/A 適用於具有無障礙環境的法院檔案

進一步了解 設定元資料和文件屬性以增強可讀性。

如何將現有的 PDF 轉換為無障礙格式?

將傳統 PDF 轉換為可存取格式需要仔細考慮文件結構:

using IronPdf;
using System.Collections.Generic;

// Load existing PDF
var existingPdf = PdfDocument.FromFile("legacy-document.pdf");

// Add document structure and metadata
existingPdf.Metadata.Title = "Converted Accessible Document";
existingPdf.Metadata.Language = "en-US";

// Extract and re-render for better structure (if original lacks tags)
string extractedHtml = existingPdf.ExtractHtmlString();

// Create new accessible version
var renderer = new ChromePdfRenderer()
{
    RenderingOptions = new ChromePdfRenderOptions()
    {
        MarginTop = 40,
        MarginBottom = 40,
        EnableJavaScript = true,
        RenderDelay = 500 // Allow time for JavaScript rendering
    }
};

// Re-render with proper structure
var accessiblePdf = renderer.RenderHtmlAsPdf(extractedHtml);
accessiblePdf.SaveAsPdfUA("converted-accessible.pdf");
using IronPdf;
using System.Collections.Generic;

// Load existing PDF
var existingPdf = PdfDocument.FromFile("legacy-document.pdf");

// Add document structure and metadata
existingPdf.Metadata.Title = "Converted Accessible Document";
existingPdf.Metadata.Language = "en-US";

// Extract and re-render for better structure (if original lacks tags)
string extractedHtml = existingPdf.ExtractHtmlString();

// Create new accessible version
var renderer = new ChromePdfRenderer()
{
    RenderingOptions = new ChromePdfRenderOptions()
    {
        MarginTop = 40,
        MarginBottom = 40,
        EnableJavaScript = true,
        RenderDelay = 500 // Allow time for JavaScript rendering
    }
};

// Re-render with proper structure
var accessiblePdf = renderer.RenderHtmlAsPdf(extractedHtml);
accessiblePdf.SaveAsPdfUA("converted-accessible.pdf");
Imports IronPdf
Imports System.Collections.Generic

' Load existing PDF
Dim existingPdf = PdfDocument.FromFile("legacy-document.pdf")

' Add document structure and metadata
existingPdf.Metadata.Title = "Converted Accessible Document"
existingPdf.Metadata.Language = "en-US"

' Extract and re-render for better structure (if original lacks tags)
Dim extractedHtml As String = existingPdf.ExtractHtmlString()

' Create new accessible version
Dim renderer = New ChromePdfRenderer() With {
    .RenderingOptions = New ChromePdfRenderOptions() With {
        .MarginTop = 40,
        .MarginBottom = 40,
        .EnableJavaScript = True,
        .RenderDelay = 500 ' Allow time for JavaScript rendering
    }
}

' Re-render with proper structure
Dim accessiblePdf = renderer.RenderHtmlAsPdf(extractedHtml)
accessiblePdf.SaveAsPdfUA("converted-accessible.pdf")
$vbLabelText   $csharpLabel

在建立可存取的 PDF 時,有哪些常見問題?

使 PDF 無法符合無障礙標準的常見問題:

1.遺漏替代文字:無說明的圖片 2.不正確的閱讀順序:複雜的佈局會混淆輔助技術 3.色彩對比度低:對比度低會降低可讀性 4.缺少語言聲明:螢幕閱讀器需要語言資訊 5.不當的表格結構:缺乏標頭和範圍屬性的表格

IronPDF 可保留 HTML 語義結構,並自動生成適當的 PDF 標籤,有助於避免這些問題。

我該如何取得無障礙功能的支援?

請聯絡我們的開發人員支援,以瞭解如何改善無障礙功能。 我們的工程團隊會根據開發人員的回饋和不斷演進的標準,積極增強功能。 提交詳細的支援請求

  • 您所在行業的特定無障礙要求
  • PDF/UA 驗證工具的問題
  • 自訂標籤或結構需求
  • 與可讀性測試工具整合

在聯絡支援人員之前,請確保您有 1.更新至最新版本的 IronPDF 2.應用您的授權金鑰以獲得完整功能 3.使用示範文件證明問題進行測試 4.收集錯誤訊息或驗證報告

我應該在何時就無障礙問題聯絡支援人員?

遇到問題時請聯絡支援人員:

  • 驗證失敗:PDF 未通過 PAC 3 或 Adobe 無障礙檢查器
  • 螢幕閱讀問題:輔助技術無法閱讀文件
  • 合規性疑慮:需要法規要求的指引
  • 效能問題:大型可存取文件造成問題
  • 客製化需求:標準遵從之外的獨特無障礙需求

未來計劃提供哪些無障礙功能?

IronPDF 的發展藍圖包括持續的可讀性改進:

  • 增強對數學公式和科學符號的支援
  • 改善表單欄位處理,提供更好的標籤
  • 複雜資料關係的進階表格標籤
  • 自動化無障礙報告產生
  • 與可讀性測試 API 整合
  • 支援新興的 PDF 2.0 可訪問性功能

分享您的無障礙需求,以協助優先處理未來的開發工作。

常見問題解答

什麼是 Section 508 規範,為什麼它對 PDF 文件很重要?

Section 508 規範是美國聯邦規定,以確保殘障人士能存取數位內容。對 PDF 而言,這意味著包括適當的文件結構、圖片的替代文字以及邏輯的閱讀順序。IronPDF 使用其 SaveAsPdfUA() 方法自動處理這些要求,幫助組織避免法律懲罰,並確保其文件可供所有使用者存取。

如何建立符合 Section 508 要求的可存取 PDF?

使用 IronPDF 创建可访问的 PDF 非常简单。只需一行代碼,您就可以將任何現有的 PDF 轉換成符合 Section 508 的 PDF:IronPdf.PdfDocument.FromFile("input.pdf").SaveAsPdfUA("output-accessible.pdf").此方法可自動加入所有所需的輔助功能,包括適當的標籤、結構和元資料。

生成 PDF 時會自動包含哪些輔助功能?

IronPDF 自動包含基本的可讀性功能,例如:適當閱讀順序的標記內容結構、圖片的替代文字、適當的標題層次(H1、H2、H3)、螢幕閱讀器的語言規格、邏輯閱讀順序以及適當的對比度。這些功能透過 Google Chromium 的渲染引擎來實現,IronPDF 利用該引擎來產生 PDF。

什麼是 PDF/UA,它與可存取的 PDF 有何關聯?

PDF/UA (Universal Accessibility) 是可存取 PDF 文件的國際標準。它定義了 PDF 與屏幕閱讀器等輔助技術相容的技術要求。IronPDF 的 SaveAsPdfUA() 方法可自動生成符合 PDF/UA 標準的 PDF,確保您的文件同時符合國際可讀性指南和 Section 508 的要求。

不建立可存取 PDF 的商業風險為何?

不遵守可訪問性標準可能會導致嚴重後果,包括根據 ADA 受到法律處罰、失去聯邦合約、約 20% 的殘障人士被排除在外,以及品牌聲譽受損。IronPDF 可自動確保您的 PDF 符合可存取性要求,而無需具備廣泛的 PDF/UA 規格技術知識,有助於降低這些風險。

圖書館如何自動處理複雜的可存取性要求?

IronPDF 利用 Google Chromium 的 HTML 渲染引擎,繼承了 Google 廣泛的可讀性改進。當您使用 SaveAsPdfUA() 方法時,函式庫會自動處理複雜的需求,例如適當的文件標籤、元資料插入、閱讀順序建立,以及結構層次 - 所有這些都不需要開發人員瞭解 PDF 可存取性標準的複雜細節。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 17,386,124 | 版本: 2026.2 剛剛發布