IronPDF ile C# ile Bölüm 508 Uyumlu ve Erişilebilir PDF'ler Nasıl Oluşturulur?
C# .NET'te IronPDF ile erişilebilir PDF üretimi, Ek 508 ve WCAG 2.0 AA gereksinimlerini kutudan çıkar çıkmaz karşılayan PDF/UA uyumlu belgeler üretir. IronPDF'nin RenderHtmlAsPdfUA yöntemi, HTML'den oluşturulan PDF'lere etiketli içerik yapısı, okuma sırası, alternatif metin işleme ve erişilebilirlik meta verilerini otomatik olarak ekler. Böylece .NET geliştiricileri, devlet kurumları, sağlık hizmetleri sağlayıcıları ve federal sözleşmelerle çalışan tüm kuruluşlar için ekran okuyucu uyumlu belgeler oluşturabilir.
Kısa-Özet: Hızlı Başlangıç Kılavuzu
Bu öğretici, C# .NET'te Ek 508 uyumlu ve PDF/UA erişilebilir belgeleri oluşturmayı, etiketli yapı üretiminden form erişilebilirliğine ve uyumluluk doğrulamasına kadar kapsar.
- Bu kimler için: Govmüşterilerde .NET geliştiricileri, federal projelerde veya erişilebilirliğin yasal olarak gerekli olduğu sağlık/eğitim sistemlerinde yer alır.
- Ne oluşturacaksınız: HTML'den PDF/UA üretimi, eski PDF'nin PDF/UA'ya dönüştürülmesi, dil etiketlemesi, anlamsal HTML'den etiketlenmiş yapı, görüntüler için alternatif metin, erişilebilir tablolar, yer işareti gezintisi ve etiketlenmiş form alanları.
- Nerede çalışır: .NET 10, .NET 8 LTS, .NET Framework 4.6.2+ ve .NET Standard 2.0.
- Ne zaman bu yöntemi kullanmalısınız: PDF'lerinizin Ek 508 denetimlerinden geçmesi, PDF/UA (ISO 14289) doğrulaması veya WCAG 2.0 Seviye AA gerekliliklerini karşılaması gerektiğinde.
- Teknik olarak neden önemlidir: Standart PDF'ler anlamsal yapıdan yoksundur. IronPDF iyi biçimlendirilmiş HTML'den ekran okuyucuların ihtiyaç duyduğu etiketlenmiş içerik yapısını otomatik olarak oluşturur.
Sadece birkaç kod satırıyla Ek 508 uyumlu bir PDF/UA belgesi oluşturun:
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdfUA("<html lang='en'><body><h1>Accessible PDF</h1></body></html>"); pdf.SaveAs("accessible-document.pdf"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
IronPDF'yi satın aldıktan veya 30 günlük denemeye kaydolduktan sonra, başvurunuzda lisans anahtarınızı ekleyin.
IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf
IronPdf.License.LicenseKey = "KEY"
Bugün IronPDF ile projenizde ücretsiz bir deneme ile başlayın.
İçindekiler
- Özet: Hızlı Başlangıç Kılavuzu
- Erişebilirlik Standartlarını Anlamak
- Erişilebilir PDF'ler Oluşturma
- Gelişmiş Erişilebilirlik Özellikleri
- Doğrulama ve En İyi Uygulamalar
Ek 508 Uyum Nedir ve PDF'ler İçin Neden Önemlidir?
Ek 508, 1998 yılında 1973 tarihli Rehabilitasyon Yasası'na yapılan bir değişikliği ifade eder. Bu federal yasa, federal ajanslar tarafından geliştirilen, ihale edilen, bakımı yapılan veya kullanılan tüm elektronik ve bilgi teknolojisinin engelli bireyler için erişilebilir olmasını gerektirir. Kapsam, hükümet ofislerinin ötesine uzanır. Federal finansman alan, federal ajanslarla sözleşme yapan veya hükümet varlıklarına teknolojik hizmetler sunan herhangi bir kurumun da uyması gerekir.
Pratik sonuçlar çok büyüktür. Bir yüklenici, federal bir sağlık programı için yazılım oluştururken, ekran üzerinde doğru görünen PDF raporlarını sadece teslim edemez. Bu belgeler, ekran okuyucular tarafından okunabilir olmalı, klavye ile gezilebilir olmalı ve yardımcı teknolojilerin yorumlayabileceği şekilde yapılandırılmış olmalıdır. Bu gerekliliklerin yerine getirilememesi, teslim edilenlerin reddedilmesi, kaybedilen sözleşmeler ve potansiyel yasal işlemlerle sonuçlanabilir.
PDF'ler erişilebilirlik için benzersiz zorluklar sunar. HTML web sayfalarının aksine, yerleşik erişilebilirlik özellikleriyle tarayıcılar tarafından oluşturulan PDF dosyaları kendi yapısal bilgilerini taşıyan, bağımsız belgeler olmalıdır. Görsel olarak mükemmel görünen bir PDF, ekran okuyucularına güvenen biri için tam anlamıyla kullanılamaz hale gelebilir, eğer uygun etiketleme, mantıksal okuma sırası veya görüntüler için alternatif metin eksikse.
Uyumluluğun ihlal edilmesi, yasal risklerin ötesine geçer. Erişilemeyen belgeler üreten kuruluşlar, izleyici kitlesinin önemli bir bölümünü fiilen dışlar. Dünya Sağlık Örgütü'ne göre, küresel nüfusun yaklaşık %16'sı engelliliğin bir formunu deneyimliyor. Hükümet hizmetleri ve federal olarak finanse edilen programlar için, bu bireyleri dışlamak, sadece kötü bir uygulama değil, sivil hak korumalarının ihlalidir.
PDF/UA ve WCAG Nedir ve Ek 508 İle Nasıl İlişkilidirler?
Farklı erişilebilirlik standartları arasındaki ilişkiyi anlamak, geliştiricilerin gerçekten neyi uygulamaları gerektiğini açıklığa kavuşturmaya yardımcı olur. Erişilebilir PDF'ler konusunda tartışırken, üç ana standart örtüşür: Ek 508, WCAG ve PDF/UA.
Yaygın olarak WCAG olarak bilinen Web İçeriği Erişilebilirlik Kılavuzları, Dünya Çapında Ağ Konsorsiyumu'ndan doğmuştur. Bu kılavuzlar, dijital içeriği algılayabilir, çalıştırabilir, anlaşılabilir ve sağlam hale getirmek için ilkeler belirler. WCAG öncelikle web içeriği için tasarlanmış olsa da, ilkeleri PDF belgelerine de eşit olarak uygulanır. 2017 yılında güncellenen yenilenmiş Ek 508 standartları, teknik uyum ölçütü olarak WCAG 2.0 Seviye AA'yı doğrudan kapsamına alır. Bu, WCAG 2.0 AA gereksinimlerini karşılamanın, elektronik belgeler için Ek 508 gerekliliklerini karşılamakla aynı şey olduğu anlamına gelir.
PDF/UA, PDF/Evrensel Erişilebilirlik anlamına gelir ve erişilebilir PDF belgeleri için özel olarak tasarlanmış bir ISO standardı (ISO 14289) dır. WCAG, erişilebilir içeriğin neyi başarması gerektiğini tanımlarken, PDF/UA bu hedeflere ulaşmak için PDF dosyalarının nasıl içsel olarak yapılandırılması gerektiğini tam olarak belirler. Standart, etiketlenmiş içerik, metadata, dil belirtimi, alternatif metin ve onlarca başka teknik unsurlar için gereksinimleri tanımlar.
Bu standartları tamamlayıcı katmanlar olarak düşünün. WCAG, kullanıcıların ihtiyaç duyduğu erişilebilirlik sonuçlarını kurar. PDF/UA, PDF formatında bu sonuçlara ulaşmanın teknik özelliklerini sağlar. Ek 508, WCAG'a uyumu gerektiren yasal zorunluluğu oluşturur ve bu da PDF belgeleri için PDF/UA'yı uygulama yolu olarak işaret eder.
Geliştiriciler için pratik çıkarım basittir. PDF/UA uyumlu belgeler oluşturmak, Ek 508 uyumunun teknik gerekliliklerini karşılar. IronPDF, yerleşik erişilebilirlik özellikleriyle bu karmaşıklığın çoğunu ele alır, böylece içerik üzerine odaklanabilirken, kütüphane altındaki PDF yapısını yönetir.
Mevcut Bir PDF'yi C# ile PDF/UA Formatına Nasıl Dönüştürebilirim?
Birçok organizasyon, erişilebilirlik bir öncelik haline gelmeden önce oluşturulmuş mevcut PDF belgeleri kitaplıklarına sahiptir. Bu belgeleri sıfırdan yeniden yaratmak yerine, IronPDF standart PDF'leri PDF/UA formatına dönüştürmenize olanak tanır. Bu dönüştürme süreci, yardımcı teknolojilerle uyumluluk için gerekli etiketli yapıyı ve metadatasını ekler.
Dönüştürme işlemi, mevcut bir PdfDocument nesnesini alıp PDF/UA formatında dışa aktaran SaveAsPdfUA yöntemini kullanır. İşte tamamen çalışan bir örnek.
Giriş PDF
Bu örnekte, dönüştürülmesi gereken tipik bir eski belgeyi temsil eden, erişilebilirlik özellikleri içermeyen standart bir PDF olan sample-document.pdf kullanıyoruz.
Aşağıdaki kod, PdfDocument.FromFile() kullanarak mevcut bir PDF dosyasını yükler, ardından SaveAsPdfUA()'yi çağırarak PDF/UA-1 uyumlu yeni bir sürümü dışa aktarır. IronPDF, belge yapısını otomatik olarak analiz eder ve gerekli etiketli içerik, metadatası ve erişilebilirlik işaretlerini ekler.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/convert-to-pdfua.cs
using IronPdf;
using System;
string inputPath = "document.pdf";
string outputPath = "document-accessible.pdf";
// Load the existing PDF document
PdfDocument pdf = PdfDocument.FromFile(inputPath);
// Export as PDF/UA compliant document
// The method automatically adds required accessibility structure
pdf.SaveAsPdfUA(outputPath);
Console.WriteLine($"Successfully converted {inputPath} to PDF/UA format.");
Imports IronPdf
Imports System
Dim inputPath As String = "document.pdf"
Dim outputPath As String = "document-accessible.pdf"
' Load the existing PDF document
Dim pdf As PdfDocument = PdfDocument.FromFile(inputPath)
' Export as PDF/UA compliant document
' The method automatically adds required accessibility structure
pdf.SaveAsPdfUA(outputPath)
Console.WriteLine($"Successfully converted {inputPath} to PDF/UA format.")
Başlangıçta lang özniteliği ile HTML'den oluşturulan belgeler için, dil özellikleri PDF/UA yapısında korunur. Aşağıdaki örnek, dil etiketlemesinin HTML kaynağından nasıl aktarıldığını gösterir.
Giriş PDF
Bu örnekte, orijinal HTML kaynağındaki dil korunarak erişilebilirlik dönüştürmesi gereken bir avantajlar belgesi olan benefits-summary.pdf kullanılmaktadır.
Kod, PDF'yi yükler ve dönüştürmek için SaveAsPdfUA()'yi çağırır. Orijinal HTML lang özniteliğindeki dil belirtimi, PDF/UA yapısında korunur ve ekran okuyucuların doğru telaffuz kurallarını kullanmasını sağlar.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/convert-with-language.cs
using IronPdf;
using System;
string inputPath = "document.pdf";
string outputPath = "document-accessible.pdf";
PdfDocument pdf = PdfDocument.FromFile(inputPath);
// Language is specified via the lang attribute in the HTML source.
// The PDF/UA structure preserves the language for screen readers.
pdf.SaveAsPdfUA(outputPath);
Console.WriteLine("Conversion complete with language specification.");
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim inputPath As String = "document.pdf"
Dim outputPath As String = "document-accessible.pdf"
Dim pdf As PdfDocument = PdfDocument.FromFile(inputPath)
' Language is specified via the lang attribute in the HTML source.
' The PDF/UA structure preserves the language for screen readers.
pdf.SaveAsPdfUA(outputPath)
Console.WriteLine("Conversion complete with language specification.")
End Sub
End Module
IronPDF varsayılan olarak PDF/UA-1 çıktısı üretir, bu standartın yaygın kabul gördüğü sürümdür. Dönüştürme süreci, mevcut PDF yapısını analiz eder ve başlıklar, paragraflar, listeler ve diğer içerik öğeleri için uygun etiketler ekler. Otomatik dönüştürme birçok belge için iyi çalışsa da, karmaşık düzenler veya taranmış görüntüler tam uyumu sağlamak için ek elle müdahale gerektirebilir.
HTML'yi Direkt Olarak Erişilebilir PDF/UA Belgesine Nasıl Açıklayabilirim?
Mevcut PDF'leri dönüştürmek eski içerikle ilgilenir, ancak yeni belgeler başlangıçtan itibaren erişilebilirlik düşünülerek oluşturulmanın avantajını taşır. IronPDF'nin RenderHtmlAsPdfUA yöntemi, HTML girdisinden doğrudan standartlara uygun çıktı üretir. Bu yaklaşım, iyi yapılandırılmış HTML'de zaten var olan anlamsal yapıyı kullanarak iyi yapılandırılmış PDF'ler yaratır.
Aşağıdaki örnek bir HTML dizgisini erişilebilir bir PDF'ye nasıl dönüştürdüğünü gösterir.
Kod, bir ChromePdfRenderer örneği oluşturur ve başlıklar ve paragraflar gibi anlamsal öğeler içeren bir HTML dizesi ile RenderHtmlAsPdfUA()'yi çağırır. Renderer, HTML yapısını PDF etiketleri olarak korur, MetaData.Title aracılığıyla belge başlığını ayarlar ve uyumlu çıktıyı kaydeder. HTML öğesindeki lang='en' özniteliği, ekran okuyucu dil algılaması için PDF'ye aktarılır.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/render-html-to-pdfua.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>Quarterly Financial Report</title>
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; }
h1 { color: #333; }
h2 { color: #555; margin-top: 20px; }
p { margin-bottom: 15px; }
table { border-collapse: collapse; width: 100%; margin: 20px 0; }
th, td { border: 1px solid #ddd; padding: 12px; text-align: left; }
th { background-color: #f4f4f4; }
</style>
</head>
<body>
<h1>Q4 2024 Financial Summary</h1>
<p>This report provides an overview of financial performance for the fourth quarter.</p>
<h2>Revenue Highlights</h2>
<p>Total revenue increased by 12% compared to the previous quarter, driven primarily by expansion in the enterprise segment.</p>
<h2>Expense Analysis</h2>
<p>Operating expenses remained stable, with a slight reduction in administrative costs offset by increased investment in research and development.</p>
</body>
</html>";
// Render directly to PDF/UA format
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
// Set additional metadata for accessibility
pdf.MetaData.Title = "Q4 2024 Financial Summary";
pdf.SaveAs("financial-report-accessible.pdf");
Console.WriteLine("Accessible PDF created successfully.");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>Quarterly Financial Report</title>
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; }
h1 { color: #333; }
h2 { color: #555; margin-top: 20px; }
p { margin-bottom: 15px; }
table { border-collapse: collapse; width: 100%; margin: 20px 0; }
th, td { border: 1px solid #ddd; padding: 12px; text-align: left; }
th { background-color: #f4f4f4; }
</style>
</head>
<body>
<h1>Q4 2024 Financial Summary</h1>
<p>This report provides an overview of financial performance for the fourth quarter.</p>
<h2>Revenue Highlights</h2>
<p>Total revenue increased by 12% compared to the previous quarter, driven primarily by expansion in the enterprise segment.</p>
<h2>Expense Analysis</h2>
<p>Operating expenses remained stable, with a slight reduction in administrative costs offset by increased investment in research and development.</p>
</body>
</html>"
' Render directly to PDF/UA format
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
' Set additional metadata for accessibility
pdf.MetaData.Title = "Q4 2024 Financial Summary"
pdf.SaveAs("financial-report-accessible.pdf")
Console.WriteLine("Accessible PDF created successfully.")
Çıktı PDF
Yukarıdaki kod, anlamsal olarak yapılandırılmış bir PDF/UA belgesi üretir:
HTML'nin html elementi üzerinde bir lang özelliği içerdiğine dikkat edin. Bu özellik PDF'ye aktarılır ve ekran okuyucuların belge dilini tanımlamasına yardımcı olur. h1, h2 ve p gibi anlamsal HTML öğeleri, doğrudan uygun PDF etiketlerine çevrilerek yardımcı teknolojilerin gezinebileceği mantıksal bir belge yapısı yaratır.
HTML dosyalarını veya URL'leri dizgiler yerine işlemek için IronPDF, karşılık gelen yöntemler sunar.
Aşağıdaki kod iki yaklaşımı göstermektedir: RenderHtmlFileAsPdf() yerel bir dosya yolundan HTML yüklerken, RenderUrlAsPdf() bir web URL'sinden içeriği alır ve görüntüler. Her iki yöntem de standart PDF'ler üretir ve bunlar daha sonra SaveAsPdfUA() kullanılarak PDF/UA formatına dönüştürülür. Bu iki aşamalı yaklaşım, erişilebilirlik dönüşümünden önce ek işlem uygulamanız gerektiğinde iyi çalışır.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/render-from-file-url.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render from an HTML file on disk
PdfDocument pdfFromFile = renderer.RenderHtmlFileAsPdf("report.html");
// Convert the rendered PDF to PDF/UA format
pdfFromFile.SaveAsPdfUA("report-accessible.pdf");
// Render from a web URL
PdfDocument pdfFromUrl = renderer.RenderUrlAsPdf("https://example.com");
// Convert to accessible format
pdfFromUrl.SaveAsPdfUA("webpage-accessible.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Render from an HTML file on disk
Dim pdfFromFile As PdfDocument = renderer.RenderHtmlFileAsPdf("report.html")
' Convert the rendered PDF to PDF/UA format
pdfFromFile.SaveAsPdfUA("report-accessible.pdf")
' Render from a web URL
Dim pdfFromUrl As PdfDocument = renderer.RenderUrlAsPdf("https://example.com")
' Convert to accessible format
pdfFromUrl.SaveAsPdfUA("webpage-accessible.pdf")
Erişilebilirlik Uyumunu Sağlamak için Belge Metadatasını Nasıl Ayarlarım?
PDF metadatası, erişilebilirlikte birden fazla amaca hizmet eder. Yardımcı teknolojiler, kullanıcıların ne okuduklarını tanımlamalarına yardımcı olmak için başlık ve yazar gibi belge özelliklerini duyurur. Arama motorları ve belge yönetim sistemleri, indeksleme ve elde etme için metadatasını kullanır. Uyum doğrulayıcılar, gereken metadata alanlarının doldurulduğunu kontrol eder.
IronPDF, PdfDocument nesnelerinin MetaData özelliği aracılığıyla meta verileri ortaya çıkarır. Aşağıdaki özellikler erişilebilirlik için en önemlisidir.
Giriş PDF
Bu örnekte, erişilebilirlik uyumluluğu ve belge yönetimi için kapsamlı meta verilere ihtiyaç duyan bir taslak avantaj kayıt kılavuzu olan enrollment-guide-draft.pdf kullanılmaktadır.
Kod, mevcut bir PDF dosyasını yükler ve tüm önemli meta veri özelliklerini yapılandırır: Title (ekran okuyucular tarafından duyurulur), Author (kaynağı tanımlar), Subject (kısa açıklama), Keywords (arama yapılabilirlik için), Creator (kaynak uygulama) ve tarih damgaları. Son olarak, SaveAsPdfUA(), belgeyi hem meta verilerle hem de PDF/UA erişilebilirlik yapısıyla birlikte dışa aktarır.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/set-metadata.cs
using IronPdf;
using System;
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
// Set the document title - critical for accessibility
// Screen readers announce this when opening the document
pdf.MetaData.Title = "Employee Benefits Enrollment Guide 2024";
// Author information helps identify document source
pdf.MetaData.Author = "Human Resources Department";
// Subject provides a brief description
pdf.MetaData.Subject = "Guide to selecting and enrolling in employee benefit programs";
// Keywords improve searchability
pdf.MetaData.Keywords = "benefits, enrollment, health insurance, retirement, HR";
// Creator identifies the originating application
pdf.MetaData.Creator = "Benefits Portal v3.2";
// Set document dates
pdf.MetaData.CreationDate = DateTime.Now;
pdf.MetaData.ModifiedDate = DateTime.Now;
// Save as PDF/UA with complete metadata
pdf.SaveAsPdfUA("document-accessible.pdf");
Console.WriteLine("Document metadata configured for accessibility.");
Imports IronPdf
Imports System
Dim pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
' Set the document title - critical for accessibility
' Screen readers announce this when opening the document
pdf.MetaData.Title = "Employee Benefits Enrollment Guide 2024"
' Author information helps identify document source
pdf.MetaData.Author = "Human Resources Department"
' Subject provides a brief description
pdf.MetaData.Subject = "Guide to selecting and enrolling in employee benefit programs"
' Keywords improve searchability
pdf.MetaData.Keywords = "benefits, enrollment, health insurance, retirement, HR"
' Creator identifies the originating application
pdf.MetaData.Creator = "Benefits Portal v3.2"
' Set document dates
pdf.MetaData.CreationDate = DateTime.Now
pdf.MetaData.ModifiedDate = DateTime.Now
' Save as PDF/UA with complete metadata
pdf.SaveAsPdfUA("document-accessible.pdf")
Console.WriteLine("Document metadata configured for accessibility.")
Title özelliğine özellikle dikkat edilmelidir. PDF görüntüleyicileri, başlık çubuğunda ve sekmelerinde ya dosya adını ya da belge başlığını görüntüleyebilir. Erişilebilirlik için, anlamlı bir bağlam sağladığı için belge başlığı görüntülenmelidir. "Çalışan Yardımlar Katılım Kılavuzu 2024" gibi bir başlık, "doc_final_v3_revised.pdf" gibi bir dosya adından çok daha kullanışlıdır.
HTML'den yeni PDF'ler oluştururken, kaydetmeden önce metadatası ayarlayabilirsiniz.
Kod, RenderHtmlAsPdfUA() kullanarak HTML'yi doğrudan PDF/UA formatına dönüştürür, ardından PdfDocument nesnesinde tüm meta veri özelliklerini yapılandırır ve SaveAs() işlevini çağırır. Bu yaklaşım, yeni uyumlu belgeler oluşturmak için ideal olan tek bir iş akışı içinde erişilebilirlik yapısını ve metadatasını gömer.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/new-document-metadata.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string html = @"
<!DOCTYPE html>
<html lang='en'>
<head><title>Policy Document</title></head>
<body>
<h1>Information Security Policy</h1>
<p>This document outlines security requirements for all employees.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(html);
// Configure comprehensive metadata
pdf.MetaData.Title = "Information Security Policy";
pdf.MetaData.Author = "IT Security Team";
pdf.MetaData.Subject = "Corporate security requirements and guidelines";
pdf.MetaData.Keywords = "security, policy, compliance, data protection";
pdf.MetaData.Creator = "Policy Management System";
pdf.MetaData.CreationDate = DateTime.Now;
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.SaveAs("security-policy-accessible.pdf");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
Dim html As String = "
<!DOCTYPE html>
<html lang='en'>
<head><title>Policy Document</title></head>
<body>
<h1>Information Security Policy</h1>
<p>This document outlines security requirements for all employees.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(html)
' Configure comprehensive metadata
pdf.MetaData.Title = "Information Security Policy"
pdf.MetaData.Author = "IT Security Team"
pdf.MetaData.Subject = "Corporate security requirements and guidelines"
pdf.MetaData.Keywords = "security, policy, compliance, data protection"
pdf.MetaData.Creator = "Policy Management System"
pdf.MetaData.CreationDate = DateTime.Now
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.SaveAs("security-policy-accessible.pdf")
Ekran Okuyucular için Belge Dilini Nasıl Belirtirim?
Dil belirtimi, içeriğin nasıl seslendirileceğini doğrudan etkileyen temel bir erişilebilirlik gereksinimidir. Yardımcı teknoloji metinle karşılaştığında, uygun telaffuz kurallarını, sesi ve okuma kalıplarını seçmek için belirtilen dili kullanır. Dil belirtimi olmayan bir belge, yazılımı tahmin etmeye zorlar ve çoğunlukla bozuk veya anlaşılmaz ses çıktısına neden olur.
PDF/UA uyumu için, belge ana dilini belirtmek zorundadır. IronPDF, bunu HTML kaynağındaki lang özniteliği aracılığıyla gerçekleştirir ve bu öznitelik PDF/UA çıktısında korunur.
Kod, iki dil senaryosunu gösterir. İlki, html öğesinde lang='en' ile İngilizce HTML içeriğini görüntülerken, ikincisi lang='es' ile İspanyolca içeriği işler. RenderHtmlAsPdfUA() yöntemi, HTML'deki dil özniteliğini korur ve SaveAsPdfUA() bunu çıktıda da korur. Bu, ekran okuyucuların belgenin ana dili için doğru telaffuz kurallarını uygulamasını sağlar.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/set-language.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head><title>Annual Report</title></head>
<body>
<h1>Annual Report 2024</h1>
<p>This report summarizes organizational activities and financial performance.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
// Language is set via lang='en' in the HTML; SaveAsPdfUA preserves it
pdf.SaveAsPdfUA("annual-report.pdf");
string htmlContentEs = @"
<!DOCTYPE html>
<html lang='es'>
<head><title>Informe Anual</title></head>
<body>
<h1>Informe Anual 2024</h1>
<p>Este informe resume las actividades organizacionales y el desempeño financiero.</p>
</body>
</html>";
PdfDocument pdfEs = renderer.RenderHtmlAsPdfUA(htmlContentEs);
// Language is set via lang='es' in the HTML; SaveAsPdfUA preserves it
pdfEs.SaveAsPdfUA("informe-anual.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head><title>Annual Report</title></head>
<body>
<h1>Annual Report 2024</h1>
<p>This report summarizes organizational activities and financial performance.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
' Language is set via lang='en' in the HTML; SaveAsPdfUA preserves it
pdf.SaveAsPdfUA("annual-report.pdf")
Dim htmlContentEs As String = "
<!DOCTYPE html>
<html lang='es'>
<head><title>Informe Anual</title></head>
<body>
<h1>Informe Anual 2024</h1>
<p>Este informe resume las actividades organizacionales y el desempeño financiero.</p>
</body>
</html>"
Dim pdfEs As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContentEs)
' Language is set via lang='es' in the HTML; SaveAsPdfUA preserves it
pdfEs.SaveAsPdfUA("informe-anual.pdf")
IronPDF, standart HTML lang özniteliği aracılığıyla dil belirtimini destekler. Yaygın dil kodları arasında en (İngilizce), es (İspanyolca), fr (Fransızca), de (Almanca), pt (Portekizce), zh (Çince), ja (Japonca), ko (Korece) ve ar (Arapça) gibi birçok dil kodu bulunmaktadır.
Birden fazla dil içeren belgeler için, ana belge dili içeriğin baskınını yansıtmalıdır. Yardımcı teknolojiler, ara sıra yabancı ifadeleri makul bir şekilde işler, ancak birden fazla dilde önemli miktarda içerik içeren belgeler, özel yaklaşımlar gerektirebilecek daha karmaşık zorluklar sunar.
HTML'den Erişilebilir Etiketli PDF Yapısını Nasıl Oluştururum?
Etiketli PDF yapısı, erişilebilirliğin omurgasını oluşturur. Etiketler, içerik organizasyonunu mantıksal olarak belirler, başlıkları paragraflardan ayırır, listeleri ve liste öğelerini tanımlar, tabloları işaretler ve okuma sırasını belirler. Doğru etiketleme olmadan, yardımcı teknolojiler belge yapısını kullanıcılara aktaramaz.
IronPDF ile iyi etiketlenmiş PDF'ler oluşturmanın en verimli yolu, anlamsal HTML ile başlamaktır. Chromium render motoru, HTML elemanlarını karşılık gelen PDF etiketlerine çevirerek PDF'ye dönüştürürken HTML yapısını korur. İyi yazılmış HTML, otomatik olarak iyi PDF yapıları üretir.
Uygun anlamsal işaretlemeyi gösteren şu örneği düşünün.
Kod, net bir başlık hiyerarşisine (h1 ana başlık, h2 bölümler, h3 alt bölümler), sıralanmamış listeler (li) ve numaralı diziler için sıralı listeler (li) içerir. RenderHtmlAsPdfUA() yöntemi, bu anlamsal öğeleri yardımcı teknolojilerin gezinebileceği karşılık gelen PDF etiketlerine dönüştürür.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/semantic-structure.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Project Proposal</title>
<style>
body { font-family: Georgia, serif; line-height: 1.8; max-width: 800px; margin: 0 auto; padding: 20px; }
h1 { font-size: 28px; border-bottom: 2px solid #333; padding-bottom: 10px; }
h2 { font-size: 22px; color: #444; margin-top: 30px; }
h3 { font-size: 18px; color: #666; }
ul, ol { margin-left: 20px; }
li { margin-bottom: 8px; }
</style>
</head>
<body>
<h1>Website Redesign Proposal</h1>
<h2>Executive Summary</h2>
<p>This proposal outlines a comprehensive redesign of the corporate website to improve user experience, accessibility, and conversion rates.</p>
<h2>Project Objectives</h2>
<p>The redesign aims to achieve several key goals:</p>
<ul>
<li>Improve mobile responsiveness across all device types</li>
<li>Achieve WCAG 2.1 Level AA compliance for accessibility</li>
<li>Reduce page load times by 40 percent</li>
<li>Increase conversion rates through improved user flows</li>
</ul>
<h2>Implementation Timeline</h2>
<p>The project will proceed in three phases:</p>
<ol>
<li>Discovery and planning: weeks one through four</li>
<li>Design and development: weeks five through twelve</li>
<li>Testing and launch: weeks thirteen through sixteen</li>
</ol>
<h3>Phase One Details</h3>
<p>The discovery phase includes stakeholder interviews, competitive analysis, and technical assessment of the current platform.</p>
<h3>Phase Two Details</h3>
<p>Design and development will follow an agile methodology with two-week sprints and regular stakeholder reviews.</p>
<h2>Budget Considerations</h2>
<p>The proposed budget covers all aspects of the redesign including design, development, content migration, and quality assurance testing.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
pdf.MetaData.Title = "Website Redesign Proposal";
pdf.MetaData.Author = "Digital Strategy Team";
pdf.SaveAs("proposal-accessible.pdf");
Console.WriteLine("Structured document created with proper heading hierarchy.");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Project Proposal</title>
<style>
body { font-family: Georgia, serif; line-height: 1.8; max-width: 800px; margin: 0 auto; padding: 20px; }
h1 { font-size: 28px; border-bottom: 2px solid #333; padding-bottom: 10px; }
h2 { font-size: 22px; color: #444; margin-top: 30px; }
h3 { font-size: 18px; color: #666; }
ul, ol { margin-left: 20px; }
li { margin-bottom: 8px; }
</style>
</head>
<body>
<h1>Website Redesign Proposal</h1>
<h2>Executive Summary</h2>
<p>This proposal outlines a comprehensive redesign of the corporate website to improve user experience, accessibility, and conversion rates.</p>
<h2>Project Objectives</h2>
<p>The redesign aims to achieve several key goals:</p>
<ul>
<li>Improve mobile responsiveness across all device types</li>
<li>Achieve WCAG 2.1 Level AA compliance for accessibility</li>
<li>Reduce page load times by 40 percent</li>
<li>Increase conversion rates through improved user flows</li>
</ul>
<h2>Implementation Timeline</h2>
<p>The project will proceed in three phases:</p>
<ol>
<li>Discovery and planning: weeks one through four</li>
<li>Design and development: weeks five through twelve</li>
<li>Testing and launch: weeks thirteen through sixteen</li>
</ol>
<h3>Phase One Details</h3>
<p>The discovery phase includes stakeholder interviews, competitive analysis, and technical assessment of the current platform.</p>
<h3>Phase Two Details</h3>
<p>Design and development will follow an agile methodology with two-week sprints and regular stakeholder reviews.</p>
<h2>Budget Considerations</h2>
<p>The proposed budget covers all aspects of the redesign including design, development, content migration, and quality assurance testing.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
pdf.MetaData.Title = "Website Redesign Proposal"
pdf.MetaData.Author = "Digital Strategy Team"
pdf.SaveAs("proposal-accessible.pdf")
Console.WriteLine("Structured document created with proper heading hierarchy.")
Çıktı PDF
Bu PDF, gezinti için başlık hiyerarşisini ve liste yapısını korur:
Bu örnekteki başlık hiyerarşisine dikkat edin. Belge, ana başlık için tek bir h1'e, ardından büyük bölümler için h2 öğelerine ve alt bölümler için h3 öğelerine sahiptir. Bu hiyerarşi erişilebilirlik için gereklidir. Yardımcı teknolojileri kullanan kullanıcılar, belgelerde başlıklar arasında atlayarak gezinir, bu nedenle mantıksal bir yapı, ihtiyaç duydukları içeriği çabucak bulmalarına olanak tanır.
Listeler, sırasız listeler için ul ve sıralı listeler için ol ile anlamsal işlemden geçirilir. Her li öğesi, PDF'de etiketlenmiş bir liste öğesi haline gelir. Yardımcı teknolojiler, listelerin kaç öğe içerdiğini belirterek ve ardından her öğeyi sırayla okuyarak duyurur.
Ekran Okuyucu Uyumluluğu için Görsellere Alt Metin Nasıl Eklerim?
Görseller, temel bir erişilebilirlik zorluğu oluşturur. Görsel içerik, görme engelli veya az gören kullanıcılar tarafından algılanamaz. Alternatif metin, yaygın olarak alt metin olarak adlandırılır ve görüntünün yerine duyurulabilecek bir metin açıklaması sağlar.
HTML'den PDF'ler oluştururken, img elemanlarındaki alt özelliği alternatif metin olarak PDF'ye aktarılır.
Kod, iki grafik resmi olan bir satış raporu oluşturur. Her img öğesi, sadece türünü değil, grafiğin verilerini de açıklayan ayrıntılı bir alt özniteliği içerir. Örneğin, alt metin, gerçek satış rakamlarını ve bölgesel karşılaştırmaları belirtir. RenderHtmlAsPdfUA() yöntemi, bu açıklamaları PDF'ye alternatif metin olarak yerleştirir ve ekran okuyucuların, görme engelli olmayan kullanıcıların grafikleri inceleyerek elde ettikleri bilgileri aktarmasını sağlar.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/image-accessibility.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Sales Performance Report</title>
<style>
body { font-family: Arial, sans-serif; padding: 20px; }
.chart-container { margin: 20px 0; text-align: center; }
img { max-width: 100%; height: auto; }
.caption { font-style: italic; color: #666; margin-top: 10px; }
</style>
</head>
<body>
<h1>Q3 Sales Performance Report</h1>
<h2>Regional Sales Comparison</h2>
<p>The following chart illustrates sales performance across regions for the third quarter.</p>
<div class='chart-container'>
<img src='https://example.com/charts/regional-sales-q3.png'
alt='Bar chart comparing Q3 sales across four regions: Northeast at 2.4 million dollars, Southeast at 1.8 million dollars, Midwest at 2.1 million dollars, and West at 3.2 million dollars. The West region shows the highest performance with a 15 percent increase from Q2.'
width='600' height='400'>
<p class='caption'>Figure 1: Regional Sales Comparison Q3 2024</p>
</div>
<h2>Monthly Trend Analysis</h2>
<p>Sales showed consistent growth throughout the quarter with acceleration in September.</p>
<div class='chart-container'>
<img src='https://example.com/charts/monthly-trend.png'
alt='Line graph showing monthly sales from July through September. July sales were 2.1 million dollars, August increased to 2.4 million dollars, and September reached 2.9 million dollars, representing a 38 percent total increase over the quarter.'
width='600' height='300'>
<p class='caption'>Figure 2: Monthly Sales Trend Q3 2024</p>
</div>
<h2>Key Findings</h2>
<p>Analysis indicates strong momentum heading into Q4, particularly in the Western region where new product launches drove significant customer acquisition.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
pdf.MetaData.Title = "Q3 Sales Performance Report";
pdf.MetaData.Author = "Sales Analytics Team";
pdf.SaveAs("sales-report-accessible.pdf");
Console.WriteLine("Report created with accessible image descriptions.");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Sales Performance Report</title>
<style>
body { font-family: Arial, sans-serif; padding: 20px; }
.chart-container { margin: 20px 0; text-align: center; }
img { max-width: 100%; height: auto; }
.caption { font-style: italic; color: #666; margin-top: 10px; }
</style>
</head>
<body>
<h1>Q3 Sales Performance Report</h1>
<h2>Regional Sales Comparison</h2>
<p>The following chart illustrates sales performance across regions for the third quarter.</p>
<div class='chart-container'>
<img src='https://example.com/charts/regional-sales-q3.png'
alt='Bar chart comparing Q3 sales across four regions: Northeast at 2.4 million dollars, Southeast at 1.8 million dollars, Midwest at 2.1 million dollars, and West at 3.2 million dollars. The West region shows the highest performance with a 15 percent increase from Q2.'
width='600' height='400'>
<p class='caption'>Figure 1: Regional Sales Comparison Q3 2024</p>
</div>
<h2>Monthly Trend Analysis</h2>
<p>Sales showed consistent growth throughout the quarter with acceleration in September.</p>
<div class='chart-container'>
<img src='https://example.com/charts/monthly-trend.png'
alt='Line graph showing monthly sales from July through September. July sales were 2.1 million dollars, August increased to 2.4 million dollars, and September reached 2.9 million dollars, representing a 38 percent total increase over the quarter.'
width='600' height='300'>
<p class='caption'>Figure 2: Monthly Sales Trend Q3 2024</p>
</div>
<h2>Key Findings</h2>
<p>Analysis indicates strong momentum heading into Q4, particularly in the Western region where new product launches drove significant customer acquisition.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
pdf.MetaData.Title = "Q3 Sales Performance Report"
pdf.MetaData.Author = "Sales Analytics Team"
pdf.SaveAs("sales-report-accessible.pdf")
Console.WriteLine("Report created with accessible image descriptions.")
Etkili alt metni yazmak, görüntünün ne tür bir bilgi aktardığını anlamayı gerektirir. Grafikler ve tablolar için, alt metin, sunulan verileri tanımlamalı, sadece bir grafik olduğunu belirtmemelidir. "Çubuk grafik" demek hiçbir faydalı bilgi sağlamaz. "Batıda 3,2 milyon dolarla lider olan dört bölgede Q3 satışlarını karşılaştıran çubuk grafik" tanımı, görme engelli kullanıcılara grafikten elde ettikleri içgörüyü verir.
Bilgilendirici bir amaç taşımayan süs amaçlı resimler, boş alt özelliklere sahip olmalıdır. Bu, ekran okuyuculara görüntünün atlanabileceğini sinyaller:
<img src="decorative-border.png" alt="">
<img src="decorative-border.png" alt="">
PDF Belgelerinde Erişilebilir Tablolar Nasıl İnşa Edilir?
Tablolar, iki boyutta veri ilişkilerini kodladıkları için karmaşık erişilebilirlik hususları sunar. Gören bir kullanıcı, başlıklarla ilgili hücreleri anlamak için satırlara ve kolonlara görsel olarak göz gezdirebilir. Yardımcı teknolojilere bel bağlayan kullanıcılar, bu ilişkiye doğru markup ile açıkça ihtiyaç duyar.
HTML, erişilebilir tablolar için gerekli yapısal elemanları sağlar. Anahtar elemanlar, th başlık hücreleri için, td veri hücreleri için ve başlıkların satırlara veya kolonlara ait olduğunu belirten kapsamı özelliklerini içerir.
Kod, uygun erişilebilirlik işaretlemesi içeren bir çalışan dizin tablosu oluşturur. caption öğesi, içeriğin öncesinde duyurulan bir tablo başlığı sağlar. Başlık hücreleri, sütunlarındaki tüm hücrelere uygulandığını belirtmek için th ile scope="col" kullanır. thead ve tbody öğeleri, yapısal bölümleri birbirinden ayırır. IronPDF'nin RenderHtmlAsPdfUA() özelliği, PDF yapısındaki bu ilişkileri korur ve ekran okuyucuların veri hücrelerini sütun başlıklarıyla ilişkilendirmesine olanak tanır.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/accessible-table.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Employee Directory</title>
<style>
body { font-family: Arial, sans-serif; padding: 20px; }
table { border-collapse: collapse; width: 100%; margin: 20px 0; }
th, td { border: 1px solid #ccc; padding: 12px; text-align: left; }
th { background-color: #f0f0f0; font-weight: bold; }
caption { font-size: 18px; font-weight: bold; margin-bottom: 10px; text-align: left; }
</style>
</head>
<body>
<h1>Department Staff Directory</h1>
<p>Contact information for all department personnel as of January 2024.</p>
<table>
<caption>Engineering Department Staff</caption>
<thead>
<tr>
<th scope='col'>Name</th>
<th scope='col'>Title</th>
<th scope='col'>Email</th>
<th scope='col'>Extension</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sarah Chen</td>
<td>Senior Software Engineer</td>
<td>schen@company.com</td>
<td>4521</td>
</tr>
<tr>
<td>Marcus Williams</td>
<td>DevOps Engineer</td>
<td>mwilliams@company.com</td>
<td>4522</td>
</tr>
<tr>
<td>Jennifer Park</td>
<td>QA Lead</td>
<td>jpark@company.com</td>
<td>4523</td>
</tr>
<tr>
<td>Robert Gonzalez</td>
<td>Technical Writer</td>
<td>rgonzalez@company.com</td>
<td>4524</td>
</tr>
</tbody>
</table>
<h2>Contact Guidelines</h2>
<p>Please use email for non-urgent matters. Phone extensions connect to voicemail outside business hours.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
pdf.MetaData.Title = "Department Staff Directory";
pdf.SaveAs("directory-accessible.pdf");
Console.WriteLine("Directory created with accessible table structure.");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Employee Directory</title>
<style>
body { font-family: Arial, sans-serif; padding: 20px; }
table { border-collapse: collapse; width: 100%; margin: 20px 0; }
th, td { border: 1px solid #ccc; padding: 12px; text-align: left; }
th { background-color: #f0f0f0; font-weight: bold; }
caption { font-size: 18px; font-weight: bold; margin-bottom: 10px; text-align: left; }
</style>
</head>
<body>
<h1>Department Staff Directory</h1>
<p>Contact information for all department personnel as of January 2024.</p>
<table>
<caption>Engineering Department Staff</caption>
<thead>
<tr>
<th scope='col'>Name</th>
<th scope='col'>Title</th>
<th scope='col'>Email</th>
<th scope='col'>Extension</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sarah Chen</td>
<td>Senior Software Engineer</td>
<td>schen@company.com</td>
<td>4521</td>
</tr>
<tr>
<td>Marcus Williams</td>
<td>DevOps Engineer</td>
<td>mwilliams@company.com</td>
<td>4522</td>
</tr>
<tr>
<td>Jennifer Park</td>
<td>QA Lead</td>
<td>jpark@company.com</td>
<td>4523</td>
</tr>
<tr>
<td>Robert Gonzalez</td>
<td>Technical Writer</td>
<td>rgonzalez@company.com</td>
<td>4524</td>
</tr>
</tbody>
</table>
<h2>Contact Guidelines</h2>
<p>Please use email for non-urgent matters. Phone extensions connect to voicemail outside business hours.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
pdf.MetaData.Title = "Department Staff Directory"
pdf.SaveAs("directory-accessible.pdf")
Console.WriteLine("Directory created with accessible table structure.")
Çıktı PDF
Çıktı, başlık ilişkileri ile doğru şekilde yapılandırılmış bir tablo içerir:
th elemanlarındaki kapsam özelliği kritik bir öneme sahiptir. scope="col" ayarını yapmak, başlığın o kolonun tüm hücrelerine uygulandığını belirtir. Her satırın ilk hücresi satır başlığı olarak hizmet ettiği tablolarda, bunun yerine scope="row" kullanırsınız. Hem satır hem de kolon başlıkları olan karmaşık tabloların her iki özelliğe de ihtiyacı vardır.
Çizim öğesi, tablo içeriğini okumadan önce duyurulan tablo için bir başlık sağlar. Bu, kullanıcıların duymak üzere oldukları veriler hakkında bir özet bilgi verir.
Birleşik hücreler veya düzensiz yapılar olan tablolar için, hücreleri karşılık gelen başlıklara açıkça bağlamak için headers ve id gibi ek özellikler kullanılabilir. Ancak, tutarlı satır ve sütunları olan basit tablo yapıları, erişilebilirlik açısından daha tercih edilir.
Belge Erişilebilirliği için Yer İmleri ve Gezinti Nasıl Eklerim?
Yer imleri, tüm kullanıcıların uzun belgelerde gezinmesine yardımcı olan yönlendirme işaretleri sağlar, ancak özellikle erişilebilirlik için değere sahiptir. Sayfaları görsel olarak tarayamayan kullanıcılar, ilginç bölümleri bulmak için yer imlerine bel bağlar. Bu yapılandırılmış taslaklar, doğrudan belirli içeriklere atlamaya olanak tanır.
IronPDF, hiyerarşik yer imi yapıları oluşturmayı programlı olarak destekler.
Kod, birden fazla bölümden oluşan bir çalışan el kitabını görüntüler, ardından Bookmarks koleksiyonunu kullanarak programlı olarak bir yer imi hiyerarşisi ekler. Üst düzey yer imleri, sayfa dizini içeren AddBookMarkAtEnd() aracılığıyla bölüm başlangıç sayfalarına yönlendirir. Alt bölümler için alt yer imleri, üst öğenin Children özelliği aracılığıyla eklenir ve iç içe geçmiş bir gezinme ağacı oluşturulur. Sayfa dizini parametresi sıfır tabanlıdır, bu nedenle sayfa 0 ilk sayfadır.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/bookmarks-navigation.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Employee Handbook</title>
<style>
body { font-family: Georgia, serif; line-height: 1.8; padding: 40px; }
h1 { page-break-before: always; }
h1:first-of-type { page-break-before: avoid; }
h2 { margin-top: 30px; }
</style>
</head>
<body>
<h1>Employee Handbook</h1>
<p>Welcome to our organization. This handbook contains policies and procedures for all employees.</p>
<h1>Chapter 1: Employment Policies</h1>
<h2>Equal Opportunity</h2>
<p>Our organization is committed to providing equal employment opportunities to all applicants and employees.</p>
<h2>At-Will Employment</h2>
<p>Employment with the organization is at-will unless otherwise specified in a written agreement.</p>
<h1>Chapter 2: Compensation and Benefits</h1>
<h2>Pay Periods</h2>
<p>Employees are paid on a bi-weekly basis, with pay dates falling on alternating Fridays.</p>
<h2>Health Insurance</h2>
<p>Full-time employees are eligible for health insurance coverage beginning the first of the month following hire date.</p>
<h2>Retirement Plans</h2>
<p>The organization offers a 401(k) plan with employer matching contributions up to four percent of salary.</p>
<h1>Chapter 3: Time Off Policies</h1>
<h2>Vacation</h2>
<p>Employees accrue vacation time based on length of service, starting at two weeks annually.</p>
<h2>Sick Leave</h2>
<p>Employees receive five days of paid sick leave per calendar year.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
// Add top-level bookmarks for main sections
var introBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Introduction", 0);
var chapter1Bookmark = pdf.Bookmarks.AddBookMarkAtEnd("Chapter 1: Employment Policies", 1);
chapter1Bookmark.Children.AddBookMarkAtEnd("Equal Opportunity", 1);
chapter1Bookmark.Children.AddBookMarkAtEnd("At-Will Employment", 1);
var chapter2Bookmark = pdf.Bookmarks.AddBookMarkAtEnd("Chapter 2: Compensation and Benefits", 2);
chapter2Bookmark.Children.AddBookMarkAtEnd("Pay Periods", 2);
chapter2Bookmark.Children.AddBookMarkAtEnd("Health Insurance", 2);
chapter2Bookmark.Children.AddBookMarkAtEnd("Retirement Plans", 2);
var chapter3Bookmark = pdf.Bookmarks.AddBookMarkAtEnd("Chapter 3: Time Off Policies", 3);
chapter3Bookmark.Children.AddBookMarkAtEnd("Vacation", 3);
chapter3Bookmark.Children.AddBookMarkAtEnd("Sick Leave", 3);
pdf.MetaData.Title = "Employee Handbook";
pdf.MetaData.Author = "Human Resources";
pdf.SaveAs("handbook-with-bookmarks.pdf");
Console.WriteLine("Handbook created with navigational bookmarks.");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Employee Handbook</title>
<style>
body { font-family: Georgia, serif; line-height: 1.8; padding: 40px; }
h1 { page-break-before: always; }
h1:first-of-type { page-break-before: avoid; }
h2 { margin-top: 30px; }
</style>
</head>
<body>
<h1>Employee Handbook</h1>
<p>Welcome to our organization. This handbook contains policies and procedures for all employees.</p>
<h1>Chapter 1: Employment Policies</h1>
<h2>Equal Opportunity</h2>
<p>Our organization is committed to providing equal employment opportunities to all applicants and employees.</p>
<h2>At-Will Employment</h2>
<p>Employment with the organization is at-will unless otherwise specified in a written agreement.</p>
<h1>Chapter 2: Compensation and Benefits</h1>
<h2>Pay Periods</h2>
<p>Employees are paid on a bi-weekly basis, with pay dates falling on alternating Fridays.</p>
<h2>Health Insurance</h2>
<p>Full-time employees are eligible for health insurance coverage beginning the first of the month following hire date.</p>
<h2>Retirement Plans</h2>
<p>The organization offers a 401(k) plan with employer matching contributions up to four percent of salary.</p>
<h1>Chapter 3: Time Off Policies</h1>
<h2>Vacation</h2>
<p>Employees accrue vacation time based on length of service, starting at two weeks annually.</p>
<h2>Sick Leave</h2>
<p>Employees receive five days of paid sick leave per calendar year.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
' Add top-level bookmarks for main sections
Dim introBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Introduction", 0)
Dim chapter1Bookmark = pdf.Bookmarks.AddBookMarkAtEnd("Chapter 1: Employment Policies", 1)
chapter1Bookmark.Children.AddBookMarkAtEnd("Equal Opportunity", 1)
chapter1Bookmark.Children.AddBookMarkAtEnd("At-Will Employment", 1)
Dim chapter2Bookmark = pdf.Bookmarks.AddBookMarkAtEnd("Chapter 2: Compensation and Benefits", 2)
chapter2Bookmark.Children.AddBookMarkAtEnd("Pay Periods", 2)
chapter2Bookmark.Children.AddBookMarkAtEnd("Health Insurance", 2)
chapter2Bookmark.Children.AddBookMarkAtEnd("Retirement Plans", 2)
Dim chapter3Bookmark = pdf.Bookmarks.AddBookMarkAtEnd("Chapter 3: Time Off Policies", 3)
chapter3Bookmark.Children.AddBookMarkAtEnd("Vacation", 3)
chapter3Bookmark.Children.AddBookMarkAtEnd("Sick Leave", 3)
pdf.MetaData.Title = "Employee Handbook"
pdf.MetaData.Author = "Human Resources"
pdf.SaveAs("handbook-with-bookmarks.pdf")
Console.WriteLine("Handbook created with navigational bookmarks.")
Çıktı PDF
Oluşturulan PDF, hızlı bölüm erişimi için gezilebilir bir yer imi paneli içerir:
AddBookMarkAtEnd içindeki sayfa dizini parametresi, sayfa 0'ın belgenin ilk sayfası olduğu sıfır tabanlı dizine sahip bir sistem kullanır. Children özelliği ile oluşturulan iç içe yer imleri, belge yapısını yansıtan bir hiyerarşi oluşturur.
Doğru başlık yapısına sahip HTML belgeleri için, IronPDF otomatik olarak bağlantılı gezinti içeren bir içerik tablosu oluşturabilir.
Kod, RenderingOptions.TableOfContents değerini TableOfContentsTypes.WithPageNumbers olarak ayarlayarak otomatik TOC oluşturmayı sağlar. HTML, oluşturulan içindekiler tablosunun ekleneceği id="ironpdf-toc" ile div yer tutucusunu içerir. IronPDF, başlık öğelerini (h1, h2 vb.) tarar, sayfa numaraları içeren hiyerarşik bir içindekiler oluşturur ve bunu yer tutucu konumuna ekler.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/table-of-contents.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Enable automatic table of contents generation
renderer.RenderingOptions.TableOfContents = TableOfContentsTypes.WithPageNumbers;
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head><title>Technical Manual</title></head>
<body>
<div id='ironpdf-toc'></div>
<h1>System Administration Guide</h1>
<p>Comprehensive guide to system configuration and maintenance.</p>
<h2>Installation</h2>
<p>Step-by-step installation procedures for all supported platforms.</p>
<h2>Configuration</h2>
<p>Detailed configuration options and recommended settings.</p>
<h2>Troubleshooting</h2>
<p>Common issues and their resolutions.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
pdf.MetaData.Title = "System Administration Guide";
pdf.SaveAs("manual-with-toc.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Enable automatic table of contents generation
renderer.RenderingOptions.TableOfContents = TableOfContentsTypes.WithPageNumbers
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head><title>Technical Manual</title></head>
<body>
<div id='ironpdf-toc'></div>
<h1>System Administration Guide</h1>
<p>Comprehensive guide to system configuration and maintenance.</p>
<h2>Installation</h2>
<p>Step-by-step installation procedures for all supported platforms.</p>
<h2>Configuration</h2>
<p>Detailed configuration options and recommended settings.</p>
<h2>Troubleshooting</h2>
<p>Common issues and their resolutions.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
pdf.MetaData.Title = "System Administration Guide"
pdf.SaveAs("manual-with-toc.pdf")
id="ironpdf-toc" olan div elementi, oluşturulmuş içerik tablosunun görüneceği yeri işaretler. IronPDF, başlık öğelerinden içerik tablosu oluşturarak her bölüm için tıklanabilir linkler yaratır.
Doğru Etiketlerle Erişilebilir PDF Formları Nasıl Oluştururum?
Etkileşimli formlar, erişilebilirlik için özel bir dikkat gerektirir. Her girdi alanı, beklenen girdinin duyurulabilmesi için programlı olarak ilişkilendirilmiş bir etikete sahip olmalıdır. Yalnızca görsel etiketler yetersizdir çünkü yardımcı teknolojilerin formu düzgün yorumlaması için gereken alttaki bağlantıdan yoksundur.
IronPDF, HTML form elemanlarını etkileşimli PDF form alanları olarak işler. Doğru HTML formu markup'ı erişilebilir PDF formlarına çevrilir.
Kod, RenderingOptions.CreatePdfFormsFromHtml = true ayarını yaparak form alanı oluşturulmasını sağlar. HTML formu uygun erişilebilirlik kalıplarını kullanır: her giriş, etiketinin for özniteliğiyle eşleşen benzersiz bir id değerine sahiptir, radyo düğmeleri açıklayıcı bir legend içeren bir fieldset içinde gruplandırılmıştır ve onay kutuları ilişkili etiketlere sahiptir. RenderHtmlAsPdfUA() yöntemi, bu öğeleri ekran okuyucular için etiket ilişkilendirmeleri korunacak şekilde etkileşimli PDF form alanlarına dönüştürür.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/accessible-form.cs
using IronPdf;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Enable form field creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Contact Request Form</title>
<style>
body { font-family: Arial, sans-serif; padding: 30px; max-width: 600px; }
.form-group { margin-bottom: 20px; }
label { display: block; margin-bottom: 5px; font-weight: bold; }
input[type='text'], input[type='email'], textarea {
width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px;
}
textarea { height: 120px; resize: vertical; }
.checkbox-group { margin: 15px 0; }
.checkbox-group label { display: inline; font-weight: normal; margin-left: 8px; }
fieldset { border: 1px solid #ddd; padding: 15px; margin-bottom: 20px; }
legend { font-weight: bold; padding: 0 10px; }
</style>
</head>
<body>
<h1>Contact Request Form</h1>
<p>Please complete all required fields marked with an asterisk.</p>
<form>
<div class='form-group'>
<label for='fullname'>Full Name *</label>
<input type='text' id='fullname' name='fullname' required>
</div>
<div class='form-group'>
<label for='email'>Email Address *</label>
<input type='email' id='email' name='email' required>
</div>
<div class='form-group'>
<label for='phone'>Phone Number</label>
<input type='text' id='phone' name='phone'>
</div>
<fieldset>
<legend>Preferred Contact Method</legend>
<div class='checkbox-group'>
<input type='radio' id='contact-email' name='contact-method' value='email'>
<label for='contact-email'>Email</label>
</div>
<div class='checkbox-group'>
<input type='radio' id='contact-phone' name='contact-method' value='phone'>
<label for='contact-phone'>Phone</label>
</div>
</fieldset>
<div class='form-group'>
<label for='message'>Message *</label>
<textarea id='message' name='message' required></textarea>
</div>
<div class='checkbox-group'>
<input type='checkbox' id='newsletter' name='newsletter'>
<label for='newsletter'>Subscribe to our newsletter</label>
</div>
</form>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
pdf.MetaData.Title = "Contact Request Form";
pdf.SaveAs("contact-form-accessible.pdf");
Console.WriteLine("Accessible form created with proper field labels.");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
' Enable form field creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<title>Contact Request Form</title>
<style>
body { font-family: Arial, sans-serif; padding: 30px; max-width: 600px; }
.form-group { margin-bottom: 20px; }
label { display: block; margin-bottom: 5px; font-weight: bold; }
input[type='text'], input[type='email'], textarea {
width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px;
}
textarea { height: 120px; resize: vertical; }
.checkbox-group { margin: 15px 0; }
.checkbox-group label { display: inline; font-weight: normal; margin-left: 8px; }
fieldset { border: 1px solid #ddd; padding: 15px; margin-bottom: 20px; }
legend { font-weight: bold; padding: 0 10px; }
</style>
</head>
<body>
<h1>Contact Request Form</h1>
<p>Please complete all required fields marked with an asterisk.</p>
<form>
<div class='form-group'>
<label for='fullname'>Full Name *</label>
<input type='text' id='fullname' name='fullname' required>
</div>
<div class='form-group'>
<label for='email'>Email Address *</label>
<input type='email' id='email' name='email' required>
</div>
<div class='form-group'>
<label for='phone'>Phone Number</label>
<input type='text' id='phone' name='phone'>
</div>
<fieldset>
<legend>Preferred Contact Method</legend>
<div class='checkbox-group'>
<input type='radio' id='contact-email' name='contact-method' value='email'>
<label for='contact-email'>Email</label>
</div>
<div class='checkbox-group'>
<input type='radio' id='contact-phone' name='contact-method' value='phone'>
<label for='contact-phone'>Phone</label>
</div>
</fieldset>
<div class='form-group'>
<label for='message'>Message *</label>
<textarea id='message' name='message' required></textarea>
</div>
<div class='checkbox-group'>
<input type='checkbox' id='newsletter' name='newsletter'>
<label for='newsletter'>Subscribe to our newsletter</label>
</div>
</form>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
pdf.MetaData.Title = "Contact Request Form"
pdf.SaveAs("contact-form-accessible.pdf")
Console.WriteLine("Accessible form created with proper field labels.")
Çıktı PDF
Oluşturulan PDF, doğru etiket bağlantılarına sahip etkileşimli form alanları içerir:
Bu form örneğinde birkaç erişilebilirlik paterni görülür. Her girdi, etiketiyle 'for' özelliğiyle eşleşen bir benzersiz id özelliğine sahiptir. Bu bağlantı, bir kullanıcının o alana geçtiğinde 'Tam İsim, metni düzenle' olarak duyurulmasına olanak tanır. Radyo düğmeleri, grubun amacını açıklayan bir efsane ile bir fieldset içinde gruplandırılır. Onay kutuları, standart form konvansiyonlarını izleyerek girdi elemanının sonuna konumlandırılır.
IronPDF'nin formun statik temsillerini değil, etkileşimli form alanları oluşturması için CreatePdfFormsFromHtml görüntüleme seçeneği etkinleştirilmelidir.
Oluşturduktan Sonra PDF/UA Uyumluluğunu Nasıl Doğrularım?
Erişilebilirlik özellikleri olan PDF'ler oluşturmak sürecin sadece bir parçasıdır. Doğrulama, oluşturulan belgelerin gerçekten PDF/UA standardının teknik gereksinimlerini karşıladığını onaylar. Bu amaçla birkaç araç mevcuttur ve veraPDF en yaygı şekilde tanınan açık kaynak doğrulayıcıdır.
IronPDF yerleşik doğrulama içermese de, dış araçları kullanarak iş akışınıza doğrulama entegrasyonu yapabilirsiniz. veraPDF doğrulayıcı, C# kodundan çağrılabilir bir komut satırı uygulaması olarak mevcuttur.
Kod, tam bir doğrulama iş akışını gösterir. İlk olarak, meta verileri yapılandırılmış RenderHtmlAsPdfUA() kullanarak bir test PDF'si oluşturur. Ardından, Process.Start() kullanarak C#'dan veraPDF'yi çağırır ve PDF/UA-1 doğrulaması için --flavour ua1 bayrağıyla çalışacak şekilde süreci yapılandırır. Çıktı yakalanır ve çıkış kodu, belgenin doğrulama geçip geçmediğini belirler.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/validation.cs
using IronPdf;
using System;
using System.Diagnostics;
// Create the accessible PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head><title>Test Document</title></head>
<body>
<h1>Validation Test</h1>
<p>This document will be validated for PDF/UA compliance.</p>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(htmlContent);
pdf.MetaData.Title = "Validation Test Document";
string outputPath = "test-document.pdf";
pdf.SaveAs(outputPath);
Console.WriteLine($"PDF created at: {outputPath}");
Console.WriteLine("Run veraPDF validation with:");
Console.WriteLine($" verapdf --flavour ua1 {outputPath}");
// Validate using veraPDF
string verapdfPath = "verapdf";
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = verapdfPath,
Arguments = $"--flavour ua1 \"{outputPath}\"",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (Process process = Process.Start(startInfo))
{
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
// veraPDF returns 0 for valid documents
bool isValid = process.ExitCode == 0;
Console.WriteLine(isValid ? "Document passes PDF/UA validation." : "Document has validation issues.");
Console.WriteLine(output);
}
Imports IronPdf
Imports System
Imports System.Diagnostics
' Create the accessible PDF
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head><title>Test Document</title></head>
<body>
<h1>Validation Test</h1>
<p>This document will be validated for PDF/UA compliance.</p>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(htmlContent)
pdf.MetaData.Title = "Validation Test Document"
Dim outputPath As String = "test-document.pdf"
pdf.SaveAs(outputPath)
Console.WriteLine($"PDF created at: {outputPath}")
Console.WriteLine("Run veraPDF validation with:")
Console.WriteLine($" verapdf --flavour ua1 {outputPath}")
' Validate using veraPDF
Dim verapdfPath As String = "verapdf"
Dim startInfo As New ProcessStartInfo With {
.FileName = verapdfPath,
.Arguments = $"--flavour ua1 ""{outputPath}""",
.RedirectStandardOutput = True,
.RedirectStandardError = True,
.UseShellExecute = False,
.CreateNoWindow = True
}
Using process As Process = Process.Start(startInfo)
Dim output As String = process.StandardOutput.ReadToEnd()
process.WaitForExit()
' veraPDF returns 0 for valid documents
Dim isValid As Boolean = process.ExitCode = 0
Console.WriteLine(If(isValid, "Document passes PDF/UA validation.", "Document has validation issues."))
Console.WriteLine(output)
End Using
Adobe Acrobat Pro ayrıca erişilebilirlik kontrol etme özelliklerini içerir. Acrobat Pro'daki Erişilebilirlik Denetleyicisi, okuma sırası doğrulaması, alternatif metin doğrulaması ve form alanı erişilebilirliği dahil kapsamlı testler gerçekleştirir. Ücretsiz olmasa da, Acrobat Pro genellikle kurumsal ortamlarda bulunur ve erişilebilirlik sorunlarına dair ayrıntılı raporlar sağlar.
Otomatik test yolları için, PDF/UA Foundation'dan PDF Erişilebilirlik Denetleyicisi (PAC) aracı başka bir doğrulama seçeneği sunar. PAC, hem grafiksel arayüzü hem de komut satırı yetenekleri sunar, bu da sürekli entegrasyon iş akışlarına entegre edilmeye uygun hale getirir.
Kurumsal Uygulamalarda Erişilebilir PDF'leri Korumanın En İyi Uygulamaları Nelerdir?
Bireysel erişilebilir belgeler oluşturmak, teknikleri anladıktan sonra kabaca basittir. Bir kuruluşa ölçeklendirmede erişilebilirliği korumak, sistematik yaklaşımlar ve organizasyonel disiplin gerektirir.
Şablon standardizasyonu değişkenliği azaltır ve tutarlılığı sağlar. Anlamsal yapı, erişilebilir form paternleri ve tutarlı stil ile onaylanmış HTML şablonlarından bir kütüphane oluşturmak, geliştiricilere varsayılan olarak uyumlu çıktı üreten bir temel sağlar.
Kod, kurumsal rapor oluşturma paternini gösterir. Form oluşturma özelliği etkinleştirilmiş olarak bir ChromePdfRenderer başlatır, ardından güvenli içerik ekleme için HttpUtility.HtmlEncode() kullanarak şablon değişkenlerinden bir HTML raporu oluşturur. Rapor HTML, tutarlı stil ve anlamsal yapıyı içerir. RenderHtmlAsPdfUA() ile işlendikten sonra, kaydetmeden önce standart meta veri özellikleri (başlık, yazar, oluşturucu ve tarihler) yapılandırılır. Bu pedern, oluşturulan tüm belgelerde erişilebilirlik uyumunu sağlamak için tekrar kullanılabilir bir hizmete sarılabilir.
:path=/static-assets/pdf/content-code-examples/tutorials/accessible-pdfs-government-compliance/enterprise-service.cs
using IronPdf;
using System;
using System.Web;
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string title = "Quarterly Report";
string author = "Finance Team";
string content = "<p>Financial performance overview for Q4 2024.</p>";
// Build report HTML from template
string reportHtml = $@"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>{HttpUtility.HtmlEncode(title)}</title>
<style>
body {{
font-family: 'Segoe UI', Arial, sans-serif;
line-height: 1.6;
max-width: 800px;
margin: 0 auto;
padding: 40px;
color: #333;
}}
h1 {{ font-size: 28px; color: #1a1a1a; border-bottom: 2px solid #0066cc; padding-bottom: 10px; }}
h2 {{ font-size: 22px; color: #333; margin-top: 30px; }}
p {{ margin-bottom: 15px; }}
table {{ border-collapse: collapse; width: 100%; margin: 20px 0; }}
th, td {{ border: 1px solid #ddd; padding: 12px; text-align: left; }}
th {{ background-color: #f5f5f5; }}
</style>
</head>
<body>
<h1>{HttpUtility.HtmlEncode(title)}</h1>
{content}
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdfUA(reportHtml);
// Configure standard metadata
pdf.MetaData.Title = title;
pdf.MetaData.Author = author;
pdf.MetaData.Creator = "Enterprise Document System";
pdf.MetaData.CreationDate = DateTime.Now;
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.SaveAs("quarterly-report-accessible.pdf");
Imports IronPdf
Imports System
Imports System.Web
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim title As String = "Quarterly Report"
Dim author As String = "Finance Team"
Dim content As String = "<p>Financial performance overview for Q4 2024.</p>"
' Build report HTML from template
Dim reportHtml As String = $"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>{HttpUtility.HtmlEncode(title)}</title>
<style>
body {{
font-family: 'Segoe UI', Arial, sans-serif;
line-height: 1.6;
max-width: 800px;
margin: 0 auto;
padding: 40px;
color: #333;
}}
h1 {{ font-size: 28px; color: #1a1a1a; border-bottom: 2px solid #0066cc; padding-bottom: 10px; }}
h2 {{ font-size: 22px; color: #333; margin-top: 30px; }}
p {{ margin-bottom: 15px; }}
table {{ border-collapse: collapse; width: 100%; margin: 20px 0; }}
th, td {{ border: 1px solid #ddd; padding: 12px; text-align: left; }}
th {{ background-color: #f5f5f5; }}
</style>
</head>
<body>
<h1>{HttpUtility.HtmlEncode(title)}</h1>
{content}
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdfUA(reportHtml)
' Configure standard metadata
pdf.MetaData.Title = title
pdf.MetaData.Author = author
pdf.MetaData.Creator = "Enterprise Document System"
pdf.MetaData.CreationDate = DateTime.Now
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.SaveAs("quarterly-report-accessible.pdf")
Otomatik test, sürekli entegrasyon boru hattınızın bir parçası olmalıdır. PDF üreten herhangi bir süreç, erişilebilirlik gereksinimleri karşılanmadığında yapıyı bozan doğrulama adımlarını içermelidir. Bu, erişimsiz belgelerin üretime ulaşmasını engeller.
Personel eğitimi, teknik uygulama kadar önemlidir. İçerik yazarları, neden erişilebilirliğin önemli olduğunu ve seçimlerinin nihai çıktıyı nasıl etkilediğini anlamalıdır. Yazarlara başlık seviyelerini doğru şekilde kullanmayı, anlamlı resim açıklamaları sağlamayı ve tabloları iyi yapılarak öğretmek, uyumlu PDF'lere dönüşen daha iyi kaynak materyal üretir.
Şablonlar için sürüm kontrolü ve düzenli erişilebilirlik denetimleri, zamanla uyumu sürdürmeye yardımcı olur. İş gereklilikleri gelişirken ve şablonlar değiştirildiğinde, periyodik incelemeler, değişikliklerin farkında olmadan erişilebilirlik engelleri getirip getirmediğini kontrol eder.
Erişilebilirlik yaklaşımınızın belgelenmesi, personel değişikliğine dayanacak kurumsal bilgi yaratır. Hangi standartları takip ettiğinizi, doğrulama için hangi araçları kullandığınızı ve belirlenen sorunlar için hangi iyileştirme prosedürlerinin mevcut olduğunu kaydederek, kuruluş genelinde tutarlı uygulamalar sürdürülmesine yardımcı olur.
Erişilebilirlik, tek seferlik bir başarı değil, sürekli bir taahhüttür. Standartlar gelişir, yardımcı teknolojiler gelişir ve kullanıcı ihtiyaçları değişir. Erişilebilirliği standart iş akışlarının bir parçası olarak oluşturan ve bunu sonradan düşünerek ele alan kuruluşlar, hem mevcut gereklilikleri hem de gelecekteki beklentileri karşılamak için en iyi konumda olanlardır.
Bu kılavuzda yer alan teknikler, IronPDF kullanarak Section 508'e uyumlu PDF'ler oluşturmak için sağlam bir temel sağlar. Doğru HTML yapısını, uygun metadatasını, yönlendirmeyi ve doğrulama test kombinasyonunu kullanarak .NET geliştiricileri, yasal gereklilikleri karşılarken erişilebilir içeriğe bağımlı kullanıcıları gerçekten de etkili bir şekilde var eder.
Sonuç
IronPDF, PDF erişilebilirlik standartlarının karmaşıklığını basitleştirir ve .NET geliştiricilerin içeriğe odaklanmasını sağlarken kütüphane, PDF/UA yapısı gereksinimlerini ele alır. Bu eğitim, mevcut PDF'leri PDF/UA formatına dönüştürmeyi, HTML'yi doğrudan erişilebilir PDF'lere işleme, ekran okuyucu uyumluluğu için belge metadatasını ve dil belirtimlerini ayarlamayı, anlamsal HTML'den etiketli belge yapıları oluşturmayı, erişilebilir formlar ve yer imleri ile gezinti oluşturmayı ve doğrulama yaparak veraPDF gibi dış araçlarla uyum doğrulamayı kapsar.
Erişilebilirlik daha geniş bir belge yaşam döngüsünün bir parçası olduğunda, bu paternler, uzun vadeli koruma için PDF/A arşiv uyumu ve hükümet veya sağlık sistemleri genelinde erişilebilir belgeler oluşturmak için parti işleme ile doğal olarak eşleşir.
İşe başlamaya hazır mısınız? IronPDF'i İndirin ve ücretsiz bir deneme ile deneyin. Aynı kütüphane, tek bir erişilebilir belge oluşumundan kurum geneline yayılmış PDF/UA uyumluluk kanallarına kadar her şeyi ele alır. Erişilebilirlik uygulaması veya Section 508 gereksinimleri hakkında sorularınız varsa, mühendislik destek ekibimize ulaşın.
Sıkça Sorulan Sorular
PDF'ler için Section 508 uyumluluğu nedir?
Bölüm 508 uyumluluğu, PDF gibi elektronik ve bilgi teknolojilerinin engelli kişiler için erişilebilir olmasını sağlar. IronPDF, alt metin ekleme, erişilebilir tablolar oluşturma ve daha fazlasını yapmanıza izin vererek bu standartlara uygun PDF'ler oluşturmanıza yardımcı olur.
Mevcut PDF'leri PDF/UA formatına dönüştürmek için IronPDF nasıl kullanabilirim?
IronPDF, mevcut PDF'leri PDF/UA'ya dönüştürme özellikleri sunarak erişilebilirlik standartlarına uygun olmalarını sağlar. Bu, içeriği erişilebilir kılmak için gerekli olan meta verilerin ve yapı elemanlarının eklenmesini içerir.
IronPDF erişilebilir HTML oluşturma konusunda yardımcı olabilir mi?
Evet, IronPDF, HTML içeriğini erişilebilir ve PDF/UA standartlarına uyumlu olarak işleyebilir, bu da web içeriğinden erişilebilir belgeler oluşturmayı kolaylaştırır.
IronPDF kullanarak PDF dosyalarındaki görüntülere alt metin nasıl eklerim?
IronPDF, PDF'ler içindeki resimlere alternatif metin eklemenize olanak tanır, bu da erişilebilirlik açısından kritik öneme sahiptir. Bu özellik, ekran okuyuculara bağımlı kullanıcılar için resimlerin tanımlandığını garanti eder.
IronPDF, erişilebilir tablolar ve formlar oluşturmak için hangi özellikler sunuyor?
IronPDF, tüm kullanıcılar için veri ve giriş alanlarının gezilebilir ve anlaşılabilir olmasını sağlamaya yardımcı olan, erişilebilir yapılandırılmış tablolar ve formlar oluşturmak için araçlar sunar.
IronPDF kullanarak PDF'lerimin devlet gereksinimlerine uygunluğunu nasıl doğrulayabilirim?
IronPDF, PDF belgelerinizin Bölüm 508 ve PDF/UA gereksinimlerine uyup uymadığını kontrol eden doğrulama araçları içerir ve bu sayede belgelerinizin gerekli erişilebilirlik standartlarını karşıladığından emin olmanıza yardımcı olur.
IronPDF ile erişilebilir PDF'ler oluşturmayı otomatikleştirmek mümkün mü?
Evet, IronPDF, uyumluluk standartlarını karşılama sürecini kolaylaştırarak otomatik iş akışlarına entegre edilip erişilebilir PDF'ler üretmek için sürekli kullanılabilir.
IronPDF ile erişilebilir PDF'ler oluşturmak için hangi programlama dilleri uyumludur?
IronPDF, C# ile çalışmak üzere tasarlanmıştır ve geliştiricilerin doğrudan .NET framework içinde erişilebilir PDF'ler oluşturmasına olanak tanır.
IronPDF kullanmayı öğrenmek için mevcut dersler var mı?
Evet, IronPDF, erişilebilir PDF'ler oluşturma sürecinde ve tüm özelliklerini etkili bir şekilde kullanma konusunda sizi yönlendirecek kapsamlı öğreticiler ve belgeler sunar.
IronPDF, çok dilli PDF erişilebilirliğine yardımcı olabilir mi?
IronPDF, Unicode metin ve dillerle çalışarak farklı dil belgelerinde erişilebilirliği sağlayarak çok dilli erişilebilir PDF'lerin oluşturulmasını destekler.

