PDF/A は、電子ドキュメントの長期保存用に特別に設計された ISO 標準です。その目的は、環境やソフトウェアに関係なく、ファイルの視覚的および論理的なコンテンツの不変性を何十年にもわたって確保することです。企業の電子アーカイブにとって、PDF/A への移行は、法的な意味合いと管理されたデータ保存の問題になります。
PDF と PDF/A の違い
PDF と PDF/A は、それぞれ独自の目的と特徴を持つ 2 つのファイル形式です。目的とニーズに合った適切な形式を選択するには、それらの違いを理解することが重要です。
目的:
- PDF は、ドキュメント交換のための汎用形式です。使用するソフトウェアやプラットフォームに関係なく、ドキュメントの形式と外観が保持されます。
- PDF/A は、長期アーカイブ用に設計された PDF の特殊なバージョンです。ドキュメントが将来変更されないことが保証されるため、図書館、アーカイブ、および法務プラットフォームでの使用に最適です。
構造と内容:
- PDF - ビデオ、オーディオ、JavaScript などのアクティブな要素をサポートします。ファイルに埋め込まれていないフォントが含まれる場合があります。
- PDF/A - 表示の問題を回避するために、すべてのフォントをファイルに埋め込む必要があります。アクティブな要素と外部リソースへのリンクは禁止されています。
再生の安定性:
- PDF - 不足しているフォントやその他の要素に依存するため、さまざまなデバイスやソフトウェア環境で再生の問題が発生する可能性があります。
- PDF/A - 埋め込みフォントと依存性がないため、何年経ってもすべての PDF/A 対応デバイスで文書が同じように見えることを保証します。
法的重要性とアーカイブ保存:
- PDF - ソフトウェアの変更により内容にアクセスできなくなる可能性があるため、長期保存は保証されません。
- PDF/A - アーカイブ保存の国際標準 (ISO 19005) で、文書の法的要件への準拠を保証します。
変換と互換性:
- PDF - 特に文書にアクティブ要素または外部リンクが含まれている場合、PDF/A への変換は困難になる可能性があります。
- PDF/A - PDF/A を作成するには、形式の厳格な要件を満たす専用のソフトウェアを使用する必要があります。
PDFとPDF/Aの選択は目的によって異なります。日常的に使用する文書を作成する必要がある場合はPDFが適しています。文書を長期間アーカイブする必要がある場合はPDF/Aを使用する必要があります。
VintaSoft PDF .NET Plug-inの機能
VintaSoft PDF .NET Plug-in は、Windows、Linux、macOS で PDF および PDF/A ドキュメントを操作するための .NET SDK です。ソリューションの主な利点:
- PDF/A 標準の完全サポート: PDF/A-1a、PDF/A-2a、PDF/A-3a、PDF/A-1b、PDF/A-2b、PDF/A-3b、PDF/A-2u、PDF/A-3u、PDF/A-4、PDF/A-4e、PDF/A-4f で作業できます。
- 柔軟な変換: 自動リソース処理 (フォント埋め込み、画像最適化、メタデータ構造化など) を使用して、通常の PDF ファイルを PDF/A に変換します。
- 適合性検証: ドキュメントが選択した PDF/A プロファイルのすべての要件を満たしているかどうかを即座に確認します (アーカイブとサードパーティ システムへの転送の両方に便利です)。
- 外部依存性なし: C# で PDF エンジンを完全にネイティブに実装しているため、安定性とサードパーティ ライブラリからの独立性が確保されます。
- 自動化インターフェイス: SDK はバッチ処理機能とエンタープライズ ECM システムへの組み込み統合を提供し、大量アーカイブに重要です。
PDF から PDF/A への変換プロセスの手順
- ソース PDF ドキュメントを読み込みます。API またはビジュアル コンポーネントを使用して、ユーザーはドキュメントを選択するか、自動的に取得します。
- PDF/A プロファイルを選択します。必要なレベルを指定します (たとえば、最大限の互換性が必要な場合は PDF/A-1b、添付ファイルやカラー プロファイルのサポートが必要な場合は PDF/A-3u)。
- 変換と検証。 SDK はドキュメントを自動的に修正します (フォントの埋め込み、メタデータの追加、標準と互換性のない要素の削除、オブジェクト構造の最適化)。
- 準拠レポート。 変換後に、結果が成功したかどうか、どのような変更が行われたか、準拠していない理由など、詳細なレポートを入手できます。
- 保存と統合。 PDF/A ファイルは必要なストレージに保存され、必要に応じて電子署名で署名されるか、エンタープライズ アーカイブに統合されます。
VintaSoft が開発者と IT 部門の作業を容易にする方法
VintaSoft は、開発プロセスと企業システムへの統合を大幅に簡素化する強力なツールとソリューションを提供しています。これらのソフトウェア製品は、開発者のニーズを考慮して開発されており、効果的なタスク管理と生産性の向上を実現します。
- クロスプラットフォーム: サポートされているすべてのプラットフォームで単一の API。
- バッチ処理:大量変換が可能 - アーカイブのデジタル化やデータ移行に有効です。
- 可視化と検証:企業システムを離れることなく、ドキュメントの表示、検索、コンプライアンス評価を行うツールが提供されます。
- 保護とセキュリティ:変換プロセス中に、ファイル保護、電子署名、暗号化をすぐに設定できます。
VintaSoft PDF .NET Plug-in - コンプライアンス目的で PDF/A への移行を自動化する必要がある企業に最適なソリューションです (例: 国のアーカイブにドキュメントを提出する場合、契約書、会計、医療、エンジニアリング ファイルの長期保管)。透過的な統合、パフォーマンス、信頼性は、大企業とソフトウェア開発者の両方に関連する利点です。
結論
VintaSoft PDF .NET Plug-in は、すべての国際標準とビジネス プロセス要件を考慮し、ソース ファイルの読み込みから長期ストレージへの自動実装まで、PDF/A 変換および検証の完全なサイクルを提供します。
PDF ドキュメントを PDF/A-1b ドキュメントに変換する方法を示す C# コードは次のとおりです:
/// <summary>
/// Converts a PDF document to conformance with PDF/A-1b specification.
/// </summary>
/// <param name="pdfFilename">The filename of source PDF document.</param>
/// <param name="outputPdfFilename">The filename of output PDF document.</param>
public static void ConvertDocumentToPdfA1b(string pdfFilename, string outputPdfFilename)
{
// determine that file must converted to the PDF/A-1b and saved back to the source file
bool sameFile = pdfFilename.ToUpperInvariant() == outputPdfFilename.ToUpperInvariant();
// create the PDF/A-1b converter
Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bConverter converter =
new Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bConverter();
converter.LzwFixupCompression = Vintasoft.Imaging.Pdf.PdfCompression.Zip;
// converter.OutputIntentDestIccProfile = ...
// execute the conversion
System.Console.WriteLine("Conversion...");
Vintasoft.Imaging.Processing.ConversionProfileResult result =
converter.Convert(pdfFilename, outputPdfFilename, new Vintasoft.Imaging.Processing.ProcessingState());
// if PDF document is converted successfully
if (result.IsSuccessful)
{
System.Console.WriteLine("Document converted to PDF/A-1b.");
}
// if PDF document is NOT converted
else
{
if (!sameFile)
System.IO.File.Delete(outputPdfFilename);
throw result.CreateConversionException();
}
}