C#でPDFをPDF/Aに変換する方法 IronPDFを使用して

C#でPDF/A、PDF/A-3、またはPDF/A-4形式のドキュメントをエクスポートする方法

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

IronPDF は、PDF/A-3b および PDF/A-4 標準への PDF のエクスポートをサポートしています。 PDF/A-3Bは、ISO PDFの仕様の厳密なサブセットで、文書のアーカイブ版を作成するために使用され、保存されたときとまったく同じように表示されることを意図しています。 PDF/A-4 は最新のコンプライアンス標準であり、デジタル署名のサポートが強化されています。

セクション508準拠

IronPDFは、508条準拠のためにPDFアーカイブとアクセシビリティを向上させるGoogleのイニシアチブに従います。 HTMLからPDFへの変換で作業する場合、当社のレンダリングエンジンはすべてのアクセシビリティ機能を保持します。

2021年、Google ChromiumのHTMLレンダリングエンジンを使用して、HTMLからPDFをレンダリングすることに移行しました。これにより、当社のソフトウェアは、Googleがすでに実装しているアクセシビリティの作業を継承できるようになりました。

なぜ PDF/A ドキュメントでは 508 条への準拠が重要なのですか?

セクション508への準拠は、スクリーンリーダーなどの支援技術を使用して、PDF文書が障害者にとってアクセシブルであることを保証します。 PDF/A ドキュメントは、508 条の基準を満たしているため、アーカイブの寿命が尽きるまでコンテンツにアクセスできることが保証されます。 このコンプライアンスは、政府機関、教育機関、およびすべてのユーザーに情報への平等なアクセスを提供する組織にとって重要です。


IronPDFはどのPDF/Aバージョンをサポートしていますか?

IronPDFは適合性レベルAとBに対応しています。 'A'は'アクセシブル'を表し、'B'は'基本'を表します。これらのレベルは、PDF/A-1、PDF/A-2、およびPDF/A-3標準にわたって利用可能です。 以下の情報は、AdobeのPDF/Aに関するドキュメントからのものです。 デフォルトでは、IronPDFで生成されるPDF出力はPDF/A-3B (ISO 19005-3)です。

  • レベルA適合は、すべての仕様要件を満たし、身体障害者のアクセシビリティを向上させる支援ソフトウェアを可能にします。
  • レベルBは、最小限のコンプライアンスで適合性が低く、長期的に見た目の美しさを保つことに重点を置いています。

PDF/A-1、PDF/A-2、PDF/A-3の違いは何ですか?

PDF/A-1: オリジナルのPDF 1.4バージョンに基づきます。

PDF/A-2:ISO 32001-1として2011年7月にリリースされ、PDFバージョン1.7までのすべての機能と新機能が含まれています。 スキャン文書のJPEG2000と、カスタマイズされたXMPメタデータの特定の要件をサポートします。 PDFメタデータを扱うとき、IronPDFは適切なXMPメタデータの取り扱いを保証します。

PDF/A-3:レベル2の要件をすべて含みます。 XML、CSV、ワープロ形式などの追加ファイル形式をPDF/A準拠文書に埋め込むことができます。

PDF/A-4 :2020年にリリースされたPDF/A準拠規格の最新バージョンです。PDF 2.0をベースにしており、PDF/A-3と比較してデジタル署名のサポート強化など、機能が向上しています。このバージョンは、3Dモデルなどの複雑な要素を含むエンジニアリング文書や技術ワークフローに最適です。

特徴PDF/A-3PDF/A-4
ベースPDFバージョンPDF 1.7PDF 2.0
埋め込みファイル添付サポートされていますサポートされていません
デジタル署名サポートされています強化されたサポート
最適なユースケース請求書、XMLデータの埋め込みエンジニアリング、3Dモデル、技術ワークフロー

IronPdfは添付ファイル付きPDFのPDF/A-3Bへの変換をサポートしていません。

最新のPDF/A-4規格への変換

PDF/A-4 は、PDF/A シリーズの最新の準拠標準です。 これは、さまざまなドキュメント タイプ、特にデジタル署名を含むドキュメントに最適なアーカイブ形式であると考えられています。 このフォーマットでは暗号化とマルチメディア要素が許可されず、各ファイルが完全に自己完結的であることを保証します。

既存のファイルを PDF/A-4 準拠の標準に変換するのは簡単です。

:path=/static-assets/pdf/content-code-examples/how-to/sample-pdfa4.cs
using IronPdf;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("input.pdf");

// Save as PDF/A-4 compliant document
pdf.SaveAsPdfA("pdfa4-output.pdf", PdfAVersions.PdfA4);
$vbLabelText   $csharpLabel

既存のPDFファイルから(PDF/A-3B)

"wikipedia.pdf"というPDFをIronPDFを使って生成し、PDFファイルとして保存した例があります。最適な結果を得るために、変換を始める前にライセンスキーを適切に設定してください。

このデモでは、これを PDF/A-3B 準拠の PDF ファイルとして読み込んで再保存し、別のコピーを PDF/A-4 (最新の準拠標準との互換性を示すため) として保存します。

変換前の入力PDFはどのように見えますか?

既存の PDF を PDF/A フォーマットに変換するコードは何ですか?

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-fromfile.cs
using IronPdf;

// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3b);
$vbLabelText   $csharpLabel

PDF/A変換が成功したことを確認するにはどうすればよいですか?

出力ファイルはPDF/A-3b準拠です:

veraPDF Conformance Checker showing successful PDF/A-3B validation with green compliance message.

HTML デザインまたは URL から (PDF/A-3B)

HTMLからIronPDFを使用してPDFにレンダリングし、PDF/A準拠ファイルとしてエクスポートするためのHTMLデザイン例"design.html"を持っています。HTMLファイルからPDFへの変換プロセスでは、変換中にすべてのスタイルとフォーマットが維持されます。

このデモンストレーションでは、それをPDF/A-3B準拠のPDFファイルとして保存します。

HTMLファイルをPDF/Aフォーマットに変換するにはどうすればよいですか?

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-fromhtml.cs
using IronPdf;

// Use the Chrome Renderer to make beautiful HTML designs
var chromeRenderer = new ChromePdfRenderer();

// Render an HTML design as a PdfDocument object using Chrome
PdfDocument pdf = chromeRenderer.RenderHtmlAsPdf("design.html");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("design-accessible.pdf", PdfAVersions.PdfA3b);
$vbLabelText   $csharpLabel

出力ファイルはPDF/A-3B準拠です:

veraPDFコンフォーマンスチェッカーがPDFの検証に成功し、緑のコンフォーマンスメッセージが表示されている

ウェブサイトをPDF/Aフォーマットに変換するにはどうすればよいですか?

https://www.microsoft.com"というウェブサイトを、IronPDFを使ってURLからPDFにレンダリングし、PDF/A準拠のファイルとしてエクスポートしてもらいます。URLからPDFへの変換機能は、JavaScriptとCSSを含むすべてのウェブコンテンツが適切にレンダリングされることを保証します。

このデモンストレーションでは、それをPDF/A-3B準拠のPDFファイルとして保存します。

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-fromurl.cs
using IronPdf;

// Use the Chrome Renderer to make beautiful HTML designs from URLs
var chromeRenderer = new ChromePdfRenderer();

// Render a Website as a PdfDocument object using Chrome
PdfDocument pdf = chromeRenderer.RenderUrlAsPdf("https://www.microsoft.com");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("website-accessible.pdf", PdfAVersions.PdfA3b);
$vbLabelText   $csharpLabel

出力ファイルはPDF/A-3B準拠です:

PDF/A-3Bの検証が成功したことを示すveraPDF Conformance Checker、緑色のコンプライアンスメッセージとレポートオプション


埋め込み添付ファイルのサポート(PDF/A-3B)

IronPDFはPDF/Aフォーマットに変換しながらPDFドキュメントにファイルを埋め込む機能を提供します。 これは、ファイルパス、バイト配列、またはストリームを使用して達成することができます。 この機能は、必要なすべてのサポート資料を含む自己完結型のアーカイブドキュメントを作成します。 より高度なPDF操作機能については、包括的なPDF編集チュートリアルをご覧ください。

ご注意注: 埋め込みファイル添付は PDF/A-3B でのみサポートされます。 PDF/A-4 は埋め込み添付ファイルをサポートしていません。

ファイルパスによる埋め込み

ファイルパスを使用してファイルを埋め込みます。 ファイルパスのコレクションが提供され、これらのファイルはPDF/A変換時に添付ファイルとして含まれます。

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-attachment-path.cs
using IronPdf;
using System.Collections.Generic;

PdfDocument pdf = new PdfDocument("Google.pdf");

// Initialize collection of embed file as string of path
IEnumerable<string> embedPaths = new[] { "File1.xml", "File2.png" };

// Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedPaths);
$vbLabelText   $csharpLabel

バイト配列を使用してファイルを埋め込むにはどうすればよいですか?

ファイルの内容を、それぞれのファイルタイプを持つバイト配列として提供することで、ファイルを埋め込みます。ファイルがすでにメモリにロードされている場合に便利です。

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-attachment-byte.cs
using IronPdf;
using System.Collections.Generic;
using System.IO;


PdfDocument pdf = new PdfDocument("Google.pdf");

// Initialize collection of embed file as Bytes and their file type
byte[] fileData1 = File.ReadAllBytes("File1.png");
byte[] fileData2 = File.ReadAllBytes("File2.xml");

var embedFileConfig1 = new EmbedFileConfiguration(EmbedFileType.png);
embedFileConfig1.EmbedFileName = "logo.png";

var embedFileConfig2 = new EmbedFileConfiguration(EmbedFileType.xml)
{
    EmbedFileName = "supportSystem.xml",
    AFDesc = "Internal system",
    ConformanceLevel = ConformanceLevel.XRECHNUNG,
    SchemaNamespace = SchemaNamespace.Zugferd1,
    SchemaPrefix = SchemaPrefix.rsm,
    PropertyVersion = PropertyVersion.v1p0,
    AFRelationship = AFRelationship.Supplement,
};

IEnumerable<EmbedFileByte> embedBytes = new[]
{
    new EmbedFileByte(fileData1, embedFileConfig1),
    new EmbedFileByte(fileData2, embedFileConfig2)
};

// Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedBytes).SaveAs("PdfACompliance.pdf");
$vbLabelText   $csharpLabel

ストリームを使用してファイルを埋め込むにはどうすればよいですか?

ストリームを使用してファイルを埋め込み、そのファイルタイプでコンテンツを処理します。ファイルデータがストリームとして処理される場合に最適です。

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-attachment-stream.cs
using IronPdf;
using System.Collections.Generic;
using System.IO;

PdfDocument pdf = new PdfDocument("Google.pdf");

// Initialize collection of embed file as Stream and their file type
Stream stream1 = new MemoryStream(File.ReadAllBytes("File1.png"));
Stream stream2 = new MemoryStream(File.ReadAllBytes("File2.xml"));

var embedFileConfig1 = new EmbedFileConfiguration(EmbedFileType.png);
embedFileConfig1.EmbedFileName = "logo.png";

var embedFileConfig2 = new EmbedFileConfiguration(EmbedFileType.xml)
{
    EmbedFileName = "supportSystem.xml",
    AFDesc = "Internal system",
    ConformanceLevel = ConformanceLevel.XRECHNUNG,
    SchemaNamespace = SchemaNamespace.Zugferd1,
    SchemaPrefix = SchemaPrefix.rsm,
    PropertyVersion = PropertyVersion.v1p0,
    AFRelationship = AFRelationship.Supplement,
};

IEnumerable<EmbedFileStream> embedStreams = new[]
{
    new EmbedFileStream(stream1, embedFileConfig1),
    new EmbedFileStream(stream2, embedFileConfig2)
};

// Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedStreams).SaveAs("PdfACompliance.pdf");
$vbLabelText   $csharpLabel

EmbedFileConfigurationで埋め込みファイルのプロパティを設定するには?

PdfDocument を埋め込みファイルを含む PDF/A-3 形式に変換する場合は、EmbedFilePath、EmbedFileByte、EmbedFileStream などのパラメータを構成することが重要です。 これらの設定を使用すると、埋め込まれるファイルのタイプ、その名前、および追加したいカスタムXMPメタデータを指定できます。

適切な構成により、埋め込みコンテンツが効果的に構成され、PDF/A-3標準に準拠していることが保証されます。 XMPメタデータをカスタマイズすることで、埋め込みファイルに関する追加情報が得られ、ドキュメントの使いやすさとアクセシビリティが向上します。 EmbedFileConfigurationクラスを使用すると、開発者はファイルの値や形式を簡単にカスタマイズできます。

var config = new EmbedFileConfiguration
{
    EmbedFileName = "Attachment.xml",
    AFDesc = "Associated File Description",
    ConformanceLevel = ConformanceLevel.EN16931,
    SchemaNamespace = SchemaNamespace.facturX,
    SchemaPrefix = SchemaPrefix.fx,
    PropertyVersion = PropertyVersion.v1,
    AFRelationship = AFRelationship.Alternative
};

 // Load a PDF document
 var document = PdfDocument.FromFile("wikipedia.pdf");

 // Configure embedded file parameters
 document.EmbedFileFromFilePath("path/to/attachment", config);

 // Save the document as PDF/A-3b
 document.SaveAsPdfA3B("output-with-configured-attachment.pdf");
var config = new EmbedFileConfiguration
{
    EmbedFileName = "Attachment.xml",
    AFDesc = "Associated File Description",
    ConformanceLevel = ConformanceLevel.EN16931,
    SchemaNamespace = SchemaNamespace.facturX,
    SchemaPrefix = SchemaPrefix.fx,
    PropertyVersion = PropertyVersion.v1,
    AFRelationship = AFRelationship.Alternative
};

 // Load a PDF document
 var document = PdfDocument.FromFile("wikipedia.pdf");

 // Configure embedded file parameters
 document.EmbedFileFromFilePath("path/to/attachment", config);

 // Save the document as PDF/A-3b
 document.SaveAsPdfA3B("output-with-configured-attachment.pdf");
$vbLabelText   $csharpLabel
  • EmbedFileName:PDF/A ドキュメント内の埋め込みファイル名を表す string プロパティ。 デフォルトは空文字列です。
  • AFDesc:埋め込みファイルの関連ファイルの説明を表す string プロパティです。デフォルトは空文字列です。
  • ConformanceLevel: XMLファイルの埋め込みに適用されるPDF/AドキュメントのXMPメタデータの適合レベル。 デフォルトはConformanceLevel.EN16931です。 IronPDFはConformanceLevel列挙体を介してさまざまな値を提供します。
  • SchemaNamespace: XML ファイルを埋め込み、PDF/A 文書の XMP メタデータに適用する PDF/A Schema NamespaceURI。 デフォルトはSchemaNamespace.facturXで、SchemaNamespace列挙型でさまざまなオプションが利用できます。
  • SchemaPrefix: PDF/A 文書の XMP メタデータに適用する XML ファイルを埋め込むための PDF/A スキーマ接頭辞。 デフォルトはSchemaPrefix.fxで、SchemaPrefix列挙型でいくつかのオプションがあります。
  • PropertyVersion: PDF/A 文書の XMP メタデータに適用される埋め込み XML ファイルのプロパティバージョン。 デフォルトはPropertyVersion.v1で、PropertyVersion列挙体に複数のオプションがあります。
  • AFRelationship: PDF/Aドキュメントに関連するファイル(埋め込まれたファイル)の関係。 AFRelationship列挙体にはいくつかのオプションがあります。

PDF/Aにおける文字表示の問題の原因は?

PDF/Aでは、文書内のすべての文字を、視覚的にも意味的にも正しいフォントにマッピングする必要があります。 すべてのフォントを埋め込む必要はありませんが、使用するフォントは必要なグリフをサポートしている必要があります。不適切または不完全なフォントが使用された場合、特定の文字が壊れたり、欠けたり、正しく表示されないことがあります。 ファイルサイズの最適化については、PDF圧縮ガイドを参照して、フォント埋め込みとファイルサイズのバランスを取ってください。

PDF/Aドキュメントで文字化けが発生するのはなぜですか

たとえば、以下の問題では、上のサンプルでは正しいフォントが使用され、文字が正しく表示されていますが、下のサンプルではフォントの不一致により文字が正しく表示されていません。

DejaVuSansとTimes New RomanからのPDF/A変換でフォント破損を示す文字エンコーディング比較

既存のPDFファイルから(PDF/A-4)

サンプルPDF" who.pdf "があります。これは、世界保健機関(WHO)の2025~2028年の世界保健戦略を収録したものです。この文書はIronPDFを使用して生成され、標準のPDFファイルとして保存されています。

このデモでは、この重要な世界保健文書の長期的なアーカイブコンプライアンスを確保するために、これを PDF/A-4 準拠の PDF ファイルとして読み込み、再保存します。

入力ファイル: "who.pdf"

コード

:path=/static-assets/pdf/content-code-examples/how-to/save-as-pdfa4.cs
using IronPdf;

// Load the environmental impact assessment document
PdfDocument pdf = PdfDocument.FromFile("ENV-2026-1847-Assessment-Report.pdf");

// Save as PDF/A-4 compliant document for long-term archival
pdf.SaveAsPdfA("ENV-2026-1847-Report-PDFA4Compliant.pdf", PdfAVersions.PdfA4);
$vbLabelText   $csharpLabel

出力

出力ファイルは PDF/A-4 に準拠しています。

ライセンス完了

次に何ができるのかを見てみましょうか? ガイドページはこちら:Create PDFs

よくある質問

C# で標準 PDF を PDF/A-3b 形式に変換す る 方法は?

IronPDFを使えば、たった2行のコードで標準的なPDFをPDF/A-3bフォーマットに変換することができます。PdfDocument.FromFile()を使ってPDFを読み込み、SaveAsPdfA()を呼び出すだけで、長期保存のために準拠したPDF/A-3bドキュメントとして書き出すことができます。

PDF/A-3bとは何ですか。また、なぜ文書アーカイブにとって重要なのですか。

PDF/A-3bはISO PDF仕様の厳密なサブセットで、文書の長期保存を目的として設計されています。IronPDFはPDF/A-3bエクスポートをサポートし、ドキュメントが常に保存されたとおりにレンダリングされることを保証します。

PDF/A変換は、セクション508アクセシビリティコンプライアンスをサポートしていますか?

IronPdfはGoogle Chromiumのレンダリングエンジンを使用し、Googleのアクセシビリティ機能を継承することで、508条への準拠を保証します。つまり、PDF/A文書はスクリーンリーダーのような支援技術を使用する障がいのあるユーザーにとってアクセシブルであることを意味します。

HTMLコンテンツを直接PDF/Aフォーマットに変換できますか?

もちろんです!IronPDFはHTMLコンテンツやURLを直接PDF/A-3bフォーマットに変換することができます。Google ChromiumレンダリングエンジンはHTMLからPDFへの変換中にすべてのアクセシビリティ機能を保持し、PDF/Aドキュメントが完全なコンプライアンスを維持することを保証します。

PDF/A-3bを使用する主な利点は何ですか?

IronPDFのPDF/A-3bエクスポートは長期保存を保証し、すべてのビューアで一貫したレンダリングを行い、セクション508のアクセシビリティに準拠し、ISOアーカイブ規格に準拠しています。このため、法的文書、政府記録、永久保存を必要とするあらゆるコンテンツに最適です。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース