THotPDF.SetLoadedFreeTextText Method
로드된 FreeText annotation의 normal appearance를 내장 Unicode 폰트, 선택적 리치 텍스트, 원자적 graph 트랜잭션으로 교체합니다
선언
procedure SetLoadedFreeTextText(PageIndex, AnnotationIndex: Integer;
const AText: UnicodeString; const Options: THPDFLoadedTextAppearanceOptions;
const RichContent: AnsiString = ''; const DefaultStyle: AnsiString = '');
옵션
개별 필드를 바꾸기 전에 THPDFLoadedTextAppearanceOptions.Default로 레코드를 초기화하세요
| 필드 | 동작 |
|---|---|
| FontName, FontStyle, FontSize | 기본 폰트, 스타일, 포인트 크기이며 기본값은 Arial, regular, 12 포인트입니다 |
| TextColor, Alignment, Padding | plain-text 색, left/center/right 정렬, 포인트 패딩이며 기본값은 black, left, 2 포인트입니다 |
| Opacity, Rotation | 불투명도는 [0,1], 회전은 90도 배수입니다 |
| OverflowPolicy | THPDFLoadedTextOverflowPolicy 값으로 ltopReject는 넘침을 거부하고, ltopClip은 잘라내며, ltopShrinkToFit은 더 작은 폰트로 재시도합니다 |
| MinFontSize | 축소 하한이며 기본값은 4 포인트입니다 |
| MaxTextUnits | 입력과 plain-text 한도이며 기본값은 1,048,576 UTF-16 유닛입니다. 리치 입력은 이 한도의 4배까지 허용됩니다 |
동작
AText는 plain Unicode 텍스트를 받고, 비어 있지 않은 UTF-8 RichContent가 주어지면 대신 HTML importer와 선택적 CSS DefaultStyle을 쓴 뒤 생성된 텍스트에서 /Contents를 도출합니다
생성된 appearance는 내장 폰트와 ToUnicode 매핑을 로드된 문서로 복사하므로 저장, 평탄화, 텍스트 추출에서도 Unicode 텍스트가 유지됩니다
이 메서드는 설정된 font fallback 체인, ShapingFeatures, Arabic·Syriac·N'Ko·Adlam·Hanifi Rohingya auto-shaping 스위치, GSUB script·언어 선택을 물려받습니다. shrink-to-fit 재시도는 호출자 설정을 바꾸지 않고 같은 설정으로 이뤄집니다
지원되는 background, solid/dashed border, 사각형 inset, 2·3점 callout 지오메트리는 유지하고, /AP, /Contents, /RC, /DS, /CA, /Q와 회전 메타데이터를 동기화합니다
잘못된 지오메트리, 미해결 plain-text glyph, cloudy border, 리소스 한도, 거부된 넘침은 예외를 던지고 갱신 전체를 롤백합니다. 이미 열려 있는 바깥 graph 트랜잭션은 그대로 유지됩니다
리치 텍스트는 지원되는 HTML/CSS subset을 따릅니다. 외부 리소스는 비활성화되고, 고정 CSS 폰트 크기 때문에 shrink-to-fit이 개별 run을 줄이지 못할 수 있습니다
appearance writer마다 서로 다른 shaping 폰트 선택을 최대 256개, 누적 raw 폰트 데이터를 최대 64 MiB까지 받습니다. 둘 중 하나라도 넘으면 갱신을 거부하고 원본 annotation을 보존합니다
관련 API
- SetLoadedFreeTextRichText는 이 appearance 파이프라인을 clip 오버플로로 씁니다
- SetLoadedFreeTextPlainText는 원래 ASCII 동작 규약을 유지합니다
- SetLoadedAnnotationContents는 저장된 콘텐츠만 편집합니다