PDF/A는 전자 문서의 장기 보관을 위해 특별히 설계된 ISO 표준입니다. PDF/A의 목표는 환경이나 소프트웨어에 관계없이 향후 수십 년 동안 파일의 시각적 및 논리적 콘텐츠의 불변성을 보장하는 것입니다. 기업의 전자 문서 보관소에 있어 PDF/A로의 전환은 법적 중요성을 가지며, 데이터 보존 관리에 필수적인 요소입니다.
PDF와 PDF/A의 차이점
PDF와 PDF/A는 각각 고유한 목적과 특징을 가진 두 가지 파일 형식입니다. 목적과 필요에 맞는 올바른 형식을 선택하려면 두 형식의 차이점을 이해하는 것이 중요합니다.
목적:
- PDF는 문서 교환을 위한 범용 형식입니다. 사용되는 소프트웨어나 플랫폼에 관계없이 문서의 형식과 모양이 유지되도록 보장합니다.
- PDF/A는 장기 보존을 위해 설계된 특수 PDF 버전입니다. PDF/A를 사용하면 문서가 향후 변경되지 않으므로 도서관, 기록 보관소 및 법률 플랫폼에서 사용하기에 이상적입니다.
구조 및 내용:
- 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/A 표준을 지원합니다.
- 유연한 변환: 일반 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();
}
}