function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;
SaveAsPdfAToStream는 SaveAsPdfA의 스트리밍 대응 함수입니다 —
동일한 PDF/A-1b 출력을 생성하지만 임시 파일을 거치지 않고 호출자가 제공한 임의의 탐색 가능한
TStream에 결과를 기록합니다. HTTP 업로드 파이프라인, BLOB 컬럼, 메모리 내 캐시 계층,
아카이브 컨테이너(ZIP / TAR), 또는 PDF/A 바이트가 디스크에 닿을 필요가 없는 모든 워크플로에 유용합니다
후처리 논리는 SaveAsPdfA(FileName, Options)와 동일합니다. 기본 SaveAs가
먼저 실행된 뒤, 증분 업데이트가 XMP 메타데이터 스트림(ISO 19005-1 6.7.3 / Cor.1 표 1에 따라
Document Information Dictionary를 XMP 형식으로 연결하고 6.7.8에 요구되는 pdfaid 확장 스키마
설명을 임베드합니다), 임베드된 ICC 프로파일을 참조하는 OutputIntent(기본 sRGB,
Options.IccProfileData로 사용자 지정), 이들을 함께 연결하는 카탈로그 업데이트,
6.1.3이 요구하는 트레일러 /ID 배열을 주입합니다. 비어 있는 Options 필드는
FPDF_GetMetaText와 FPDF_GetFileIdentifier에서 자동으로 채워지므로
일반적인 호출자는 Conformance만 설정합니다
성공 시 True를 반환합니다. 출력 스트림은 마지막으로 기록된 바이트 다음 위치에
남습니다. 기본 SaveAs가 실패했거나 PDF/A 후처리를 추가할 수 없으면(일반적으로 원본 PDF가
암호화되어 있어 PDF/A가 금지하는 경우) False를 반환합니다
Write와 Seek을 지원해야 합니다 — TMemoryStream, TFileStream 또는 둘 다를 따르는 어떤 하위 클래스도 동작합니다SaveAsPdfAToStream 전의 스트림 내용이 보존되지 않습니다. 이 함수는 끝으로 탐색하는 의미를 가정하지 않습니다Memory + Size를 HTTP 클라이언트에 직접 전달하세요saRemoveSecurity가 필요합니다
var
Stream: TMemoryStream;
Opts: TPdfASaveOptions;
begin
Stream := TMemoryStream.Create;
try
Opts := Default(TPdfASaveOptions);
Opts.Conformance := pac1b;
if Pdf1.SaveAsPdfAToStream(Stream, Opts) then
begin
Stream.Position := 0;
UploadToArchive(Stream);
end;
finally
Stream.Free;
end;
end;