네이티브 FreeText 기본 appearance
네이티브 FreeText 폴백은 유계 default-appearance 상태를 생성된 텍스트, 레이아웃, automatic fitting, 장식에 적용합니다
공급된 normal appearance는 FreeText 기본 appearance와 리치 텍스트에서의 생성보다 우선합니다
Default-appearance 연산자
| 연산자 | 폴백 동작 |
|---|---|
Tf | 원본 폰트 리소스와 텍스트 크기를 고릅니다. 크기 0은 유계 automatic fitting을 요청합니다 |
g rg k | 텍스트 채우기 색을 gray, RGB 또는 CMYK로 초기화합니다 |
Tc Tw Tz | 자간, 단어 간격, 수평 텍스트 스케일을 그리기와 레이아웃 측정에 적용합니다 |
Ts TL | 텍스트 상승과 명시적 베이스라인 간격(0 또는 음수 leading 포함)을 적용합니다 |
Tm | 최대 하나의 행렬을 받습니다. 선형 부분이 생성 텍스트를 변환하고 주석 레이아웃이 배치를 결정합니다 |
Tr | 글리프 칠하기와 텍스트 클리핑 모드를 0부터 7까지 고릅니다 |
G RG K w J j M d | 텍스트와 생성 장식을 위해 stroke 색, 두께, 끝모양, 연결, 마이터, 대시 상태를 초기화합니다 |
행렬 평행이동 operand는 검증되지만 주석 사각형 안의 FreeText 배치를 대체하지 않습니다
수평 스케일은 0이나 음수일 수 있습니다. 상승, 간격, 선형 행렬은 변환된 글리프, 전진, 장식 지오메트리에 참여합니다
이것은 유계 default-appearance 프로파일이지 일반 PDF 콘텐츠 스트림 해석기가 아닙니다. 지원되지 않는 연산자, 무효한 operand 수, malformed 값, 반복 텍스트 행렬은 렌더링 오류를 만듭니다
Stroke 색 구성 요소는 0부터 1 범위여야 하고, 끝모양과 연결 값은 0부터 2의 정수여야 하며, 두께는 음수가 아니어야 하고 마이터 한계는 최소 1이어야 합니다
대시 배열은 최대 256개의 음수가 아닌 유한 값을 담을 수 있고 비어 있지 않은 배열은 양수 값을 담아야 합니다. 빈 배열은 실선을 고르고, 홀수 배열은 반복하며, 위상은 음수가 아니어야 합니다
레이아웃, 줄바꿈, 배치
FreeText 정렬은 왼쪽, 가운데, 오른쪽 배치에 보이는 전진을 씁니다. 인코딩된 뒤 공백과 그 소스 매핑은 생성 스트림이 그 fragment를 유지할 때 남습니다
단어 경계 줄바꿈과 강제 문단 나눔은 별도로 처리됩니다. 줄 바꿈 없는 공백은 보통 ASCII soft 구분자가 되지 않습니다
원본 raw-font 경로는 자기 유계 공백과 하이픈 줄바꿈 규칙을 유지합니다. 이 acceptance 집합은 모든 Unicode 줄바꿈, 쌍방향, 복합 셰이핑 사례를 입증하지 않습니다
물리 주석 사각형, 루트 Form 경계, 내부 클립은 고정입니다. 임시 자식 Form 경계는 완전한 조상과 배치 체인을 반영합니다
글리프 칠하기와 텍스트 클리핑
Tr | 글리프 칠하기 | 클립 기여 |
|---|---|---|
| 0 | 채우기 | 없음 |
| 1 | 스트로크 | 없음 |
| 2 | 채우기와 스트로크 | 없음 |
| 3 | 글리프 칠하지 않음 | 없음 |
| 4 | 채우기 | 글리프 아웃라인 |
| 5 | 스트로크 | 글리프 아웃라인 |
| 6 | 채우기와 스트로크 | 글리프 아웃라인 |
| 7 | 글리프 칠하지 않음 | 글리프 아웃라인 |
4부터 7까지의 모드는 하나의 텍스트 객체에서 생성 run 전반에 글리프 아웃라인을 쌓습니다. 쌓인 텍스트 클립은 그 텍스트 객체 뒤에 이어지는 생성 밑줄과 취소선 장식에 적용됩니다
클립은 확장된 stroke 실루엣이 아니라 글리프 아웃라인을 씁니다. 칠하기 상태는 run마다 개별적이고 감싸는 그래픽 상태 범위가 클립 수명을 제한합니다
초기 DA stroke 상태는 루트 장식 범위와 텍스트 범위 모두에 적용됩니다. run별 재정의와 그래픽 상태 저장과 복원은 의미를 유지합니다
양수 클리핑 네 사례는 손으로 쓴 두 run appearance, 양수 클립 장식, 글리프 합집합 밖 흰 샘플과 함께 별개의 acceptance 관문입니다
그 관문은 백엔드 텍스트 클리핑을 검사하려고 명시적 appearance 사각형 채우기 증인도 씁니다. 그 증인은 missing-appearance 생성이 사각형 채우기를 출력한다고 주장하지 않습니다
독립 양수 Tr4~Tr7 reader 검증은 공식 MuPDF 1.28.5와 Poppler로 유한한 두 run 사례 넷을 통과했습니다. 두 글리프 내부, 클립된 장식, 글리프 합집합 밖 흰 샘플을 포함합니다
별개의 클립 전용 테스트 리비전은 Scale4로 변하지 않은 페이지 공간 증인 점에서 완전한 픽셀 셀을 고릅니다. 원본 색 임계값을 유지하고 Scale1에서 normal45 렌더링을 둡니다
MuPDF 1.28.2에는 같은 텍스트 객체에서 색 변경이 나중 run 앞에 한 run을 플러시할 때 클립 경계 호환성 문제가 있습니다. 이른 run이 쌓인 클립 경계에서 제외될 수 있습니다
공식 MuPDF 1.28.5 CLI와 독립 고정 Poppler는 이 변하지 않은 appearance들을 받아들였습니다. reader 버전과 유한 양수 대조군은 모든 렌더링 파이프라인 보장과 다릅니다
Automatic fitting
DA 폰트 크기 0은 초기 생성 레이아웃부터 유계 축소와 정제 검색을 시작하며, 변환되지 않은 줄 높이만이 아니라 변환된 글리프 경로, 전진, 장식을 씁니다
스트로크 확장에는 파선 사각 끝모양 모서리와 마이터 연결의 보수적 변환 지지가 포함됩니다
검색은 확립된 Cairo와 FreeType 경로 양자화를 유지합니다. 수학적으로 최대인 이상적 폰트 크기나 reader 전반의 동일한 힌팅을 보장하지 않습니다
유계 검색이 최소 시도에 도달할 때까지 맞는 시도가 없으면 물리 클립이 여전히 게시를 유계합니다. 아주 긴 콘텐츠가 완전히 보인다고 보장되지 않습니다
원본 폰트와 자원 한계
원본 내장 Type1C, CIDFontType0C, bare Type1 폴백은 이미 지원됩니다. 완전한 OpenType CFF와 CFF2 기본 인스턴스 appearance 경로는 문서화된 매핑과 내장 규칙을 유지합니다
독립 raw CFF2 스트림과 기본값이 아닌 변형 좌표 선택은 공개된 CFF2 경로 밖입니다
토큰, 객체, 작업 메모리, 연산, 디코딩 데이터, 출력 한계는 파싱, 임시 리소스, 맞춤, 게시에 적용됩니다. 유계 작업 동안 취소가 폴링됩니다
실패는 소스 그래프를 보존하고 같은 문서 복구를 허용합니다. 한계 도달이 부분적으로 생성된 appearance를 성공 결과로 만들지 않습니다
재현 가능한 acceptance와 남은 경계
공개 스위트는 자산과 완전한 아카이브 매니페스트와 함께 배포되는 Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py입니다
normal 모드는 최대 채널 차이 2로 45쌍의 후보/손으로 쓴 AP, 일곱 원본 한계 그룹, 엡실론 1e-6의 독립 원본-AP 연속 지오메트리를 실행합니다
양수 원본-AP reader 렌더와 알려진 수직 픽셀 셀 관측은 연속 지오메트리와 별도로 기록됩니다. 쌍의 등식도 그 유한 관측도 임의 생성 후보 지오메트리나 임의 변환 래스터 포락선을 증명하지 않습니다
유한 AP 모드는 여섯 유지된 명시적 appearance 아핀과 대시 제어를 검사합니다. normal acceptance, 생성 후보 검사, 한계 테스트를 대체하지 않습니다
유지된 45개 생성 appearance는 엡실론 1e-6의 독립 연속 지오메트리를 통과했습니다. 90장의 고정 MuPDF와 Poppler reader 이미지도 3,168,000개 픽셀 셀 전체에서 최대 채널 차이 0, 건너뛴 이미지 없음, 제외된 셀 없음으로 독립 전체 이미지 모델을 통과했습니다
그 유한 모델은 원본 손으로 쓴 appearance와 폰트 아웃라인에서 기대 글리프, 변환, 클리핑, 스트로크, 합성을 도출하며 각 reader의 고정 FreeType 커널을 씁니다. 관측된 이미지에서 기대 픽셀을 학습하지 않습니다
원본 최대 채널 차이는 2, 잉크 임계값은 245로 남습니다. 이 통과는 유지된 코퍼스와 고정 파이프라인을 커버하며 임의 폰트, 모든 렌더러 빌드, 수학적으로 최대 맞춤 크기의 증명이 아닙니다
Linux와 Windows FPC 대상은 FPC 3.3.1 이상을 요구합니다. Windows FPC는 별도로 검증된 비공개 NoGUI 의존성 빌드를 쓰고 데스크톱 reader를 실행하지 않습니다
관련 항목: 주석 폴백, 주석 장식, 리치 텍스트 run 간격, 원본 raw-font appearance, OpenType CFF2 기본 인스턴스 appearance