네이티브 RAD Studio 최적합
별도의 PDF 엔진을 래핑하는 대신 친숙한 Delphi 및 C++Builder 프로젝트, 패키지, 스트림, 양식 및 그리기 패턴을 사용합니다
Delphi 및 C++Builder용 HotPDF 2.200.2
HotPDF는 외부 PDF 런타임을 배포하지 않고도 VCL 애플리케이션이 Delphi 또는 C++Builder 코드에서 직접 PDF 문서를 생성, 수정, 보호, 서명, 최적화, 가져오기, 압축 및 저장할 수 있도록 해줍니다
HotPDF는 Delphi 및 C++Builder용 소스 수준 PDF 컴포넌트 라이브러리입니다 결정론적 PDF 출력, 직접 페이지 그리기, 강력한 RAD Studio 통합 및 컴팩트한 배포가 필요한 데스크톱 소프트웨어를 위해 제작되었습니다
이 컴포넌트는 단일 네이티브 API 인터페이스에서 일상적인 PDF 생성, 고급 문서 어셈블리, PDF 편집, 이미지가 많은 출력, 양식, 주석, 암호화, 서명 워크플로, 글꼴 최적화 및 스트림 기반 워크플로를 처리합니다
최근 라이브러리 릴리스에서는 HotPDF를 클래식 PDF 작성기에서 버전별 PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 기능 제어, 선택된 PDF 2.0 암호화, PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1 표준 준수, PAdES 베이스라인 / 확장 / 장기 검증 디지털 서명, OpenSSL 또는 외부 네이티브 바이너리에 의존하지 않는 프로세스 내 PFX / PKCS#12 서명 파이프라인, 증분 업데이트 저장, CFF / OpenType / CID-keyed CFF 글꼴 서브셋팅, 기존 보고서를 단일 PDF 백엔드인 HotPDF를 통해 라우팅하는 FastReport, QuickReport, ReportBuilder 및 DevExpress ExpressPrinting용 PDF 내보내기 어댑터 등을 포함하는 광범위한 네이티브 PDF 툴킷으로 확장했습니다 Direct File API는 몇 기가바이트 크기이자 수백만 개의 객체를 가진 PDF를 파일 대 파일로 처리하여 페이지 수, 복사본, 문서 정보 재작성, AES-256 암호화 또는 복호화를 몇 초 만에 완료하며 로더는 이제 무효한 오프셋이 있는 전송 컨테이너에 래핑된 문서와 분리되거나 대체된 객체가 있는 증분 업데이트된 파일도 복구합니다
v2.119.32-51 주기에서는 생성자 측 아랍어 / 페르시아어 / 우르두어 셰이핑(LAM-ALEF 필수 합자, 아랍어 Presentation Forms-A 9자), Script / LangSys 선택 및 대체 글리프를 위한 TTF 서브세터 클로저가 포함된 모든 LookupType 1-8을 처리하는 기능이 완전한 OpenType GSUB 대체 엔진, XFA(XML Forms Architecture) 컨테이너 지원(AddXFAPacket / ClearXFAPackets / XFAPacketCount), AcroForm /AA /K + /F + /V + /C 양식 필드 트리거 제품군, RegisterAcroFormFont를 통한 다중 Unicode /DR 글꼴 등록, Table 333 표준 구조 유형 열거형 및 AddStructureElement 유형 오버로드가 포함된 구조 요소 접근성 속성 설정기(/Lang / /E / /T), BeginTaggedContent의 마크된 콘텐츠 시퀀스 속성이 추가되었습니다
v2.119.52-68 주기에서는 Phase 8 자동 셰이핑 파이프라인이 완성되고 스크립트 지원 범위가 확장되었습니다: 아랍어 Extended-A(U+0750-077F 아랍어 Supplement 및 U+08A0-08FF 아랍어 Extended-A 포함) 및 페르시아어 / 우르두어 Form-B가 전체 U+0672-06D5 결합 클래스 테이블과 26개의 새로운 Forms-A 매핑으로 확장되었으며 LAM-ALEF, YEH-HAMZA + 모음 쌍(U+FBEA-FBFB의 8개 합자), 독립형 Allah 합자(U+FDF2) 및 22개 코드포인트 Bismillah 구문(U+FDFD)에 대한 포스트 패스 폴딩이 지원됩니다 새로운 선택적 ShapingFeatures 속성 + THPDFShapingFeature 열거형(sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping)을 통해 생성자는 GSUB 구동 글꼴 특정 rlig / liga / clig / rclt 대체를 자동으로 방출하며 라틴어 표준 합자(U+FB00-FB06을 통한 ff / fi / fl / ffi / ffl / št / st) 및 데바나가리 Indic 음절 재정렬(Repha + 프리베이스 I-matra)도 동일한 파이프라인에 포함됩니다 시리아어(GetSyriacJoiningClass / GetSyriacPosition), 몽골어(GetMongolianJoiningClass / GetMongolianPosition) 및 데바나가리(GetDevanagariCategory / ApplyDevanagariReorder)를 위한 새로운 셰이핑 기능 메서드를 사용하면 호출자가 동일한 GSUB 엔진을 통해 아랍어가 아닌 복잡한 스크립트를 구동할 수 있습니다 GetCodepointAdvance는 줄 바꿈 계산을 위해 캐시된 /W em-fraction을 노출하며 AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID를 사용하면 생성자가 /CIDToGIDMap + /ToUnicode + /W가 완전히 통합된 사용자 정의 영역(Private-Use-Area) 코드포인트를 통해 모든 GSUB 대체 GID(데바나가리 클러스터 모양, 스타일 대체, CJK 변이 시퀀스)를 방출할 수 있습니다 누적 ToUnicode CMap은 이제 35개의 합자 역매핑 항목(8개 LAM-ALEF + 18개 YEH-HAMZA 제품군 + 1개 Allah + 1개 Bismillah + 7개 라틴어)을 제공하므로 사용자 리더의 복사 / 붙여넣기가 소스 코드포인트를 생성합니다 ChangeLog용 문서 스켈레톤이 이제 언어 선택기 UI와 함께 11개 언어(EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU)로 제공되며 ChangeLog 보존 제한이 250개에서 500개 버전 섹션으로 상향되었습니다
v2.152-v2.190 주기에서는 완전한 OpenType GPOS 포지셔닝 엔진을 구축하고 복잡한 스크립트 지원 범위를 확장했습니다 선택적 셰이핑 옵션은 이제 글꼴 자체의 커닝(쌍, 컨텍스트 및 우횡서), 결합 마크 배치(마크 투 베이스, 마크 투 마크 및 컴포넌트별 마크 투 합자), 필기체 연결 앵커 및 세로쓰기 텍스트용 세로 커닝을 적용하며 이 모든 것은 모든 리더가 동일한 결과를 렌더링하도록 표준 PDF 텍스트 연산자로 작성됩니다 생성자 측 셰이핑은 이제 아랍어(Supplement, Extended-A 및 Extended-B 블록 포함), 시리아어, 몽골어, N'Ko, 아들람, 하니피 로힝야어, 티베트어 자음 쌓기, 글꼴의 Indic 기능 체인을 통한 데바나가리 및 기타 Indic 스크립트, 자바어, 태국어 및 라오어 마크 순서 지정, 히브리어 모음 기호 순서 지정, 크메르어, 미얀마어, 타이 비엣어 및 메이테이 마예크어를 지원합니다 텍스트 출력 시 일련의 선택적 OpenType 타이포그래피 기능(표준, 임의 및 역사적 합자, 소문자, 올드스타일 / 라이닝 / 비례 / 표 형식 숫자, 위첨자, 아래첨자, 서수, 분수, 과학적 아래첨자, 분자, 분모, 스타일 및 컨텍스트 대체, 지역화된 형태, 대소문자 구분 형태, 슬래시 제로 및 세로 대체)을 자동으로 적용할 수 있습니다 복사, 붙여넣기 및 텍스트 검색은 합자 및 연결된 기능 대체를 포함하여 모든 셰이핑된 출력에서 원래 문자를 복원합니다 글꼴 출력도 작아졌습니다: 임베디드 글꼴 프로그램은 항상 Flate 압축되며 여러 페이지에 사용되는 글꼴은 문서당 한 번만 임베드되고 재현 가능한 출력을 위해 서브셋 태그가 결정론적으로 파생되며 선택적 컴팩트 모드는 표준 글꼴을 사용하는 일반 ASCII 텍스트를 임베드되지 않은 WinAnsi 텍스트로 작성합니다
HotPDF는 비즈니스, 이미징, 출판 및 문서 자동화 애플리케이션에서 사용되는 실용적인 PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6 및 PDF 1.7 저작 기능에 대한 버전별 지원을 포함합니다 엄격한 호환성이 필요할 때 생성된 파일이 최신 항목을 피할 수 있도록 공개 API가 선택된 PDF 버전과 비교하여 체크됩니다
현재 지원 항목은 필터 및 예측기, XRef 스트림, 증분 업데이트 체인, AES 암호화, 공개 키 보안, DeviceCMYK 및 ICCBased 색상, 타일링 패턴, 축/방사형/다중 중지 음영, 인라인 이미지, 레이어, 투명도 그룹, 페이지 전환, 주석, AcroForm 위젯, 외부 서명 후크, XMP 메타데이터, 태그된 PDF 구조 트리, OutputIntents, 프로덕션 페이지 상자, ViewerPreferences, UserUnit, Tabs 순서 및 TrueType, Type 3, CFF, OpenType-CFF 및 CID-keyed CFF 글꼴의 글꼴 임베딩/서브셋팅을 포함합니다
이는 HotPDF가 지원하는 저작 인터페이스에 대한 광범위한 표준 인식 지원을 의미하며 ISO 32000-1의 모든 예외 사례가 구현되었음을 포괄적으로 주장하는 것은 아닙니다
별도의 PDF 엔진을 래핑하는 대신 친숙한 Delphi 및 C++Builder 프로젝트, 패키지, 스트림, 양식 및 그리기 패턴을 사용합니다
양식, 주석, 레이어, 투명도, 페이지 전환, 태그된 구조, 암호화, 서명 자리 표시자 및 증분 업데이트를 사용하여 PDF를 작성합니다
zlib-ng 압축, libjpeg-turbo 이미징, TrueType 서브셋팅, OpenType-CFF 서브셋팅 및 대용량 CJK 글꼴용 CID-keyed CFF 지원을 통해 PDF 크기를 줄입니다
아래 기능들은 일반적인 Delphi PDF 컴포넌트 대비 HotPDF의 강력한 기술적 차별점입니다 대부분의 경쟁 상용 컴포넌트들은 이러한 기능이 아예 없거나 실제 프로덕션에서 실질적으로 취약합니다 각 행은 라이브러리 내부에서 검증 가능한 구현 및 공개 API 표면과 매핑됩니다
모든 LookupType 1-8(Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual)을 처리하는 전체 GSUB 대체 엔진과 모든 9가지 LookupType(쌍 / 단일 / 컨텍스트 커닝, 마크 투 베이스, 마크 투 마크, 합자 컴포넌트별 마크 투 합자, 필기체 부착, 거리, 세로 vkrn/vpal)을 처리하는 GPOS 포지셔닝 엔진이 짝을 이룹니다 모든 포지셔닝은 표준 PDF 텍스트 연산자로 방출되므로 모든 리더가 동일하게 렌더링합니다
글꼴 자체의 GSUB 기능 체인에 따라 생성자 측에서 20개 이상의 스크립트가 셰이핑됩니다: 아랍어(Supplement / Extended-A / Extended-B 포함), 시리아어, 몽골어, N'Ko, 아들람, 하니피 로힝야어, 티베트어 쌓기, 데바나가리 및 Indic 제품군, 자바어, 태국어 / 라오어 마크 순서 지정, 히브리어 모음 순서 지정, 크메르어, 미얀마어, 타이 비엣어, 메이테이 마예크어 출력이 완전한 /ToUnicode 역방향 매핑을 전달하므로 복사 / 붙여넣기가 원래 코드포인트를 복원합니다
ASN.1, RSA, AES, PKCS#12 언래핑 및 CMS SignedData(RFC 5652)가 모두 HotPDF 내부에 구현되어 있습니다 SignPDFWithPFX는 OpenSSL 런타임 및 플랫폼 암호화 공급자 없이 한 번의 호출로 자리 표시자 PDF에 서명합니다 - 전체 서명 체인이 프로세스 내에 상주하여 재현 및 감사가 가능하며 배포할 네이티브 바이너리가 전혀 없습니다
PAdES B-B, B-T, B-LT 및 B-LTA 워크플로가 완벽하게 지원됩니다: RFC 3161 타임스탬프, DSS / VRI 장기 검증 사전, 문서 타임스탬프 서명, Seed Value 제약 조건 및 XAdES-in-PDF 이는 대부분의 경쟁 컴포넌트가 기본 CMS 서명에 그치는 반면 EU eIDAS 준수 전자 서명을 위한 필수 요구 사항입니다
PDF/A-1/-2/-3, PDF/X-1a/-3/-4 및 PDF/UA-1에 대한 개별 프로필 제어를 동시에 처리하므로 비준수 호출 시 비적합 PDF를 자동으로 작성하는 대신 진단 예외를 발생시킵니다 CreatePreflightReport는 veraPDF에 대해 종단 간 검증된 INI 프로필, 내장 사전 설정, 배치 집계 및 XMP 입증 정보 임베딩이 포함된 텍스트 / JSON / HTML / CSV 보고서를 내보냅니다
메모리 내 객체 그래프를 빌드하지 않고 디스크의 PDF에서 작동합니다 167만 개의 객체가 포함된 2 GB 문서 기준: AES-256 암호화 약 14초, 복호화 약 16초, 전체 재작성 약 6초 소요되며 1.25 GB 문서의 페이지 수를 읽는 데는 몇 밀리초밖에 걸리지 않습니다 클래식 xref 테이블, XRef 스트림, 하이브리드 참조 파일 및 증분 업데이트된 문서는 모두 직접 경로에 유지됩니다
TrueType, OpenType-CFF 및 CID-keyed CFF 글꼴은 모두 Type0 / Identity-H 텍스트의 글리프 ID를 유지하면서 서브셋팅이 가능합니다 기존에 14 MB CID-keyed CFF 프로그램을 임베드하던 CJK 문서는 이제 렌더링된 글리프 손실 없이 500 KB - 2 MB로 제공됩니다 임베디드 글꼴 프로그램은 항상 Flate 압축되고 다중 페이지 글꼴은 문서당 한 번만 임베드되며 재현 가능한 출력을 위해 서브셋 태그는 결정론적입니다
THPDFLogger + 전역 HPDFLog는 런타임 시 전환 가능한 진단 퍼사드를 제공합니다: Error / Warning / Info / Debug 심각도 필터링, 파일 + OutputDebugString + 콘솔 대상 동시 출력, 스레드 안전, 10 MB 단일 백업 롤오버, 오버헤드가 없는 비활성화 고속 경로 LoadFromFile, 프리플라이트 보고서 및 객체 스트림 폴백 경로는 빌드를 다시 하지 않고도 런타임에 전환할 수 있는 구조화된 진단과 이미 연결되어 있습니다 - 이는 대부분의 경쟁 컴포넌트가 완전히 지원하지 않는 운영 기능입니다
FastReport(TfrxHotPDFExport), QuickReport(TQRHotPDFExportFilter), ReportBuilder(TppHotPDFDevice) 및 DevExpress ExpressPrinting(cxGrid / cxRichEdit / cxScheduler / cxPivotGrid 포함)용 플러그 앤 플레이 PDF 백엔드 기존 보고서 레이아웃은 계속 작동하며 PDF 방출기만 교체됩니다
이것들은 로드맵 약속이 아니라 이미 제공되는 기능입니다 위의 모든 항목은 현재 라이브러리에 구현되어 있으며 깔끔하게 컴파일되고 DUnitX 테스트와 종단 간 veraPDF 검증을 통과합니다 경쟁 컴포넌트를 평가할 때 완전한 GSUB/GPOS LookupType 지원 범위, 프로세스 내 PAdES B-LTA 체인 및 측정된 멀티 기가바이트 암호화 처리량에 대한 증명을 요구하십시오
StrictVersionLock을 통해 엄격한 PDF 1.3/1.4/1.5/1.6/1.7 준수를 시행할 수 있습니다DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile 제품군 및 파일 대 파일 EncryptFile / DecryptFile 호출은 메모리 내 객체 그래프를 빌드하지 않고 PDF 파일에서 직접 작동합니다 167만 개의 객체가 포함된 2 GB 벤치마크 문서에서 AES-256 암호화는 약 14초, 복호화는 약 16초, 전체 재작성은 약 6초가 소요되며 페이지 수를 확인하기 위해 1.25 GB 문서를 여는 데는 몇 밀리초가 걸립니다 클래식 테이블, 교차 참조 스트림, 하이브리드 참조 파일 및 증분 업데이트된 문서는 모두 직접 경로에 유지됩니다
CreatePreflightReport 및 CreatePreflightReportWithProfile은 지원되는 PDF/A, PDF/X 및 PDF/UA 검사에 대해 PDF를 감사하고 텍스트, JSON, HTML 또는 CSV 보고서를 내보냅니다 허용된 결과를 억제하기 위해 INI 스타일의 프로필을 제공하므로 CI 게이트 및 배치 문서 수집에 적합합니다 PreflightCLI 데모는 재귀 폴더 실행 및 통합 대시보드를 추가합니다
HasFormFields 및 FormFieldExists는 로드된 PDF를 수정하기 전에 양식 관련 질문에 답변하며 필드 값은 인덱스 또는 이름으로 읽고 쓸 수 있으며 FlattenFormFields는 대화형 AcroForm 필드를 페이지 콘텐츠에 병합하고 플랫화된 필드 수를 보고합니다 - XFA 양식을 모든 리더에서 사용할 수 있게 유지하는 XFA-to-AcroForm 플랫화도 함께 지원됩니다
THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password)는 한 번의 호출로 기존 자리 표시자 PDF에 서명합니다 완전한 ASN.1, RSA, AES, PKCS#12 및 CMS SignedData(RFC 5652) 스택이 HotPDF 내부에 구현되어 있으므로 OpenSSL 런타임이나 플랫폼 암호화 공급자가 필요하지 않습니다
PAdES B-B, B-T, B-LT 및 B-LTA 워크플로가 종단 간 지원됩니다: RFC 3161 타임스탬프를 사용한 서명 생성, DSS / VRI 장기 검증 사전, 문서 타임스탬프 서명 및 Seed Value 제약 조건 XAdES-in-PDF 및 서명 시드 값 제한도 동일한 인터페이스의 일부입니다
HotPDF는 PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 및 PDF/UA-1 프로필과 비교하여 기능 메서드를 제한합니다 선택한 프로필을 위반하는 호출(PDF/A-1의 투명도, PDF/A의 JavaScript, PDF/X의 외부 주석, PDF/UA의 태그되지 않은 구조)은 비적합 PDF를 자동으로 생성하는 대신 진단 예외를 발생시킵니다
가장 일반적인 4가지 Delphi 보고서 엔진용 플러그 앤 플레이 PDF 백엔드: TfrxHotPDFExport(FastReport 4 / FastReport VCL), TQRHotPDFExportFilter(QuickReport), TppHotPDFDevice(ReportBuilder) 및 dxHotPDFExportReportLinkToFile/Stream(cxGrid / cxRichEdit / cxScheduler / cxPivotGrid를 포함하는 DevExpress ExpressPrinting System) 기존 보고서 정의는 보고서 레이아웃을 다시 작성하지 않고도 HotPDF를 통해 작동합니다
글꼴 자체의 GPOS 데이터로 구동되는 선택적 텍스트 포지셔닝: 좌횡서 및 우횡서 텍스트의 쌍 및 컨텍스트 커닝, 마크 투 베이스, 마크 투 마크 및 합자 컴포넌트별 마크 배치, 필기체 진입/진출 정렬, 거리 포지셔닝 및 세로 글꼴용 세로 커닝 포지셔닝은 표준 PDF 텍스트 연산자로 방출되므로 모든 PDF 리더가 동일한 결과를 렌더링합니다
생성자 측 셰이핑은 뷰어 측 셰이퍼에 의존하지 않고 아랍어(Supplement, Extended-A 및 Extended-B 블록 포함), 시리아어, 몽골어, N'Ko, 아들람, 하니피 로힝야어, 티베트어, 데바나가리 및 기타 Indic 스크립트, 자바어, 태국어, 라오어, 히브리어, 크메르어, 미얀마어, 타이 비엣어, 메이테이 마예크어에 대해 올바르게 결합되고 재정렬된 텍스트를 렌더링합니다 각 스크립트는 선택적 스위치이므로 활성화될 때까지 기존 출력은 바이트 단위로 동일하게 유지되며 복사/붙여넣기는 원래 문자를 복원합니다
선택적 셰이핑 스위치는 텍스트 출력 시 글꼴의 표준, 임의 및 역사적 합자, 소문자, 올드스타일 / 라이닝 / 비례 / 표 형식 숫자, 위첨자, 아래첨자, 서수, 분수, 과학적 아래첨자, 분자, 분모, 스타일 및 컨텍스트 대체, 지역화된 형태, 대소문자 구분 형태, 슬래시 제로 및 세로 대체를 자동으로 적용하며 텍스트 추출은 원래 문자로 다시 매핑됩니다
임베디드 글꼴 프로그램은 항상 Flate 압축되며 여러 페이지에 사용되는 글꼴은 문서 전체에 한 번만 임베드되고 실제로 사용된 글리프에서 서브셋 태그가 결정론적으로 파생되므로 반복 실행 시 동일한 출력을 얻을 수 있습니다 선택적 모드는 표준 글꼴을 사용하는 일반 ASCII 텍스트를 컴팩트하고 임베드되지 않은 WinAnsi 텍스트로 작성하여 일반 텍스트 페이지를 수백 킬로바이트에서 몇 킬로바이트로 줄입니다
생성자 측 셰이핑은 PDF 텍스트 방출 전에 Unicode 입력 런을 Presentation Forms로 정리합니다 아랍어는 전체 U+0672-06D5 결합 클래스 테이블과 40개 이상의 Forms-A 매핑을 지원하며 LAM-ALEF, YEH-HAMZA + 모음(U+FBEA-FBFB), Allah(U+FDF2) 및 Bismillah(U+FDFD)에 대한 자동 합자 포스트 패스를 제공합니다 시리아어(GetSyriacJoiningClass), 몽골어(GetMongolianJoiningClass) 및 데바나가리(GetDevanagariCategory / ApplyDevanagariReorder)를 위한 기능 인터페이스를 통해 호출자가 동일한 GSUB 엔진을 통해 아랍어가 아닌 복잡한 스크립트를 구동할 수 있습니다
선택적 ShapingFeatures 속성 + THPDFShapingFeature enum (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping)은 OpenType GSUB 및 GPOS 엔진을 자동 생성자 측 파이프라인으로 승격시킵니다 텍스트가 방출됨에 따라 네이티브 아랍어 init / medi / fina / isol, rlig, calt, rclt, GPOS 필기체 부착, 라틴어 liga / clig 및 데바나가리 Indic 재정렬이 발생하며 복사 / 붙여넣기 정확성을 위한 완전한 /ToUnicode 역매핑이 지원됩니다
sfStandardLigatures가 활성화되면 ApplyLatinLigatureRefinement를 통해 라틴어 표준 합자(U+FB00-FB06을 통한 ff / fi / fl / ffi / ffl / št / st)가 자동으로 방출됩니다 자연스러운 Unicode 코드포인트가 없는 GSUB 대체 GID(데바나가리 클러스터 모양, 스타일 대체, CJK 표의 문자 변이 시퀀스)의 경우 AssignSyntheticCodepointForGID는 대칭적인 /CIDToGIDMap + /W + /ToUnicode 통합이 포함된 사용자 정의 영역(U+E000-F8FF Private-Use-Area) 코드포인트를 할당합니다
모든 OpenType GSUB LookupType 1-8(Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual)은 기능 전용 쿼리 인터페이스(GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst 및 Multiple / Alternate / Script / LangSys / Feature 도우미)로 구현됩니다 MarkUnicodeGlyphUsed는 모든 대체 글리프를 TTF 서브세터로 가져와 임베디드 글꼴 서브셋이 자립성을 유지하도록 합니다
/DRPDF 1.7 §12.7.6 / §12.7.8 XFA 컨테이너 패킷은 AddXFAPacket을 통해 정적 /Fields와 함께(또는 대신) 전송됩니다 전체 AcroForm 양식 필드 트리거 제품군(/AA /K Keystroke, /F Format, /V Validate, /C Calculate)이 래퍼 메서드로 노출되며 RegisterAcroFormFont는 다국어 양식 위젯을 위해 여러 Unicode 글꼴을 단일 AcroForm /DR 리소스 사전에 바인딩합니다
THotPDF.EnableFontSubsetting은 Type0 / Identity-H 텍스트의 글리프 ID를 유지하면서 TrueType, OpenType-CFF 및 CID-keyed CFF 글꼴을 서브셋팅합니다 기존에 14 MB CID-keyed CFF 프로그램을 임베드하던 CJK PDF는 이제 렌더링된 글리프의 손실 없이 500 KB - 2 MB로 배포됩니다
BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty 및 서명 자리 표시자 API는 이전 서명된 바이트 범위를 재작성하지 않고도 추가 전용 PDF 업데이트 및 다중 서명 워크플로를 지원합니다
GetSyriacJoiningClass / GetSyriacPosition), 몽골어(GetMongolianJoiningClass / GetMongolianPosition), 데바나가리(GetDevanagariCategory / ApplyDevanagariReorder) - 아랍어가 아닌 복잡한 스크립트에 대해서도 동일한 GSUB 엔진을 구동합니다ShapingFeatures 선택적 속성으로 구동되는 자동 Phase 8 셰이핑 파이프라인: sfArabicGSUB는 글꼴 특정 컨텍스트 글리프 ID를 방출하기 위해 네이티브 아랍어 init / medi / fina / isol과 rlig / calt / rclt를 적용하며, sfCursiveAttachment는 GPOS 필기체 앵커를 적용하고, sfStandardLigatures / sfContextualLigatures는 라틴어 liga / clig(FB00-FB06: ff / fi / fl / ffi / ffl / št / st)를 방출하고, sfIndicShaping은 방출 전에 데바나가리 클러스터(Repha + 프리베이스 I-matra)를 재정렬합니다MarkUnicodeGlyphUsed), Cmap 형식 12 SMP 지원, GDEF 파싱, 35개 합자 역매핑 항목이 있는 ToUnicode CMap 자동 방출 및 호출자가 글리프별로 방출을 구동하기 위한 GetUnicodeGlyphForCodepoint 조회를 포함하는 기능이 완전한 OpenType GSUB 대체 엔진(LookupType 1-8)을 제공합니다AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID)을 통해 생성자는 대칭형 /CIDToGIDMap + /W 통합과 함께 U+E000-F8FF 사용자 정의 영역(Private Use Area)을 통해 모든 GSUB 대체 GID(데바나가리 클러스터 모양, 스타일 대체, CJK 표의 문자 변이 시퀀스)를 방출할 수 있습니다 GetCodepointAdvance는 줄 바꿈 계산을 위해 캐시된 /W em-fraction을 노출합니다vkrn / vpal 세로 커닝을 지원합니다liga / clig / dlig / hlig 합자, smcp / c2sc 소문자, onum / lnum / pnum / tnum 숫자 스타일, sups / subs / ordn / frac / sinf / numr / dnom, salt 스타일 대체, calt / rclt 컨텍스트 대체, locl 지역화된 형태, case 형태, zero 슬래시 제로 및 vert / vrt2 세로 대체(ToUnicode CMap에서 원래 텍스트로 역해결되는 연결된 대체 포함)를 자동으로 처리합니다/AA /K Keystroke, /F Format, /V Validate, /C Calculate), RegisterAcroFormFont를 통한 다중 Unicode /DR 글꼴 등록, AddXFAPacket / ClearXFAPackets / XFAPacketCount 및 PDF/A + PDF/X 적합성 게이트를 포함하는 XFA(XML Forms Architecture) 컨테이너 지원(PDF 1.7 §12.7.6 / §12.7.8), 정적 XFA를 네이티브 AcroForm 필드, 스타일 및 페이지 그래픽으로 변환하는 XFA-to-AcroForm 플랫화(원시 XDP 바이트를 위한 ApplyXFAAsAcroForm, 로드된 PDF의 임베디드 양식을 위한 FlattenLoadedXFA)를 제공하여 XFA 엔진이 없는 리더에서도 양식을 보고 채울 수 있도록 합니다BeginTaggedContent의 §14.8.4 마크된 콘텐츠 시퀀스 속성(/Lang / /Alt / /ActualText / /E), 구조 요소 속성 설정기(/Lang / /E / /T), Table 333 표준 구조 유형 열거형(THPDFStandardStructureType) 및 AddStructureElement 유형 오버로드를 제공합니다현재 HotPDF 빌드는 번들 플러그인 Flate 백엔드를 위해 zlib 호환 모드에서 zlib-ng를 사용합니다 페이지 스트림, 임베디드 글꼴 스트림, ToUnicode CMaps, Flate 이미지 스트림, TIFF 관련 출력 및 FlateDecode 도우미가 HotPDF zlib 레이어를 통해 라우팅됩니다
Win64x 및 진단용 MSVC Win64 zlib-ng 빌드는 일반 폴백을 유지하면서 SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ 및 AVX2 경로에 대한 런타임 CPU 디스패치를 포함합니다 Win32는 bcc32c를 통한 일반 zlib-ng OMF 객체 세트에 유지되며 Win32 JPEG 및 TIFF 객체는 클래식 bcc32 OMF 경로를 계속 사용합니다
표준 JPEG 워크플로는 HPDFJpeg.pas가 노출하는 libjpeg 호환 API를 통해 번들된 libjpeg-turbo 3.1.90 객체 세트를 사용합니다 Win32, Win64 및 Win64x 네이티브 빌드에는 이제 관련 NASM SIMD 객체 세트가 포함되어 있으며 JPEG 압축 TIFF 처리를 위해 동일한 네이티브 JPEG 백엔드를 TIFF 통합 레이어에서 사용할 수 있습니다
HPDFCLibs.pas의 C 런타임 브릿지는 이제 SIMD 친화적인 네이티브 버퍼를 위한 32바이트 정렬 할당과 함께 단일 Pascal 지향 레이어를 통해 malloc, free, realloc, calloc, memcpy, memmove 및 memset을 해제합니다
저장소에는 전체 네이티브 C 라이브러리 세트를 위한 재현 가능한 객체 빌드 스크립트 Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat 및 Lib\thirdparty\build-vc64.bat와 집중적인 압축 재빌드를 위한 zlib-ng 전용 스크립트가 포함되어 있습니다
program HelloHotPDF;
uses
System.SysUtils,
HPDFDoc;
var
PDF: THotPDF;
begin
PDF := THotPDF.Create(nil);
try
PDF.AutoLaunch := False;
PDF.FileName := 'HelloHotPDF.pdf';
PDF.Compression := cmFlateDecode;
PDF.EnableFontSubsetting := True;
PDF.BeginDoc;
PDF.CurrentPage.SetFont('Arial', [], 18);
PDF.CurrentPage.TextOut(50, 50, 0, 'Hello HotPDF');
PDF.EndDoc;
finally
PDF.Free;
end;
end.
Lib: HotPDF 소스 유닛, 패키지 프로젝트, 정적 객체 파일 및 번들된 타사 라이브러리 통합Demo\Delphi: 문서 생성, 그리기, 이미지, 페이지 설정, 암호화, 병합/편집 워크플로 등을 위한 Delphi 예제Demo\C++Builder: 주요 Delphi 데모 워크플로에 맞춰진 C++Builder 예제HtmlHelp: 제품 도움말 및 개발자 참조 콘텐츠