PDFをPDF/A形式に変換する

Aspose.PDF for .NET は、PDFファイルをPDF/A準拠のPDFファイルに変換することができます。その前に、ファイルを検証する必要があります。このトピックではその方法を説明します。

Document クラスの Convert メソッドを使用してファイルを変換します。

次のコードスニペットも Aspose.PDF.Drawing ライブラリで動作します。

PDFファイルをPDF/A-1bに変換する

以下のコードスニペットは、PDFファイルをPDF/A-1b準拠のPDFに変換する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// ドキュメントディレクトリへのパス
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// ドキュメントを開く
Document pdfDocument = new Document(dataDir + "PDFToPDFA.pdf");
           
// PDF/A準拠ドキュメントに変換
// 変換プロセス中に検証も実行されます
pdfDocument.Convert(dataDir + "log.xml", PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);

dataDir = dataDir + "PDFToPDFA_out.pdf";
// 出力ドキュメントを保存
pdfDocument.Save(dataDir);

検証のみを行う場合は、以下のコード行を使用してください:

// 完全な例やデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// 文書ディレクトリへのパス
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

// ドキュメントを開く
Document pdfDocument = new Document(dataDir + "ValidatePDFAStandard.pdf");

// PDFをPDF/A-1aで検証
pdfDocument.Validate(dataDir + "validation-result-A1A.xml", PdfFormat.PDF_A_1B);

PDFファイルをPDF/A-3bに変換

Aspose.PDF for .NETは、PDFファイルをPDF/A-3b形式に変換する機能もサポートしています。

// 完全な例やデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// 文書ディレクトリへのパス
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// ドキュメントを開く
Document pdfDocument = new Document(dataDir + "input.pdf");           

pdfDocument.Convert(new MemoryStream(), PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);

dataDir = dataDir + "PDFToPDFA3b_out.pdf";
// 出力ドキュメントを保存
pdfDocument.Save(dataDir);

PDFファイルをPDF/A-2uに変換

Aspose.PDF for .NETは、PDFファイルをPDF/A-2u形式に変換する機能もサポートしています。

string inFile = "input.pdf";
string outFile = "output.pdf";
Aspose.PDF.Document doc = new Aspose.PDF.Document(inFile);
doc.Convert(new MemoryStream(), PdfFormat.PDF_A_2U, ConvertErrorAction.Delete);
doc.Save(outFile);

PDFファイルをPDF/A-3uに変換

Aspose.PDF for .NETは、PDFファイルをPDF/A-3u形式に変換する機能もサポートしています。

string inFile = "input.pdf";
string outFile = "output.pdf";
Aspose.PDF.Document doc = new Aspose.PDF.Document(inFile);
doc.Convert(new MemoryStream(), PdfFormat.PDF_A_3U, ConvertErrorAction.Delete);
doc.Save(outFile);

PDF/Aファイルに添付ファイルを追加

PDF/A準拠形式にファイルを添付する必要がある場合、Aspose.PDF.PdfFormat列挙型からPDF_A_3A値の使用を推奨します。 PDF/A_3aは、PDF/A準拠ファイルに任意のファイル形式を添付として追加する機能を提供する形式です。

```csharp
// 完全な例やデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// 既存のファイルをロードするためにDocumentインスタンスをインスタンス化します
Aspose.Pdf.Document doc = new Document(dataDir + "input.pdf");
// 添付ファイルとして追加する新しいファイルを設定します
FileSpecification fileSpecification = new FileSpecification(dataDir + "aspose-logo.jpg", "大きなイメージファイル");
// ドキュメントの添付ファイルコレクションに添付ファイルを追加します
doc.EmbeddedFiles.Add(fileSpecification);
// PDF/A_3aへの変換を実行して、結果のファイルに添付ファイルが含まれるようにします
doc.Convert(dataDir + "log.txt", Aspose.Pdf.PdfFormat.PDF_A_3A, ConvertErrorAction.Delete);
// 結果のファイルを保存します
doc.Save(dataDir + "AddAttachmentToPDFA_out.pdf");

代替フォントで欠けているフォントを置き換える

PDFA規格に従い、PDFAドキュメントにはフォントが埋め込まれている必要があります。 PDFA基準に従って、フォントはPDFAドキュメントに埋め込む必要があります。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

Aspose.Pdf.Text.Font originalFont = null;
try
{
    originalFont = FontRepository.FindFont("AgencyFB");
}
catch (Exception)
{
    // 対象のマシンにフォントがありません
    FontRepository.Substitutions.Add(new SimpleFontSubstitution("AgencyFB", "Arial"));
}
var fileNew = new FileInfo(dataDir + "newfile_out.pdf");
var pdf = new Document(dataDir + "input.pdf");
pdf.Convert(dataDir + "log.xml", PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);
pdf.Save(fileNew.FullName);