변경 내역
릴리스 이력
PDF Library for Delphi 라이브러리의 버전 이력입니다. 최신순으로 나열되며, 각 릴리스는 프로젝트 릴리스 정책에 따라 시맨틱 버저닝을 준수합니다.
최신 릴리스
- 최신 버전: v3.555.0; 릴리스 날짜: 2026-10-10
Version 3.555.0
추가
- Windows 11 on ARM에서 라이브러리와 DLL 빌드 출력이 분리되는 Free Pascal ARM64 및 Delphi ARM64EC 네이티브 소스 빌드를 지원합니다
변경
- Windows ARM은 시스템 AES CBC/GCM과 JPEG 공급자, 이식 가능한 압축, JPEG 2000용 아키텍처에 맞는 OpenJPEG 공유 라이브러리를 사용합니다
- Windows ARM DLL은 64비트 포인터를 잘라내지 않고 이름이 지정된 C ABI 익스포트와 양수의 불투명 인스턴스 핸들을 노출합니다
수정
- Delphi ARM64EC XMP는 한도를 둔 XML 파싱과 함께 네임스페이스 기반 MSXML 인터페이스를 사용해 late-bound OLE 호출에서 실패하지 않습니다
Version 3.554.0
추가
- 네이티브 헤드리스 지원이 Linux ARM64와 macOS x64로 확장되며, 아키텍처에 맞는 FPC 빌드와 Delphi Intel macOS dylib을 제공합니다
- 네이티브 검증 도구는 x64와 ARM64 양쪽 아키텍처에서 Linux와 macOS를 지원합니다
수정
- Intel macOS는 Apple silicon 경로 대신 올바른 네이티브 OpenSSL, Cairo, Fontconfig, OpenJPEG 공급자 위치를 선택합니다
- LLVM LLD 사용 시 Delphi Intel macOS 링킹은 절대 경로의 시스템 라이브러리와 프레임워크 입력을 선택된 Windows SDK 캐시를 기준으로 해석합니다
Version 3.553.1
추가
- Delphi macOS ARM64는 커스텀 속성, 표준 식별자, 관련 없는 네임스페이스 보존을 포함해 네이티브 XMP 메타데이터 편집과 왕복 저장을 지원합니다
수정
- 네이티브 Delphi macOS PFX 서명과 RFC 3161 타임스탬프는 macOS OpenSSL 공급자를 선택하며, ARM64에서 RSA와 EC PDF 서명, 명시적 신뢰 체인, 서명 타임스탬프, 문서 타임스탬프가 검증됩니다
- 네이티브 XMP 읽기/쓰기 주기는 처리 명령을 계속 쌓는 대신 단일 패킷 엔벨로프를 유지합니다
Version 3.553.0
추가
- Delphi는 이제 네이티브 Free Pascal 빌드와 동일한 880개 C 엔트리 포인트를 갖춘 macOS ARM64 헤드리스 동적 라이브러리를 빌드할 수 있습니다
- Delphi macOS 백엔드는 네이티브 폰트, Cairo 렌더링, OpenSSL 암호화와 다이제스트, 시스템 zlib과 libcurl, OpenJPEG, ImageIO JPEG 인코딩과 디코딩을 사용합니다
수정
- macOS 파일 접근, 리소스 조회, 고정 폭 바이너리 구조, 네이티브 코덱 바인딩은 이제 플랫폼에 맞는 선언을 사용합니다
- macOS에서 백그라운드 렌더링은 이식 가능한 일시정지 이벤트를 사용합니다
- Delphi macOS는 디코딩 중 입력 버퍼를 해제하지 않고 암호화된 PDF 문자열과 객체 스트림을 올바르게 복호화합니다
Version 3.552.2
수정
- Win32와 Win64 트라이얼 라이브러리 빌드를 포함해 송장 검증과 OCR 공급자의 구버전 Delphi 컴파일러 호환성을 복원했습니다
Version 3.552.1
수정
- macOS 동적 라이브러리 버퍼는 이제 실제 데이터를 노출하고, 내장된 0 바이트를 보존하며, 성공한 해제를 올바르게 보고합니다
- 동적 라이브러리 인스턴스 핸들은 64비트 대상에서 객체 주소를 잘라내거나 해제된 핸들을 재사용하지 않고 유효하게 유지됩니다
- 라이브러리 언로드는 남아 있는 인스턴스와 버퍼를 해제합니다
Version 3.552.0
추가
- Linux x86_64와 macOS arm64에서 시스템 폰트와 네이티브 PNG, JPEG, JPEG 2000 공급자를 갖춘 Free Pascal 네이티브 헤드리스 PDF 생성, 로딩, 텍스트 워크플로, Cairo 비트맵 렌더링을 지원합니다
- 명시적인 인증서 신뢰 앵커와 검증 시간 확인을 갖춘 네이티브 OpenSSL 암호화, 다이제스트, PKCS12 서명, CMS 검증을 지원합니다
- 네이티브 Free Pascal 대상에서 내장 libcurl HTTP range 접근과 RFC 3161 타임스탬프 워크플로를 지원하며, 서명 타임스탬프 속성과 문서 타임스탬프 검증도 포함합니다
- 네이티브 XMP 메타데이터 파싱과 쓰기는 네임스페이스 기반 속성을 보존하고, DOM을 구성하기 전에 DTD와 지나치게 크거나 깊게 중첩된 XML을 거부합니다
수정
- 네이티브 밴드 비트맵 렌더링은 페이지 변환을 초기화하고 밴드 경계에서 Cairo 안티앨리어싱을 유지합니다
- 공유 타임스탬프, 검증, 태깅 선언이 더 이상 선택적 PDFium 빌드를 요구하지 않습니다
Version 3.551.0
추가
- 정확한 Unicode 콘텐츠 치환은 주변 문자, 기존 TJ 간격, 뒤따르는 텍스트 앵커를 보존하고 삭제와 검증된 대체 폰트를 지원하며, 선택한 페이지 텍스트를 바꾸기 전에 지원되지 않는 매핑을 보고합니다
- 구조화 추출은 태그 읽기 순서를 따르고 의미 역할과 네임스페이스를 해석하며, 단(column)과 페이지 장식 요소를 감지하고, JSON, CSV, Markdown, DOCX 내보내기에서 빈 셀, 병합된 셀, 페이지에 걸친 표 셀을 유지합니다
- 선택적 Tesseract OCR 어댑터는 hOCR과 TSV 결과, 방향 신뢰도, 베이스라인을 지원하고 명시적인 제한과 단계별 진단을 제공합니다
- OCR 텍스트 레이어는 기존 텍스트를 건너뛰거나 라이브러리가 이전에 소유한 레이어만 교체해 페이지 픽셀과 공유 콘텐츠를 보존할 수 있습니다
- 새 Delphi, DLL, ActiveX 컨트롤이 구조화 분석 옵션, OCR 구성, 정확 치환 진단을 노출합니다
변경
- 구조화 JSON은 안정적인 의미 노드 식별자, 읽기 순서 소스, 표 범위, 추론 신뢰도를 갖춘 스키마 버전 2를 사용합니다
- Unicode 치환은 폰트 바이트를 추측하지 않고 불완전한 매핑, 부분 글리프 클러스터, 지원되지 않는 소스를 거부합니다
수정
- TJ 숫자 간격은 이제 렌더링과 텍스트 지오메트리에서 수평 스케일링을 한 번만 적용합니다
- 폰트 측정은 컬렉션이 공유될 때 실제 리소스를 다시 선택하고 각 리소스 범위 안에서 직접 폰트 분석을 재사용합니다
- 콘텐츠 지문은 범위와 오버플로 검사가 켜져 있어도 해시 값을 유지합니다
Version 3.550.0
변경
- SVG 내보내기는 이제 페이지 페인트 순서, 중첩된 Form 콘텐츠, 정확한 클리핑 패스, 변환된 스트로크 지오메트리를 보존합니다
추가
- 제한된 네이티브 래스터 폴백은 내보내기 설정이 배경 스냅샷을 허용할 때 지원되지 않는 페인트 연산을 처리합니다
- GetLastSVGExportDiagnostics는 페이지 콘텐츠 내보내기 밖의 보이는 주석 모양을 포함해 생략된 픽셀, 근사 처리, 래스터 폴백을 보고합니다
Version 3.549.0
추가
- 버전이 매겨진 송장 XML 스키마와 Schematron 검증은 선택적 공급자를 받아들이고 단계 완료 여부, 규칙 식별자, 필드 경로, 심각도, 엔진 진단을 반환합니다
- 내장 송장 비즈니스 검증은 디코딩 한도를 두고 선택한 첨부 파일을 읽고, 없거나 모호한 파일 이름은 거부합니다
- Delphi, DLL, ActiveX는 명시적인 규칙 파일, 시간 제한, 출력 제한과 함께 xmllint와 SaxonJ 검증을 실행할 수 있습니다
Version 3.548.0
추가
- PDF/UA-2 리더 검사는 명시적 또는 자동 프로필 선택을 통해 식별 정보, PDF 버전, 네임스페이스 참조, 역할 매핑, 문서 루트, 구조 부모를 검증합니다
- Delphi, DLL, ActiveX API는 재사용 가능한 검증 파이프라인 안에서 PDF/UA 대상을 선택하고 확인됨, 미검증, 제한된 검증 범위를 노출합니다
변경
- 검증과 프리플라이트 보고서는 PDF/UA-2를 PDF/UA-1과 별도로 식별하고, 구현된 검사를 통과하는 것만으로 완전한 접근성 인증이 되지는 않음을 밝힙니다
Version 3.547.0
추가
- 채널 허용 오차, 무시할 영역, 변경 영역, 픽셀 수, 차이 마스크, 오버레이를 갖춘 렌더링된 페이지 시각 비교를 지원합니다
- 문서 시각 비교는 삽입되고 제거된 페이지를 기준으로 동일한 페이지 이미지를 정렬하고 변경되거나 크기가 바뀐 페이지 쌍을 보고합니다
- Delphi, DLL, ActiveX를 통한 파일 시각 비교는 구조화된 JSON 보고서를 반환합니다
Version 3.546.0
추가
- Arlington 검증 범위 보고서는 Delphi, DLL, ActiveX API를 통해 완전한 통과, 알려진 실패, 불완전한 규칙 지원, 연산 오류를 구분합니다
수정
- 지원되지 않는 모델 표현식은 이제 조용히 성공적인 검증 결과에 포함되는 대신 명시적인 진단을 냅니다
Version 3.545.0
추가
- C#과 VB.NET DLL WorkflowWorkbench 예제는 다중 페이지 보고서 생성, 텍스트 추출, 페이지 분할과 병합, 바이너리 메모리 전송, 명시적인 네이티브 리소스 소유권을 다룹니다
- DocumentInspectionWorkbench는 이제 Delphi, C++Builder, Lazarus 전역에서 페이지 인벤토리와 구성 가능한 진단 심각도 게이트를 제공하고, 자체 완결적인 첫 실행을 위한 입력도 생성합니다
변경
- C++ DLL LinkDemo는 이제 페이지 링크와 아웃라인을 갖춘 완전한 내비게이션 문서를 만들고, 명시적인 DLL과 출력 경로를 받아들이며, 저장된 문서를 검증하고, 실패를 프로세스 종료 코드로 보고합니다
- WorkflowGallery는 왕복 검사로 저장된 문서와 HTTP 응답 본문을 검증하고 검증 보고서를 공개합니다
- DocumentLab 퀵 투어에는 문서 검사가 포함되고, 네이티브 포트폴리오와 패키지 소개는 전용 DLL 워크플로 카탈로그로 연결됩니다
수정
- Delphi 문서 검사는 분석 전에 파일별 카운터를 초기화합니다. 로드할 수 없는 입력에 대한 보고서도 포함입니다. Delphi와 C++Builder는 로케일에 의존하지 않는 JSON 숫자를 씁니다
- C++ DLL 진단 예제는 성공 경로를 포함해 라이브러리를 언로드하기 전에 네이티브 인스턴스를 해제합니다
Version 3.544.0
추가
- 아홉 개의 네이티브 도메인 랩은 시나리오 선택, 안내형 퀵 투어, 시나리오별 로그를 제공하고, 인수 없이 랩을 시작하면 자동으로 열리는 오프라인 HTML 경험도 갖춥니다
변경
- Delphi, C++Builder, Lazarus 예제 포트폴리오는 이제 Showcase, HelloWorld, 아홉 개 랩에 집중하며, Delphi는 대화형 Reader를 유지합니다
- 전문 데모와 집중 튜토리얼은 각 랩 안의 로컬 시나리오 모듈로 통합되어, 별도의 예제 프로젝트나 공용 데모 소스 디렉터리 없이 원래 동작을 유지합니다
- 랩 투어는 격리된 출력 폴더와 타임아웃으로 자체 시나리오를 실행하므로 따로 빌드한 형제 예제 실행 파일에 더 이상 의존하지 않습니다
- 시나리오 노트는 도메인 가이드에서 링크되고, 선택적 Delphi 보고서 프레임워크 통합은 ContentLab 아래로 묶입니다
- Lazarus 스캔 코덱 매트릭스는 생성된 픽스처를 완료하지 못하는 인코딩 경로를 건너뜀으로 표시하고, 요청한 외부 인코더가 있을 때만 JBIG2 측정값을 게시합니다
수정
- Redaction 시나리오는 이제 PDF 1.7 문서를 생성해 콘텐츠 제거가 요구되는 버전 검사를 통과합니다
- 페이지 캡처 시나리오는 마지막 콘텐츠 페이지를 캡처하는 동안 임시 문서 페이지를 유지해 단일 페이지 문서의 캡처 실패를 피합니다
- C++Builder 바코드 갤러리는 이제 값이 1보다 큰 핸들을 거부하는 대신 성공한 0이 아닌 문서와 페이지 핸들을 받아들입니다
- Lazarus 내비게이션 시나리오는 이제 컴패니언 원격 대상 문서를 포함해 성공 보고서를 게시하기 전에 실패한 PDF 쓰기를 보고합니다
Version 3.543.0
변경
- 네이티브 데모 포트폴리오는 이제 대표 투어와 기능 워크벤치를 내세우고, 집중 API 튜토리얼은 각 플랫폼의 Miscellaneous 폴더에 모았습니다
제거
- C++Builder Reader 메타데이터 어댑테이션과 전제 조건만 담은 ReportBridges 실행 파일, 중복된 Lazarus TextExtract 예제, 불필요한 Delphi AddWebLinkConsole 항목을 제거했습니다. 대신 실제 뷰어, 리포트 브리지, 검사, 추출, AddWebLink 예제를 사용하면 됩니다
수정
- C++Builder LoggerDemo는 이제 완료된 세션 로그를 읽기 전에 로그 라이터를 닫고 UTF-8로 출력해 PDF 생성 후 파일 공유 오류와 긴 로그로 인한 콘솔 크래시를 피합니다
Version 3.542.0
변경
- Showcase와 AdvancedWorkflowMatrix는 이제 구현 유닛을 각 Delphi, C++Builder, Lazarus 예제 폴더에 담고 있어 프로젝트를 복사하는 데 공용 데모 유닛 디렉터리가 필요하지 않습니다
- Showcase 소스 가이드는 9페이지 문서, 편집 가능한 폼, 전환 가능한 레이어, 오프라인 내보내기를 유지하면서 자체 로컬 빌더를 가리킵니다
수정
- C++Builder 워크플로 스위트는 종료 전에 전체 워크플로 목록과 콘솔 보고서를 씁니다
Version 3.541.0
추가
- 9페이지 Showcase에는 저장된 폼 값과 선택적 디자인 노트와 함께 편집 가능한 프로젝트 브리프와 레이어로 나뉜 평면도가 들어 있습니다
- C++Builder에는 이제 Delphi와 Lazarus와 같은 대표 Showcase가 포함됩니다
- 콘솔 Showcase 실행은 전체 페이지 PNG 미리보기, 인터랙티브 PDF, UTF-8 텍스트 내보내기를 갖춘 오프라인 경험 페이지를 만듭니다
변경
- Delphi Showcase는 안내형 미리보기, 직접 폼 편집, 디자인 노트 표시 제어, 편집된 PDF 저장, 이미지와 텍스트 내보내기 동작과 함께 열립니다
- 세 네이티브 Showcase 항목은 문서 빌더와 오프라인 내보내기 구현을 공유합니다
수정
- Showcase 표 섹션, 주석 샘플, 바코드 기호가 의도한 영역에 맞고 페이지 레이블도 계속 읽힙니다
- Delphi Showcase는 사용자 소유 출력 디렉터리에 쓰고 미리보기, 내보내기, 저장 실패를 명시적으로 처리합니다
Version 3.540.0
변경
- AdvancedWorkflowMatrix는 하나의 워크플로 런처를 Delphi, C++Builder, Lazarus에서 공유하고 격리된 출력으로 전문 데모를 실행하며, 선택과 타임아웃을 지원하고 빠진 바이너리와 자식 프로세스 실패를 CSV와 HTML 보고서에 기록합니다
- Lazarus TextExtract와 ExtractText는 하나의 읽기 전용 추출 세션을 공유하고 암호를 받아들이며 UTF-8 출력을 쓰고, 최소 콘솔 진입점과 추출 모드 비교는 유지합니다
- C# ActiveX HelloWorld는 헤드리스 출력 옵션, 명시적인 COM 정리, 명확한 배포 진단을 갖춘 생성-저장 스타터입니다
수정
- C# Table2PDF는 불필요한 빈 페이지를 피하고 반환된 폰트 ID를 사용하며 프로세스 아키텍처에 맞게 DLL을 찾습니다
- Visual Basic DLL 스타터는 빌드에 필요한 네이티브 바인딩을 포함하고 아키텍처별 DLL 로딩을 처리합니다
- C++Builder 리포트 엔진 가이드는 누락된 통합을 보고하고 더 이상 자리표시자 PDF를 실제 브리지 결과로 내보이지 않습니다
- C++Builder Reader는 생성한 샘플로 대체하는 대신 읽을 수 없는 PDF가 제공되면 명시적으로 실패합니다
Version 3.539.53
수정
- TextPaging 데모는 필요한 폰트를 로드할 수 없거나 페이지 제한 때문에 렌더링되지 않은 텍스트가 남을 때 오류로 중단되어, 불완전한 PDF가 성공한 결과로 저장되고 열리는 일이 없어졌습니다
Version 3.539.52
수정
- ActionNavigationMatrix 콘솔 데모는 성공을 보고하기 전에 메인과 컴패니언 PDF 쓰기, FDF 내보내기를 확인하고, 출력 작업이 실패하면 0이 아닌 종료 코드로 중단합니다
Version 3.539.51
수정
- 이름 트리와 번호 트리 조회는 뒤집힌 경계 값을 무시하도록 바뀌어, 잘못된 형식의 PDF에서 유효한 자식 항목이 숨겨지지 않습니다
Version 3.539.50
수정
- 정수 정렬은 비교에서 오버플로 없이 부호 있는 정수 전체 범위를 처리합니다
- 빈 정렬된 정수 리스트와 파일 위치 리스트는 successor 질의에 0을 반환합니다. 희소(sparse) 정수 멤버십은 삽입 순서와 중복 항목을 유지하면서 중간 범위를 모두 할당하지 않습니다
Version 3.539.49
수정
- PNG 가져오기는 이미지를 사용 가능한 것으로 취급하기 전에 잘린 청크, 잘못된 헤더와 팔레트, 지원되지 않는 인터레이스 값, 없거나 잘못된 종료 청크를 거부합니다
- PNG을 다시 로드하면 리더 옵션은 유지한 채 이전 이미지 데이터와 메타데이터를 지웁니다. 메타데이터 전용 읽기는 버퍼를 할당하지 않고 이미지 페이로드를 건너뜁니다
Version 3.539.48
수정
- 파일 스트림은 크기 조정 시 요청된 길이를 지키고, 긴 파일 이름은 완전한 절대 경로로 확장됩니다
- 스트림 삽입은 64비트 길이와 커서를 보존하고, 데이터를 수정하기 전에 스트림 범위 밖의 삽입 지점을 거부하며, 완료되지 않은 읽기나 쓰기를 보고합니다
- 페이지 번호가 붙은 파일 이름은 확장자 앞에 번호를 붙이며, 디렉터리 이름을 보존하고 확장자가 없는 이름도 처리합니다
Version 3.539.47
수정
- HTML 텍스트 렌더링과 연속 처리는 이스케이프된 꺾쇠 괄호와 엔티티 표기를 그대로 유지하고, 디코딩된 텍스트를 두 번 해석하지 않습니다
- Markdown 코드 스팬과 코드 블록은 생성된 HTML과 렌더링된 PDF에서 앰퍼샌드와 엔티티 표기를 그대로 유지하고, 데이터셋 내보내기도 셀 값에 같은 리터럴 텍스트를 보존합니다
Version 3.539.46
수정
- Delphi ExtractImage 데모는 선택할 수 없는 이미지를 건너뛰고, 성공적으로 기록된 횟수를 세며, 추출이 불완전하면 그 사실을 보고합니다. 무조건적인 성공 메시지를 더 이상 표시하지 않습니다
- ExtractImage는 출력 디렉터리를 만들고, 추출 이미지 이름을 지을 때 입력 파일의 확장자만 제거합니다. ExtractAnnotAttach는 로딩이 성공 이외의 결과를 반환하면 중단합니다
Version 3.539.45
수정
- 이름 트리와 번호 트리 질의는 순환하거나 중복된 자식 노드를 건너뛰고 유효한 형제 노드를 계속 처리하며, 호출 스택을 넘치게 하지 않고 깊게 중첩된 트리도 처리합니다
- 이름 트리 열거는 잘못된 이름 키를 무시하고, 조회와 삭제는 32,768개를 넘는 이름/값 쌍을 가진 리프에서도 항목의 전체 오프셋을 유지합니다
Version 3.539.44
수정
- 페이지 박스 조회와 캡처는 부모 페이지 트리 노드의 상속 불가능한 bleed, trim, art 박스를 무시하고 대신 리프 페이지 박스 또는 그 유효 crop 박스를 사용합니다
HasPageBox는 직접 상속된 media 및 crop 박스를 간접 배열과 일관되게 보고합니다
Version 3.539.43
수정
- EMF 벡터 가져오기는 기본 검정 펜과 흰 브러시로 시작하므로, 개체를 명시적으로 선택하지 않는 드로잉 레코드도 화면에 남습니다
- 32비트와 16비트 폴리라인은 패스 괄호 안의 독립적인 도형을 보존하고, 16비트 다중 폴리라인은 패스가 그려질 때까지 그리기를 미루며 null 펜도 존중합니다
Version 3.539.42
수정
- bleed, trim 또는 art 박스 옵션을 지정한 CapturePageEx는 해당 박스가 정의되지 않은 페이지에서 미디어 박스 전체 대신 문서에 명시된 대로 crop 박스를 캡처합니다. 페이지에 채워지는 박스도 동일한 ISO 32000-1 기본값을 따릅니다
Version 3.539.41
수정
- EMF 가져오기는 32비트 PolyBezier 레코드를 첫 번째 점을 제어점으로 쓰는 대신 시작점부터 그리므로, 곡선이 16비트 레코드와 일치합니다
- EMF Polyline 레코드는 닫히고 채워진 도형이 아니라 펜만으로 그린 열린 선으로 그려집니다
- EMF PolylineTo 레코드는 현재 위치에서 시작하며 더 이상 닫히지 않고, 처음 두 점이 수평선 위에 있는 레코드가 이후에 그려지는 모든 도형에서 펜을 끄는 일도 없어졌습니다
- 32비트 EMF PolyPolyline 레코드는 모든 폴리라인을 그립니다. 지금까지는 폴리라인을 둘 이상 담은 레코드가 건너뛰어지고 단일 폴리라인은 아무것도 그리지 않았습니다
Version 3.539.40
수정
- ImportAnnotationsFromFDFString과 ImportAnnotationsFromFDF는 XFDF 가져오기와 마찬가지로 실제로 추가된 주석 수를 반환합니다. 페이지가 문서 밖에 있거나 /Subtype이 없어서 건너뛴 항목은 더 이상 세지 않습니다
Version 3.539.39
수정
- EMF 가져오기는 PolyDraw 레코드를 완전하게 그립니다. 선이나 곡선을 그리면서 도형을 닫는 점들이 더 이상 버려지지 않아, 닫힌 도형은 마지막 선분을 유지하고 뒤따르는 곡선도 어긋나지 않습니다. 여러 도형을 담은 16비트 PolyDraw 레코드는 모든 도형을 유지하며, move로 시작하지 않는 도형은 현재 위치에서 시작합니다
- EMF 가져오기는 실제 담긴 점보다 많은 점을 선언하는 Polyline, PolyBezier, Polygon, PolyDraw 및 16비트 PolyPolyline과 PolyPolygon 레코드를 건너뜁니다. 이전에는 레코드 경계를 넘어 읽는 바람에 뒤따르는 레코드에서 엉뚱한 선이 그려지거나 변환이 깨질 수 있었습니다
Version 3.539.38
수정
- 그리드가 영역의 왼쪽이나 위에서 시작하거나, 회전된 그리드가 셀을 음수 좌표에 두는 JBIG2 halftone 영역이 올바르게 디코딩됩니다. 그런 셀은 버려지거나 이동하는 대신 영역 가장자리에서 잘리고, 그리드 원점이 영역 모서리로 끌려가지 않으며, 완전히 밖에 있는 셀은 ITU-T T.88이 규정한 대로 정확히 건너뜁니다
Version 3.539.37
수정
- 영역 밖의 그리드 셀을 건너뛰는 halftone 영역이 있는 JBIG2 이미지가 halftone 그리드가 정사각형이 아닐 때에도 올바르게 디코딩됩니다. 이전에는 스킵 마스크가 행과 열이 뒤바뀐 채 만들어져서, 건너뛰어야 할 셀이 디코딩되고 영역의 나머지 부분이 깨져 나왔습니다
Version 3.539.36
수정
- MovePage로 이동한 페이지는 이전 Pages 노드에서 상속했던 페이지 박스, 회전, 리소스를 자체 복사본으로 가집니다. 따라서 이동된 페이지에서 SetPageBox를 호출하거나 텍스트와 이미지를 그려도 이전 노드와 여전히 거기서 상속받는 페이지들이 바뀌지 않습니다
- SetPageBox는 기존 박스가 다른 페이지나 Pages 노드와 공유되는 간접 객체일 때, 이를 참조하는 모든 페이지의 크기를 바꾸는 대신 해당 페이지에 자체 박스를 부여합니다
- CopyPageRanges는 복사된 원본 페이지가 페이지 박스를 Pages 노드와, CropBox를 MediaBox와 공유하는 상태로 남아 있지 않게 합니다. 복사 후 원본 페이지의 박스를 바꿔도 형제 페이지나 두 박스가 동시에 크기 조정되지 않습니다
Version 3.539.35
수정
- TransformPageElement는 경로나 이미지를 감싸는 행렬 중 크기와 회전 부분을 소수점 네 자리 대신 여섯 자리로 기록합니다. 큰 페이지에서도 작은 회전이나 미세한 배율이 눈에 띄게 어긋나지 않으며, 이동은 소수점 네 자리를 유지합니다
Version 3.539.34
변경
- 콘텐츠 레이어를 다시 쓰는 페이지 편집, 즉 ScalePage, TransformPageElement, DeletePageElement, RedactRegion, ConvertTextToPaths와 WritePageContentLayer로 되쓰는 ParsePageContentLayer의 프로그램은, 바꾸지 않은 숫자 피연산자의 원본 텍스트를 유지하며 레이어 전체를 소수점 네 자리로 반올림하지 않습니다
- TPDFContentProgram에 새 CanonicalNumbers 속성이 생겼습니다. 파싱 전에 설정하면 NormalizeContentStreams처럼 모든 숫자를 정규 형식으로 다시 씁니다
수정
- 출력 정밀도보다 작은 0이 아닌 숫자, 예컨대 0.00001 배율 인수는 0 대신 유효 숫자를 살려 기록됩니다. 콘텐츠 정규화, 저장 시 콘텐츠 최적화 도구, 새 PDF 객체가 미세한 변환을 콘텐츠를 가려 버리는 특이 행렬로 바꾸는 일이 없어집니다
Version 3.539.33
수정
- RecolorPage와 RecolorDocument는 페이지가
0.5 g같은 소수 값으로 색을 설정해도 쉼표 소수점 시스템에서 변환 오류로 실패하지 않습니다 - DrawSVG, DrawSVGFromFile, GetSVGWidth, GetSVGHeight는 쉼표 소수점 시스템에서도
width="100.5"같은 소수 SVG 길이를 읽고 기본값으로 떨어지지 않으며, ExportPageSVG는 소수 채우기 및 선 색상을 유지합니다 - RenderPageRegionToFile와 RenderPageToDCClip은 모든 로케일에서
10.5,20.5,50.5,40.5같은 소수 클립 사각형을 받아들입니다. 형식이 잘못된 클립 문자열은 이제 예외를 던지는 대신 실패하거나 클립 없이 렌더링되며, 초과 값이 사각형을 넘어서지 않습니다 - AddPolygonAnnotation, AddPolyLineAnnotation, AddInkAnnotation은 모든 로케일에서 소수 정점 좌표를 읽고 형식이 잘못된 좌표 목록을 거부합니다
- SetOutputIntentMixingHints는 쉼표 소수점 시스템에서도
0.95같은 solidity 값을 받아들입니다. CheckDocumentPolicy는Document.Version >= 1.3같은 소수 기능 값을 수치로 비교합니다
Version 3.539.32
수정
- AddTagAttribute는 쉼표 소수점 시스템에서도
0.5나2.5 3.5같은 마침표 소수점 값을 PDF 숫자로 기록하고 PDF 이름으로 바꿔 버리지 않습니다. 시스템 소수점 기호로 쓴 값은 여전히 받아들입니다 - SetStructElemBBox, SetStructElemSpaceBefore, SetStructElemSpaceAfter, SetStructElemStartIndent, SetStructElemEndIndent, SetStructElemColor는 숫자를 시스템 로케일과 무관하게 서식화하며, 지수 형식으로는 절대 쓰지 않습니다
- BeginPDFVCRPlaceholder로 만든 PDF/VCR 플레이스홀더는 쉼표 소수점 시스템에서도 저장 전 GTS_BBox 검증을 통과합니다
Version 3.539.31
수정
- GetSimilarImageDeduplicationReportJSON은 쉼표 소수점 시스템에서 maxAcceptedMeanError를
0,333333333333333대신 유효한 JSON 숫자로 기록합니다 - GetObjectJSON과 ExportObjectJSON은
-.25,+3,007.5같은 PDF 숫자를 JSON 숫자 구문으로 기록하므로, 출력이 유효한 JSON이 되고 SetObjectJSON과 ImportObjectJSON이 그대로 받아들입니다 - JSON 보고서는 NaN이나 무한대 값을
+Inf나NAN으로 쓰거나 부동 소수점 예외로 실패하는 대신null을 씁니다. PDF 숫자 오버플로를 다루는 GetDocumentJSON, 비유한 좌표를 다루는 GetAnnotationHitsJSON, 그리고 바코드, deskew, 구조화 텍스트, PDF/VCR 보고서가 해당됩니다 - PDF 콘텐츠, SVG, HTML, CSV 출력의 숫자 서식은 잘못된 부동 소수점 연산을 일으키는 대신 NaN에 0을 씁니다
Version 3.539.30
수정
- ImportAnnotationsFromFDF와 ImportAnnotationsFromFDFString이 가져온 주석을 다시 생성합니다. 이전에는 모든 항목이 집계되었지만 /Subtype 값을 전혀 읽지 않아 실제로 추가된 것은 없었습니다
- FDF 주석 가져오기는 /Rect, /Page, /Contents, /T, /Subj를 어떤 키 순서로든 읽고, 각 조회를 자기 주석 항목 안에 유지하며, 이전 버전이 쓴 쉼표 소수를 포함해 숫자를 시스템 로케일과 무관하게 파싱합니다
- ExportAnnotationsToFDF와 ExportAnnotationsToFDFString은 주석 자신의 /Rect를 PDF 사용자 공간 좌표로 기록하므로, 내보낸 파일을 다시 가져오면 주석이 밀리지 않고 같은 위치에 놓입니다
Version 3.539.29
수정
- ExportAnnotationsToXFDF와 ExportAnnotationsToXFDFString은 XFDF가 요구하는 대로 rect, opacity, width, dashes 값을 모든 시스템 로케일에서 마침표 소수점으로 기록합니다
- ImportAnnotationsFromXFDF와 ImportAnnotationsFromXFDFString은 쉼표 소수점 시스템에서도 표준적인 마침표 소수점 XFDF를 변환 오류 없이 읽으며, 형식이 잘못된 숫자를 만나면 가져오기를 중단하는 대신 해당 값만 건너뜁니다
- 이전 버전이 쉼표 소수점 시스템에서 작성한 XFDF 파일, 예를 들어
rect="50,500 80,250 70,750 100,125"나opacity="0,600"은 의도된 값 그대로 가져와집니다
Version 3.539.28
수정
- 콘텐츠 스트림 최적화 도구는 Td, TD, T*, 앞선 Tm 또는 표시된 텍스트 뒤에서 텍스트 위치를 리셋하는
1 0 0 1 0 0 Tm을 더 이상 제거하지 않습니다. 이전에는 저장 시 콘텐츠 스트림을 최적화할 때 이것이 제거되어 뒤따르는 글리프가 밀렸습니다. BT 바로 뒤의 단위 Tm이나 앞선 단위 Tm을 반복하는 Tm은 여전히 제거됩니다
Version 3.539.27
수정
- MovePage와, 페이지를 재배열할 때의 CollateDocumentsEx는 페이지가 부모 Pages 노드에서 상속한 MediaBox, CropBox, Rotate를 유지합니다. 다른 부모 아래로 옮겨진 페이지가 더 이상 크기, 크롭, 방향을 바꾸지 않으며, 이전에는 /Resources만 옮겨졌습니다
- BalancePageTree는 간접 객체인 상속된 /Resources, /MediaBox, /CropBox, /Rotate를 모든 페이지로 복사하는 대신 해당 객체에 대한 참조로 유지합니다
Version 3.539.26
수정
- AddPageMatrix, ScalePage, DeskewPage, TransformPageElement, DeletePageElement, RedactRegion, ConvertTextToPaths가 기록하는 페이지 콘텐츠는 항상 마침표를 소수점으로 쓰는 일반 표기를 사용합니다. 따라서 쉼표를 소수점으로 쓰는 로케일의 시스템에서도 이 호출들이
0,5 0 0 0,5 0 0 cm같은 깨진 연산자를 만들어 내지 않고, 아주 작은 값이 지수 형식으로 기록되는 일도 없습니다 - ExportAnnotationsToFDF와 ExportAnnotationsToFDFString은 시스템 로케일과 무관하게 주석 사각형을 마침표 소수점으로 기록합니다
- RecolorPage와 RecolorDocument는 쉼표뿐 아니라 모든 소수점 기호에 대해 로케일 중립적인 색상 피연산자를 기록합니다
- AddPageMatrix, ScalePage, RedactRegion은 NaN이나 무한대 인수를 페이지에 기록하는 대신 거부합니다
Version 3.539.25
수정
- 폼 필드 모양 복구가 가짜 /N 모양 상태를 만드는 대신 /Type과 /Subtype을 모양 스트림에 기록하며, CMYK 테두리 색상은 더 이상 네 구성 요소를 넘어 읽지 않고, 폼 필드를 삭제할 때 간접 /Count 값 때문에 페이지 수를 잘못 읽는 문제도 사라졌습니다
- 체크박스 스타일 복구는 Off 상태가 없을 때 두 사용자 정의 내보내기 상태를 지우는 대신 그대로 유지하며, 라디오 버튼 하위 필드는 값 설정자가 비교하는 것과 동일한 인코딩으로 자신의 on 상태를 등록합니다
- /EF 딕셔너리가 없는 파일 첨부 주석이 더 이상 충돌하지 않고, 사운드 주석 내보내기가 8비트 오디오를 바이트 스왑하지 않으며, 마크업 주석의 불투명도가 하나의 일관된 스케일을 사용하고, SetAnnotRect가 다시 성공을 보고합니다
- 문서에 간접 객체 콜백이 없을 때 주석 모양 재구성이 더 이상 해제된 스트림을 구조 객체 테이블에 남기지 않습니다
- peephole 최적화 도구는 같은 쪽의 다른 색상 연산자가 중간에 대체한 색상 설정자를 더 이상 누락하지 않으며, 단순 인접 중복은 계속 축약합니다
- 텍스트 추출이 " 연산자를 라인 leading을 손상시키는 대신 단어 간격과 문자 간격으로 올바르게 처리하며, FindInstructionsInRect는 다중 하위 경로(subpath)에 대해 더 이상 겹치는 범위를 보고하지 않습니다
- EMF 가져오기: PolyDraw가 올바른 오프셋에서 점 유형 플래그를 읽고, POLYTEXTOUTW는 항상 UTF-16 텍스트를 읽으며 더 이상 문자열 간에 글리프를 누적하지 않고, 작은 텍스트 출력의 글리프 매핑이 더 이상 전체 문자열을 한 글자로 바꾸지 않으며, 그라디언트 채우기가 퇴화된 사각형에서 더 이상 0으로 나누지 않습니다
- EMF 가져오기는 파일이 제공하는 모든 비트맵 헤더 크기, 영역 사각형 개수, 폴리곤 개수, 그라디언트 정점 인덱스를 레코드 범위 안으로 제한하며, Win64에서 레코드 포인터를 32비트로 잘라내는 문제도 사라졌습니다
- JBIG2 halftone 영역은 패턴을 올바른 격자 방향으로 배치하고, skip-mask 테스트는 고정소수점으로 비교하며, 보존된 산술 컨텍스트는 오류를 내는 대신 디코더 통계를 스냅샷하고, run-length 심볼 테이블은 첫 위치의 반복 코드를 방어하며, MMR 참조선은 sentinel에서 멈추고, 캔버스를 일부 벗어난 심볼은 이동시키는 대신 잘라내며, 잘못된 형식의 개수는 무관한 런타임 오류 대신 디코딩 실패로 나타납니다
- CCITT 디코딩은 변화 요소(changing-element) 조회를 초기화하고 남은 비트보다 작은 비트 요청을 음수 시프트 없이 처리하며, CCITT 인코더는 vertical 모드 전체 범위를 다루고 행 버퍼를 한 바이트 넘어서 읽는 문제도 없앴습니다
- TIFF 로딩은 모든 IFD 읽기에 대해 범위를 검사하고, 팔레트 이미지가 그레이 램프로 디코딩되는 것을 막으며, StripByteCounts를 한 번만 기록하고, 요청된 페이지 번호를 제한합니다. 실패한 JPEG 재압축은 더 이상 손상된 스트림을 성공으로 보고하지 않습니다
- 문서 비교는 스트림 데이터를 객체 지문(fingerprint)에 포함시키고, 중복 객체를 일대일로 매칭하며, 딕셔너리 키를 정렬하고, 배열 요소를 분리하며, 잘못된 “변경 없음” 판정 대신 비교 실패를 보고합니다
- 병렬 렌더링 이름 생성기가 더 이상 한 글자짜리 패턴을 넘어 읽지 않습니다
- 데모 여러 개를 추가로 수리했습니다: 파일 목록 판정이 올바른 파일과 짝지어지고, 다기능 뷰어가 입력한 비밀번호로 실제로 재시도하며, 데모 네 개가 더 이상 빈 첫 페이지를 앞에 붙이지 않고, 첨부 파일과 페이지 작업 데모는 입력 옆에서 샘플 및 출력 경로를 찾으며, 이미지 전략 도우미는 자신이 기반으로 삼는 라이브러리 결과를 확인합니다
- ActiveX 컨트롤이 모든 variant 입력 메서드의 결과를 초기화하므로, 거부된 variant가 더 이상 스택 쓰레기 값을 반환하지 않습니다
Version 3.539.24
수정
- 스탬프 토큰 &T가 이제 헤더, 바닥글, 스탬프에서 Author 대신 문서 Title로 확장됩니다
- PrinterMark 주석은 /PN 마크 종류를 ISO 32000-1이 요구하는 대로 리터럴 문자열이 아닌 PDF name 객체로 기록합니다
- 복합 폼 필드의 kid 인덱스 조회가 임시 자식 필드를 누수시키지 않고 해제합니다
- 재균형된 페이지 트리는 Resources뿐 아니라 MediaBox, CropBox, Rotate도 상위 노드에서 상속합니다
- XMP CreateDate와 ModifyDate는 PDF 날짜에 시간대가 없을 때도 유효한 ISO 8601 형식을 유지하며, x:xmpmeta 래퍼가 없는 XMP 가져오기가 더 이상 이후 메타데이터 업데이트를 누락시키지 않습니다
- PDF 문자열의 8진수 escape는 숫자 7에서 멈추므로, 이제 \0689는 사양이 정의한 대로 \06 다음에 리터럴 89로 디코딩됩니다
- QDF 발행은 파일 닫기 오류로 가리는 대신 원래의 쓰기 실패를 보고합니다
- FPC 빌드는 한 청크보다 큰 Flate 스트림을 다른 소비자가 잘라내는 청크별 연결 멤버가 아니라 단일 zlib 스트림으로 압축하고 해제합니다
- EditFormField 데모는 샘플 폼을 찾지 못하는 대신 첫 실행 시 직접 생성하며, 여러 데모는 빈 PDF를 조용히 저장하는 대신 문서 로드 실패를 보고합니다
변경
- 문서 검색 색인이 모든 로케일에 공통으로 쓰이던 중국어 제목 대신, 현지화된 selling-points 페이지를 각 언어 고유의 제목으로 나열합니다
Version 3.539.23
추가
- 네이티브 JBIG2 디코딩이 세그먼트 길이를 아는 독립형(standalone) random-access 파일 구성을 지원하며, 사용자 정의 Huffman 테이블과 refinement 이미지도 포함합니다
수정
- random-access 입력은 디코딩 전에 헤더 순서, 필수 파일 끝(end-of-file) 헤더, 전체 데이터 길이를 검증하며, 잘리거나 남은 데이터는 이전 비트맵을 유지하지 않고 거부합니다
Version 3.539.22
추가
- 네이티브 JBIG2 디코딩이 기호 사전 및 텍스트 영역에 대한 사용자 정의 허프만 테이블을 지원하며, 잘못된 형식의 테이블과 지원되지 않는 접두사 길이에 대해 명시적인 오류를 보고합니다
수정
- 허프만 정제 디코딩이 선언된 비트맵 크기를 소비하고 부분 바이트 기호 픽셀을 보존하여 영향을 받는 JBIG2 이미지의 텍스트 손상을 방지합니다
Version 3.539.21
수정
- Flate와 LZW 디코딩은 사전에 지정된 알고리즘으로 모든 행을 디코딩하는 대신, 예측자 10~14에 대해 행별 PNG 알고리즘 태그를 따릅니다. Predictor 12로 압축된 정상적인 교차 참조 스트림이 다시 로드되고, 이미지 행이 어긋나 디코딩되지 않으며, 한 이미지 안에서 행마다 알고리즘을 바꿀 수 있습니다
Version 3.539.20
수정
- 첫 문서 정보 또는 표준 식별자 편집이 에디터 개체를 초기화하기 전에 원본 XMP를 확보하므로, 기존 작성자, 문서 식별자, 사용자 지정 속성이 기본 메타데이터로 덮어써지지 않습니다. Windows의 Free Pascal에서도 문서 정보 변경이 XMP에 반영되며, xpacket 래퍼 없는 XML은 그대로 저장됩니다
Version 3.539.19
수정
- 수정되지 않은 10진수 개체를 저장할 때는 구문 분석 당시의 정밀도를 유지하고 기본 출력 정밀도로 반올림하지 않습니다. 덕분에 CalRGB 감마와 행렬 같은 보정된 색상 매개변수가 단순 저장만으로 페이지 색을 밀어내지 않습니다. 새로 만들거나 편집한 숫자는 계속 설정된 정밀도를 사용합니다
Version 3.539.18
수정
- 문서 정보 갱신은 대상 필드의 값만 교체합니다. 생성 날짜와 수정 날짜가 같은 간접 문자열을 참조할 때, 수정 날짜를 새로 고쳐도 생성 날짜를 다시 쓰지 않습니다
Version 3.539.17
변경
- 버전 감지와 저장 전 사전 점검은 기능 규칙을 수집하는 동안 관리 문자열 복사를 반복하지 않아 대형 문서에서 스캔 오버헤드를 줄입니다. 기능 감지, 버전 요구 사항, 첫 호환되지 않는 기능 진단은 이전과 정확히 동일하게 동작합니다
Version 3.539.16
수정
SaveQDFToFile와ConvertFileToQDF는 Free Pascal과 Lazarus에서 일반적인 압축 Flate 콘텐츠 스트림을 빈 스트림으로 쓰지 않습니다. 명시적 시작 위치에서의 압축 해제는 올바른 1 기준 오프셋과 전체 입력 길이를 적용합니다
Version 3.539.15
수정
- JBIG2 디코더는 로컬 및 글로벌 프로파일 세그먼트를 안전하게 읽고 표준 페이지 번호 1을 통해 첫 비트맵을 얻습니다
- MMR 비트맵 디코딩은 마지막 픽셀 이후 읽기 위치를 선언된 세그먼트 경계에 재정렬하므로, 뒤에 붙은 EOFB나 패딩이 다음 세그먼트 헤더로 오인되지 않습니다
- 사용자 지정 Huffman 테이블, 랜덤 액세스 구성, 알 수 없거나 과도하게 큰 세그먼트 길이는 명시적으로 실패합니다. 잘린 프로파일과 잘못된 세그먼트 참조는 디코딩을 중단하고,
TPLJBIG2Decoder.LastError가 이유를 보고하며, 실패 시 오래된 비트맵을 지웁니다 RepairQDFFile은 대상 디렉터리에서 배타적으로 생성한 임시 파일을 통해 공개하고, 임시 파일의 쓰기·플러시·닫기가 끝난 뒤에만 대상을 교체합니다. 제자리 복구와 덮어쓰기 출력은 쓰기, 플러시, 교체 중 하나라도 실패하면 기존 파일을 유지하고 결과 0과 오류 코드 305를 보고합니다- 공개 과정은 임시 파일을 쓰기 전에 대상의 기존 DACL을 보존하고, 권한을 유지할 수 없거나 대상이 EFS로 암호화되어 있으면 명시적으로 실패합니다. 배타적으로 잠겨 있거나 읽을 수 없는 입력은 읽기 예외를 발생시키는 대신 오류 코드 401을 보고하며, 파일 공개는 Unicode 및 확장 길이 Windows 경로를 지원합니다
Version 3.539.13
수정
- QDF 파일 복구는 본문에 한 줄 전체의
endstream이나endobj마커가 있는 스트림 내용을 더 이상 버리지 않습니다. 복구는 알려진 개체 끝 앞에서 마지막으로 완전한 종료 마커 쌍을 선택합니다 - 스트림 안에서 반복되는 개체별 종료 마커는 대상 스트림을 지우기 전에 복구를 실패 처리하며, 원본 바이트, 길이, 위치를 보존합니다
RepairQDFFile은 복구 전체를 메모리에서 완료하고 성공한 후에만 쓰기용으로 대상을 열므로, 거부된 입력이fmCreate로 연 파일을 잘라내지 못합니다- 파일 명세 문자열은 문서화된
/UF우선,/F후순위 순서를 유지하고, 알 수 없는/Path키에 이름 우선권을 주지 않습니다
Version 3.539.10
수정
- LZW 디코딩은 인코더의 임계값을 공유하는 대신 디코더 자신의 임계값에서 코드 폭을 확장하므로, 모든 코드 폭의 스트림과 사전 리셋이 반복되는 경우에도 올바르게 디코딩됩니다. Pillow, libtiff, PDFium으로 검증했습니다
- CMS 서명 파싱은 ContentInfo, EXPLICIT 래핑, SignedData, set, identity 필드를 거치며 부모 경계를 전달하므로, 범위를 벗어난 데이터가 인증서 개수나 identity 일치에 사용되지 않습니다. 바깥 개체 뒤의 유효한 패딩은 여전히 허용됩니다
- PageLabels가
/Kids번호 트리를 사용하는 문서에서 페이지 레이블을 갱신할 때, 기존 항목을 루트 리프 노드로 변환하고 리더가 무시하는 상호 배타적인 두 번째/Nums항목을 추가하지 않습니다 - Lazarus MergePDF 샘플은 입력을 두 번째 명령줄 인수에서 읽고, 명시적 입력이 하나뿐이면 매개변수 오류로 처리하며, 생성이 실패하기 전에 성공 힌트를 출력하지 않습니다
Version 3.539.6
수정
- 버퍼 스캔은 짧은 읽기가 아니라
TStream.Read가 0을 반환한 시점에 중단되고, 몇 바이트씩 반환하는 스트림도 스캔한 데이터의 끝부분을 더 이상 건너뛰지 않습니다 - OID 인코딩은 처음 두 아크를 하나의 base-128 하위 식별자로 병합하므로
2.999.3은06 03 88 37 03으로 인코딩되고, 조용히1.15.3으로 변하는 일이 없습니다 - 재사용한 이미지 스트림에 미리보기를 그릴 때 먼저 기존 내용을 지우므로, 더 작은 렌더링 결과 뒤에 이전 이미지의 끝부분이 남지 않습니다
CopyPageRanges는 문서 인스턴스를finally블록에서 해제하여 로드 실패, 예외, 정상 완료를 모두 처리합니다
Version 3.539.3
수정
- 오류 코드 526이 더 이상 두 가지 의미를 갖지 않습니다.
PDFLIB_ERROR_TEXT_LOCATION_INVALID,PDFLIB_ERROR_TEXT_LOCATION_STALE와PDFLIB_ERROR_TEXT_LOCATION_READ_ONLY는 미할당 상태였던 535, 536, 537로 옮겨졌으므로 526으로 분기하는 호출자는 문서화된 JSON 내보내기 실패만 보게 됩니다. 코드 527과 528은 더 이상 사용하지 않습니다 PDFlibErrorMessage는 코드 101~104를 실제 발생 원인으로 설명합니다. 이 네 코드는 메시지 표가 주장하던 구문 분석 오류가 아니라 암호화 매개변수에 속하므로, 암호화 강도 실패가 더 이상 "Invalid PDF structure"를 보고하지 않습니다PDFlibErrorMessage는 라이브러리가 발생시키는 모든 코드에 대해 실제 메시지를 반환합니다. 바이트 범위 및 HTTP 열기 실패, 네트워크 파일 열기, 원시 암호화 키 크기, JSON 내보내기, 마크 콘텐츠 및 클립 경로 핸들 거부, 번호가 다시 매겨진 텍스트 위치 코드, 임베드 가능 폰트와 PDF/VCR 및 PDF/E 준수 코드, 중복 필드 및 폼 스크립트는 일반적인 "<segment> error (NNN)" 텍스트로 대체되어 있었습니다LastErrorCode참조 페이지는 이전에 누락되었던 705 중복 필드 코드를 포함한 전체 코드 집합을 나열하며, 더 이상 사용이 중단된 527과 528 항목을 표시하지 않습니다
Version 3.539.2
수정
- 디렉터리가 파일에 실제로 있는 값보다 많은 값을 선언하는 TIFF는 이제 완전히 거부합니다. 기존에는 값을 버리면서 개수를 남겼기 때문에 이후 읽기가 빈 배열의 첫 요소를 가져왔습니다
- 헤더가 형식 범위를 벗어난 색 유형이나 비트 깊이를 가진 PNG는 색 채널 없이 디코딩하지 않고 거부합니다. 이전에는 이 상태가 행 필터를 빈 버퍼로 보냈습니다
- 정의된 9바이트보다 짧은 PNG 해상도 청크는 더 이상 받은 데이터를 넘어 읽지 않습니다
- 2차원 CCITT Group 3 및 Group 4 이미지를 Free Pascal과 Lazarus에서 디코딩합니다. 이전에는 참조 줄 조회가 만들어지지 않은 배열을 반환했고 해당 컴파일러는 이를 비워 둡니다
Version 3.539.1
수정
- 뷰어의 디스크 캐시는 이제 라이브러리를 업그레이드할 때마다 렌더링된 비트맵을 버립니다. 비교하던 버전 마커가 라이브러리 버전과 별도로 관리되어 뒤처졌고, 그래서 이전 빌드의 캐시가 업데이트 후 재사용될 수 있었습니다
- Free Pascal 및 Lazarus 빌드가 16비트
BI_BITFIELDS비트맵을 다시 올바르게 읽습니다. 확장 정보 헤더를 사용하는 파일에서 채널 마스크를 잘못된 오프셋에서 가져와 색이 뒤섞였습니다 - 장치 백킹이 없는 빌드에서 비트맵 행을 더 이상 잘못 읽지 않습니다. 1비트 및 4비트 행은 정수 나눗셈으로 크기를 정해 각 행 끝 픽셀을 잃었고, 저장 시 픽셀 블록이 한 바이트 어긋났습니다
- 크기를 미리 알 수 없어도 그림을 메타파일로 캡처하면 더 이상 빈 이미지가 만들어지지 않습니다. 기록되는 프레임은 VCL과 마찬가지로 그림 자체에서 가져옵니다
- 선언된 팔레트 크기가 색 깊이를 초과하는 비트맵 읽기는 신뢰하지 않고 거부합니다
- 프린터 작업 상태 조회는 연 스풀러 핸들을 해제하므로 작업 조회가 호출마다 핸들을 누수하지 않습니다
Docs\index.html이 다시 언어 진입 페이지입니다. 문서 동기화가 간체 중국어 참조 탐색 복사본으로 바꾸었고 그 항목 링크는 존재하지 않는 디렉터리를 가리켰습니다
변경
- Lazarus 패키지
PDFlibPasLaz.lpk는 이제 선택 사항인 LZW 인코더, Brainpool, Ed448, ML-DSA, PDF 프린터, 외부 JBIG2 인코더 유닛을 메타파일 선언과 함께 나열하며 명령줄 빌드의 유닛 집합과 같아집니다 build-Win64-Demo-Laz.cmd는build-Lazarus-Demo.cmd win64로 전달합니다. 두 진입점 모두 데모 실행 파일을 소스 디렉터리 대신bin\x86_64-win64에 둡니다
Version 3.539.0
추가
- Free Pascal과 Lazarus가 이제 Win64와 함께 32비트 Windows 빌드도 지원하며 PDF 생성, 로드, 암호화와 JPEG 2000 이미지까지 포함합니다
- Lazarus 라이브러리, 평가판, 데모 및 콘솔 테스트 빌드 스크립트가
win32또는win64를 허용하고 아키텍처별로 출력 디렉터리를 분리한 Win32 호스트 크로스 컴파일러를 지원합니다
변경
- Win32에서는 외부 인코더를 요청하면 내장 Pascal JBIG2 인코더를 사용하며, 정적으로 링크된 외부 인코더는 Win64에서 계속 사용할 수 있습니다
- FPC 빌드는 함께 제공되는 Pascal zlib 구현을 통해 압축을 수행하며 시스템 검색 경로에서
zlib1.dll을 더 이상 로드하지 않습니다
Version 3.538.0
추가
- Free Pascal 및 Lazarus 빌드가 이제 외부 JBIG2 인코더를 사용할 수 있습니다: 프로젝트에 새 PDFlibJBIG2EncDLL 유닛을 추가하고
pdflibjbig2enc.dll을 실행 파일 옆에 두면,AddImageJBIG2FromStreamEx와 다른 JBIG2 진입점이 Delphi에서와 정확히 동일하게 외부 인코더 요청을 처리합니다. DLL이 없으면 요청은 내장 Pascal 인코더로 계속 폴백되므로 이를 함께 배포하지 않는 프로젝트는 영향을 받지 않습니다 - 재배포 가능한 새
DLL\JBig2Enc\Win64\pdflibjbig2enc.dll과 이를 생성하는 빌드 스크립트
Version 3.537.0
추가
- Free Pascal 및 Lazarus 빌드가 메타파일을 벡터 페이지 콘텐츠로 변환합니다.
ImportEMFFromFile,ImportEMFFromStream, 이들의 Ex 형태,LoadFromCanvasDC,NewPageFromCanvasDC는 이제 Delphi에서와 마찬가지로 임베드된 폰트가 포함된 실제 PDF 드로잉 연산자를 생성하며, 모드를 사용할 수 없다는 보고를 하지 않습니다. 텍스트는 선택 및 검색 가능한 상태로 유지되고, 출력은 래스터화 가져오기에 비해 훨씬 작은 크기가 됩니다
Version 3.536.7
수정
- Free Pascal 및 Lazarus에서 프린터 열거가 실제 이름을 반환합니다. 이전에는 모든 프린터가 첫 글자만 반환되어, 프린터 선택, 사용자 지정 프린터 프로필, 인쇄 자체가 설치된 모든 프린터를 거부했습니다
GetPrinterNames가 VCL 없는 빌드에서 더 이상 크래시하지 않습니다:GetLatestPrinterNames가 이미 그러했듯 이제 스풀러에 직접 요청합니다
Version 3.536.6
수정
- 메타파일을 벡터 페이지 콘텐츠로 변환하는 작업은 이제 지원하지 않는 빌드에서 실패를 보고하며, 내용이 빈 그림을 반환하지 않습니다.
ImportEMFFromFile,ImportEMFFromStream, 이들의 Ex 형태,LoadFromCanvasDC는 모두 그곳에서 유효해 보이는 이미지 id를 반환했기 때문에, 페이지는 이유를 알려주는 것 없이 백지로 나왔습니다. 동일한 메타파일을 이미지로 가져오는 것은 영향을 받지 않으며 동일한 그림을 담고 있습니다 - 변환을 실행할 수 없을 때 캔버스 캡처와 메타파일 가져오기가 더 이상 크래시하지 않습니다: 두 진입점 모두 결과 그림이 존재하는지 확인하지 않고 사용하고 있었습니다
Version 3.536.5
수정
- Free Pascal 및 Lazarus에서 래스터화 메타파일 가져오기가 동작합니다.
ImportEMFFromFile,ImportEMFFromStream과 이들의 Ex 형태는 래스터화를 요청받아도 아무것도 반환하지 않았고,LoadFromCanvasDC는 같은 모드에서 크래시했습니다. 이미지 로더에 전달된 드로잉 스트림이 그곳에서 읽을 수 있는 형태가 아니었기 때문입니다. 벡터 경로는 영향을 받지 않았습니다
Version 3.536.4
수정
- Free Pascal 및 Lazarus에서 메타파일 캡처가 물리적 크기를 다시 보고하므로,
LoadFromCanvasDC와 다른 캔버스 캡처 진입점이 크기가 0인 프레임에서 실패하는 대신 드로잉을 가져옵니다 - VCL 없는 폰트 객체가 이제 실제
PixelsPerInch를 보고하고Assign시 복사됩니다. 두 기능 모두 작동하지 않았기 때문에, 폰트에서 렌더링 해상도를 가져오는 코드는 크기가 0인 캔버스를 요청했고, 준비된 폰트를 캔버스에 넘겨도 조용히 이전 폰트가 유지되었습니다 - Free Pascal에서 생성되는 메타파일은 다른 모든 플랫폼과 마찬가지로 기본적으로 확장 형식을 사용합니다. 이전에는 호출자가 직접 플래그를 설정하지 않는 한 레거시 16비트 레이아웃으로 저장되었습니다
Version 3.536.3
수정
- Free Pascal 및 Lazarus 빌드가 이제 4비트, 8비트, 16비트 BMP 이미지를 가져옵니다.
AddImageFromFile과AddImageFromStream은 해당 비트 깊이(페인트 프로그램이 기록하는 16비트BI_BITFIELDS형식 포함)에 대해 아무 이미지도 반환하지 않았습니다. VCL 없는 비트맵 리더가 1비트, 24비트, 32비트 입력만 이해했기 때문입니다
Version 3.536.2
수정
- Free Pascal 및 Lazarus에서 클래식 GDI 메타파일 내보내기가 동작합니다:
RenderPageToMetafileFile과RenderPageToMetafileStream은mfEMF와mfWMF에서 액세스 위반을 일으켰습니다. VCL 없는 메타파일 캔버스가 브러시, 펜, 폰트가 없는 빈 대체물이었기 때문입니다. 두 형식 모두 이제 실제 확장 메타파일에 기록되어 저장되며,mfWMF는 .wmf 파일에 필요한 placeable 헤더와 함께 저장됩니다
Version 3.536.1
수정
- Free Pascal 및 Lazarus 빌드가 이제 유효한 1비트, 4비트, 8비트 BMP 파일을 기록합니다: VCL 비트맵을 대체하던 비트맵 대체물이 컬러 테이블을 전혀 내보내지 않아, 팔레트 인덱스 비트맵이 모든 리더에서 거부되고 전부 검은 팔레트를 대상으로 그려졌습니다
- Free Pascal에서 이진 이미지 가져오기가 다시 동작합니다:
AddImageCCITTFromFile,AddImageCCITTFromStream과 JBIG2 대응 함수들이 이제 주어진 1비트 비트맵을 읽을 수 있으며, 24비트와 32비트 BMP 입력만 디코딩되어 실패하던 이전 동작은 사라졌습니다
Version 3.536.0
추가
- Free Pascal 및 Lazarus 빌드가 직렬 루프로 폴백하는 대신 이제 병렬 배치 경로를 실행합니다:
RenderPagesToFilesParallel, 문서 최적화 뒤의 최적화 배치, 병렬 타일 렌더링이 모두 Delphi 동작에 맞춰 그곳에서 CPU 코어 전체에 분산됩니다
변경
- 병렬 페이지 렌더링이 이제 확산하기 전에 호출 스레드에서 첫 페이지를 렌더링하므로, 렌더링 엔진이 모든 워커가 동시에 초기화하는 대신 한 번만 초기화됩니다
Version 3.535.0
추가
- Free Pascal 및 Lazarus 빌드에 이제 JPEG 2000 인코더가 포함됩니다:
EncodeImageToJPXStream,EncodeImageToJPXFile,AddImageJPXFromFile,AddImageJPXFromStream,AddImageJPXFromString이 손실 및 무손실 두 모드 모두에서 Delphi와 정확히 동일하게 그곳에서 JPXDecode 이미지를 생성합니다 - Free Pascal, macOS, FireMonkey 빌드가 사용하는 비 VCL 비트맵이 이제 비압축 24비트 및 32비트 BMP 스트림을 로드하고 알파 형식을 보고합니다
수정
- Free Pascal 빌드에서 Windows 이미징 백엔드를 통한 이미지 디코딩이 더 이상 크래시하지 않습니다: 스트림이 이제 백엔드가 받아들이는 형태로 전달됩니다
- 비 VCL 빌드에서 한 비트맵을 다른 비트맵에 할당하면 대상 비트맵을 빈 채로 두는 대신 픽셀을 복사합니다. 이전에는 이미지 변환 경로에서 조용히 백지 출력을 만들어냈습니다
Version 3.534.1
수정
- 내장 TIFF 디코더는 이제 지원되지 않는 BigTIFF와 타일형 레이아웃을 명시적인 진단 정보와 함께 거부하며, 할당 전에 디코딩되는 치수와 스트립 크기에 상한을 적용합니다
Version 3.534.0
변경
CheckFileCompliance와 PDF/UA 프리플라이트는 이제 내장된 단순 폰트와 CID 폰트의 폭, 완전한 Type 1/CharSet및 CID/CIDSet선언, 마킹된 콘텐츠 외부에서 호출되는 텍스트 포함 Form XObject,.notdef로 해석되는 텍스트 피연산자를 검증합니다
Version 3.533.0
추가
TPDFlibPKCS11Client는 명시적으로 선택된 인증서 없는 ML-DSA 키를 검색하고, 매개변수 집합을 보고하며, PKCS #11 3.2CKM_ML_DSA메커니즘을 통해 원본 메시지에 서명할 수 있습니다
Version 3.532.0
변경
- 공통
/ASCII85Decode및/FlateDecode필터 체인을 사용하는 대용량 스트림은 이제 중간 표현을 실제 메모리에 생성하지 않고 메모리 사용량이 제한된 파이프라인을 통해 인코딩 및 디코딩합니다
Version 3.531.0
추가
AddWebCaptureCommand,GetWebCaptureCommandCount,GetWebCaptureCommand및ClearWebCaptureCommands는 네트워크 검색을 수행하지 않고 표준 카탈로그/SpiderInfoWeb Capture 명령 메타데이터를 생성, 열거, 제거합니다
Version 3.530.0
추가
BPLoadCurve,BPKeyGen,BPSignFixedK및BPVerify는 순수 Pascal로 RFC 5639의 세 소수체 곡선 brainpoolP256r1, brainpoolP384r1, brainpoolP512r1에 대한 ECDSA를 구현합니다. 모든 곡선 폭에서 공유되는 33-림브 radix-2^16 산술, 비트 직렬 모듈러 축소, 명시적 별칭 방지 장치를 갖춘 Jacobian 배가 및 덧셈, Fermat 역원 계산, 서명용 호출자 제공 논스가 여기에 포함됩니다. 독립적인 구현으로 생성되어 양방향으로 교차 검증된 알려진 정답 벡터가 왕복 및 변조 거부 회귀 테스트와 함께 모든 곡선에서 통과합니다
Version 3.529.0
추가
Ed448PublicKeyFromSeed,Ed448Sign및Ed448Verify는 순수 Pascal로 edwards448에서 RFC 8032 PureEdDSA를 구현합니다. 2^448 = 2^224 + 1 Solinas 폴딩을 갖춘 16-림브 radix-2^28 Goldilocks 체 산술, a = +1 곡선을 위한 강하게 통일된 곱 형식의 군 덧셈, 114바이트 SHAKE256 스칼라를 위한 군 위수 모듈로의 다이제스트 전체 모듈러 축소, 코팩터 4 검증이 여기에 포함됩니다. RFC 8032 섹션 7.4의 알려진 정답 벡터 두 개가 왕복, 변조 거부, 길이 검증 회귀 테스트와 함께 바이트 단위로 정확히 통과합니다
Version 3.528.0
추가
MLDSA65KeyGen,MLDSA65Sign및MLDSA65Verify는 1952바이트 공개 키, 4032바이트 비밀 키, 3309바이트 서명으로 FIPS 204 ML-DSA-65를 구현합니다MLDSA87KeyGen,MLDSA87Sign및MLDSA87Verify는 2592바이트 공개 키, 4896바이트 비밀 키, 4627바이트 서명으로 FIPS 204 ML-DSA-87을 구현합니다
Version 3.527.0
추가
PDFlibMLDSA는 결정론적 시드 키 생성, 헤지(hedged) 또는 결정론적 서명, 범위가 제한된 기각 샘플링, 서명 검증을 갖춘 순수 Pascal FIPS 204 ML-DSA-44 구현을 제공합니다MLDSA44KeyGen,MLDSA44Sign및MLDSA44Verify는 표준 1312바이트 공개 키, 2560바이트 비밀 키, 2420바이트 서명 크기를 사용하고, 최대 255바이트 컨텍스트를 지원하며, 공식 알려진 정답 벡터로 검증됩니다
Version 3.526.0
추가
- 스트리밍 SHAKE XOF 컨텍스트(
PLShakeXOFInit/PLShakeXOFAbsorb/PLShakeXOFFinalize/PLShakeXOFSqueeze)는 SHAKE128(레이트 168)과 SHAKE256(레이트 136) 모두에 대해 Keccak 순열에 걸쳐 임의의 바이트 수를 스트림 방식으로 추출하며, 일회성PLShakeXOF래퍼를 제공합니다. 블록 경계를 넘는 200바이트 출력은 두 변형의 참조 다이제스트로 검증됩니다
Version 3.525.0
변경
SHAKE256ByteArray와SHAKE256StreamRange는 이제 최대 136바이트 스폰지 레이트까지의 출력을 허용하며(이전에는 64바이트), Ed448 해시 길이인 114바이트 다이제스트를 한 번의 추출로 생성할 수 있습니다. 새로운 알려진 정답 테스트는 빈 메시지와abc메시지의 114바이트 출력을 다룹니다
Version 3.524.0
추가
DownsampleImagesEx는 선언된 색 공간과 컴포넌트당 비트 수를 기준으로 모든 이미지를 이색성, 그레이스케일 또는 컬러로 분류하고 한 번의 패스에서 클래스별 DPI 예산과 JPEG 품질을 적용합니다. 이색성 스캔은 무손실로 다시 인코딩되며, only-if-smaller 플래그는 다시 인코딩한 결과가 커질 경우 원본 바이트를 유지합니다
Version 3.523.0
추가
CopyForeignObject는 다른 로드된 문서에서 간접 객체 하나와 그 전체 참조 클로저를 선택된 문서로 딥 카피하며, 공유 참조가 복사본에서도 공유 상태를 유지하도록 객체 번호를 재매핑합니다
Version 3.522.0
추가
SetPagePieceInfo,GetPagePieceInfo및ClearPagePieceInfo는 애플리케이션 이름으로 키가 지정된 페이지 수준 비공개 데이터 사전(ISO 32000-2 14.5)을 관리합니다AddNamedPage와GetNamedPage는 카탈로그 /Names /Pages 이름 트리를 통해 페이지를 이름으로 등록하고 해석합니다
Version 3.521.0
추가
GetImageListItemNativeDataToString,GetImageListItemNativeFormat및SaveImageListItemNativeDataToFile는 나열된 이미지(JPEG, JPEG 2000, JBIG2, CCITT, Flate 또는 raw)의 원시 인코딩 상태 코덱 스트림을 디코딩 없이 추출하여 패스스루 워크플로를 위해 원본 바이트를 보존합니다
Version 3.520.0
추가
AnalyzeModifications는 저장된 리비전 이후의 모든 변경을 LTA 업데이트, 폼 작성 및 주석 허용 목록과 대조하여 분류하고 전체 수정 수준을 반환합니다GetModificationLevel,GetModificationFindingCount,GetModificationFindingLevel,GetModificationFindingObjNum및GetModificationFindingDetail은 가장 최근 분석에서 분류된 결과를 노출합니다
Version 3.519.0
추가
CompareWith는 선택된 문서와 저장된 리비전 사이에서 구조 비교를 수행하며, 객체 번호 이동을 무시하는 콘텐츠 지문을 통해 모든 간접 객체를 추가됨, 제거됨 또는 변경됨으로 분류합니다GetCompareFindingCount,GetCompareFindingKind,GetCompareFindingObjNum및GetCompareFindingDetail은 페이지 수 차이를 포함해 가장 최근 비교의 결과를 읽어 들입니다
Version 3.518.0
추가
SHAKE256ByteArray와SHAKE256StreamRange는 SHAKE256 확장 가능 출력 다이제스트(ISO/TS 32001, RFC 8702)를 제공하며, 바이트 범위 2분할 읽기와 1..64바이트 출력을 지원하고 NIST FIPS 202 알려진 정답 테스트로 검증됩니다
변경
- Keccak 코어는 이제 도메인 구분자 바이트를 포함하여 SHA-3와 SHAKE가 하나의 순열 구현을 공유합니다. CMS 서명 프로파일 내에서 SHAKE256은 Ed448의 내부 다이제스트로 예약된 상태를 유지하며 다이제스트 선택기에는 의도적으로 포함되지 않습니다
Version 3.517.0
추가
AddPageAssociatedFileFromFile과AddPageAssociatedFileFromString은 문서 카탈로그 대신 단일 페이지의 /AF 배열(ISO 32000-2 14.13)에 내장 파일 사양을 바인딩합니다GetPageAssociatedFileCount,GetPageAssociatedFileEmbeddedIndex및ClearPageAssociatedFiles는 저장/로드 왕복 이후에도 페이지 수준 연결 파일을 열거하고 제거합니다SetOptionalContentConfigInfo는 기본 옵셔널 콘텐츠 구성에 프레젠테이션 메타데이터(구성 이름, 작성자, 레이어 패널 목록 모드)를 기록합니다
Version 3.516.0
추가
ApplyContentFilterChain과TPDFContentFilterChain은 페이지의 모든 콘텐츠 레이어에 대해 명령 수준 콘텐츠 필터를 실행하며, 순서가 지정된 체인, 조기 중단 제어, 사용자 데이터 전달을 지원합니다ExportDocumentJSON와GetDocumentJSON은 base64 페이로드가 포함된 스트림 사전과 트레일러를 포함한 전체 문서 객체 그래프를 qPDF 스타일 JSON 구조로 직렬화합니다SetPDFDeclarations,GetPDFDeclarationsURI,GetPDFDeclarationsRole,GetPDFDeclarationsVersion,GetPDFDeclarationsCount,HasPDFDeclaration및ClearPDFDeclarations는 기계 판독 가능한 PDF Declarations 적합성 선언을 기록, 읽기, 제거합니다AuditPageTree,AuditXRefStructure,AuditObjectReachability,AuditStreamLengths,AuditFontEmbedding및AuditColorSpaces는 심각도 등급이 매겨진 결과와 함께 6개의 독립적인 구조 진단 패스를 실행합니다GetAuditFindingCount,GetAuditFindingSeverity,GetAuditFindingItem및GetAuditFindingDetail은 가장 최근 감사 호출의 결과를 읽어 들입니다
Version 3.515.0
추가
ExecuteFormFieldScriptEvent와TPDFlibFormScriptEvent는 Event, Field, Document 속성을 제어된 방식으로 다루면서 범위가 제한된 Keystroke, Format, Validate, Calculate 필드 이벤트를 실행합니다SetFormScriptLimits,GetFormScriptLimitsJSON및GetFormScriptDiagnostics는 소스, 연산, 중첩, 문자열, 속성 접근 예산을 구성하고 보고합니다
변경
- 안전한 폼 스크립트 런타임은 값 전용 호환성을 유지하면서 이제 읽기 전용 소스 및 대상 필드 메타데이터, 문서 필드 조회, 키 입력 선택 상태를 노출합니다
보안
- 스크립트 실행은 이제 버튼 값 이벤트, 객체 변형, 범위 밖 선택을 거부하고, 실행과 종속성 분석에 독립적인 리소스 제한을 적용하며, 파서 실패 위치를 범위 내에서 보고합니다
Version 3.514.0
추가
SetPDFEMode는 PDF 1.6 구문, 동기화된 Info 및 XMP 식별 정보, 수명 주기 메타데이터, 내장된 색상 관리 출력 인텐트를 갖춘 PDF/E-1 엔지니어링 문서를 생성합니다GetPDFEDiagnostics와 적합성 테스트 7은 객체, 콘텐츠, 재귀 예산이 제한된 저장 시점, 직접 파일, 공유 파이프라인 PDF/E-1 검증을 제공합니다
변경
- PDF/E-1 저장은 이제 식별 정보, 수명 주기 메타데이터, 허용되는 암호화, 출력 인텐트 일관성, XFA 제외, 안전하지 않은 액션 차단을 강제하며, 프리플라이트는 추가로 디바이스 색 공간, 콘텐츠 연산자, 폰트, 주석, 폼, 옵셔널 콘텐츠, 외부 파일 참조, 그래픽 상태, 3D 스트림 제한을 감사합니다
Version 3.513.0
추가
SetPDFVCRMode와 템플릿 및 자리 표시자 범위 API는 PDF/X-4 기반 위에 PDF/VCR-1 PassThrough 대체 템플릿을 생성합니다GetPDFVCRDiagnostics,GetPDFVCRManifest및 적합성 테스트 6은 저장 시점, 직접 파일, 공유 파이프라인 검증과 검증된 JSON 필드 및 자리 표시자 추출을 제공합니다
변경
- PDF/VCR 저장은 이제 식별 메타데이터, 단일 직접 템플릿 루트, 고유한 선언 필드, 유효한 페이지 선택, 리프 대체 자리 표시자, 전체 구조 트리에 걸친 정확한 페이지 및 MCID 바인딩을 강제합니다
Version 3.512.0
추가
SetPDFRMode와 PDF/R 래스터 페이지 API는 raw, CCITT Group 4 또는 JPEG 데이터에서 지원되는 압축 입력을 트랜스코딩하지 않고 제한된 래스터 교환 문서를 생성합니다GetPDFRDiagnostics와 적합성 테스트 5는 메모리 내, 직접 파일, 공유 파이프라인 PDF/R 검증을 제공합니다
변경
- PDF/R 저장은 이제 필수 마커, 버전 및 암호화 프로파일, 세대 0 객체, 제한된 사전과 필터, 단일 콘텐츠 스트림, 래스터 전용 연산자, 순서가 지정된 스트립 리소스, 색상 및 해상도 일관성, 전체 페이지 커버리지를 강제합니다
Version 3.511.0
추가
TPDFlibFormTextDirection,SetTextDirection,GetVisualCaretOrder및MoveVisualCaret는 혼합 방향 폼 편집을 위해 자동 또는 명시적 단락 방향과 문자소 단위 안전 물리적 캐럿 탐색을 추가합니다ResolvedTextDirection과VisualCaretPosition은 유효 단락 방향을 노출하고 양방향 경계에서 분할된 캐럿 슬롯을 구별합니다
변경
- 셰이핑된 텍스트 런은 이제 혼합된 왼쪽-오른쪽 및 오른쪽-왼쪽 콘텐츠에 임베딩 수준의 시각적 재정렬을 적용하며, 필드 값은 논리적 UTF-16 순서를 유지합니다
Version 3.510.0
추가
MinimumSlotHeight는 현재 영역이 너무 짧을 때 복제나 캡처 전에 동적 컴포넌트 구성을 지연합니다MinimumFollowingHeight는 중간 프래그먼트를 제약하지 않으면서 다음 컴포넌트를 위해 호출자가 정의한 첫 영역과 최종 프래그먼트를 유지합니다TPDFlibDynamicRetryReason,LastRetryReason및LastRequiredSlotHeight는 배치가 지연된 이유와 알려진 필요 높이를 노출합니다
변경
- 흐름 공간 재시도는 이제 격리된 시도만 폐기하고 커밋된 프래그먼트, 컴포넌트 상태, 구성 인덱스, 페이지 콘텐츠를 보존합니다
Version 3.509.0
추가
TPDFlibDynamicPaginationPolicy는 분할, 일회성 keep-together, 엄격한 완전 배치 모드를 구별되는 재시도 결과와 관찰 가능한 보류 상태와 함께 추가합니다
변경
- 지연된 동적 컴포넌트 시도는 이제 캡처된 콘텐츠와 가변 상태를 원자적으로 폐기하고, 엄격한 배치는 비례 축소는 허용하지만 부분적이거나 잘린 출력은 절대 허용하지 않습니다
Version 3.508.0
추가
TPDFlibFormSession.DispatchInputEvent는 타입이 지정된 플랫폼 독립 포인터, 휠, 이름 키, 조합 텍스트 이벤트를 받아 포커스, 호버, 누름, 선택, 값 변경 상태를 반환합니다
변경
- 폼 입력 디스패치는 이제 순서가 지정된 Widget
/E,/X,/D,/U포인터 전환, 캡처 취소, 문자소 단위 안전 편집, 줄 인식 캐럿 이동, 표준 선택 및 기록 단축키, 버튼 활성화, 선택 휠 탐색을 강제합니다
수정
- 백스페이스와 Delete 기록 복원은 이제 원자적 교체를 위해 내부적으로 사용되는 임시 문자소 선택 대신 사용자에게 보이는 키 입력 전 캐럿을 복원합니다
Version 3.507.0
추가
TPDFlibFormSession은 이제 가용성 조회, 유지 단계 수, 구성 가능한 용량, 명시적 기록 지우기와 함께 범위가 제한된 필드 수준 실행 취소 및 다시 실행을 제공합니다
변경
- 폼 편집 기록은 컴팩트 텍스트 델타를 저장하고, 액션이나 콜백을 다시 디스패치하지 않고 값과 방향성 선택을 복원하며, 새 편집 후 다시 실행 분기를 폐기하고 편집 수명 주기 경계에서 기록을 지웁니다
Version 3.506.0
추가
TPDFlibFormSession은 이제 거부 가능한 선택 교체, 잘라내기, 호출자 제공 붙여넣기 작업과 가변 호스트 텍스트 편집 콜백, 문자소 단위 안전/MaxLen강제를 제공합니다
변경
- 폼 세션 커밋은 이제 필드를 변경하기 전에 사용 가능한 검증 및 서식 지정 액션을 실행하고, 거부된 편집을 원자적으로 유지하며, 검증된 원시 값을 서식이 지정된 Widget 모양과 분리해 유지합니다
Version 3.505.0
추가
- UTF-16 코드 단위, 유니코드 코드 포인트, 확장 문자소 클러스터 단위의 방향성 폼 필드 텍스트 선택 범위가 앵커 및 캐럿 보고, 캐시된 경계 변환과 함께 추가되었습니다
Version 3.504.0
추가
- 거부, 클리핑, 비례 축소 정책과 독립적인 정렬, 최종 페이지, 지오메트리, 변환 보고를 갖춘 오버플로 인식 동적 컴포넌트 배치가 추가되었습니다
Version 3.503.0
추가
TPDFlibDynamicComponentSession은 페이지 컨텍스트, 사용 크기 보고, 완료 상태, 재설정 및 커밋된 상태 스냅샷과 함께 한 번에 하나의 상태 유지 페이지 프래그먼트를 지연 구성합니다ReleaseCapturedPage는 페이지 리소스 참조와 기존 호출을 보존하면서 최종 배치 후 Form XObject 캡처 핸들을 무효화합니다
변경
- 동적 컴포넌트 시도는 이제 격리된 Form XObject 내부에서 복제된 상태로 그리며 검증된 배치 후에만 커밋합니다. 거부된 콜백, 잘못된 지오메트리, 예외는 선택된 페이지를 복원하고 대상 콘텐츠와 컴포넌트 상태를 변경하지 않은 채 유지합니다
Version 3.502.0
추가
TPDFlibFormSession은 이제 회전된 시각적 CropBox Widget 사각형, 최상위 히트 테스트, 포인트 기반 포커스, 앞뒤 키보드 포커스 탐색을 제공합니다
변경
- 탭 시퀀스는 ViewerPreferences 방향, 안정적인 페이지 간 순서, 범위가 제한된 구조 트리 탐색과 함께 페이지
/Tabs행, 열, 구조, 주석 배열 및 PDF 2.0 Widget 순서를 적용합니다 SetTabOrderMode는 이제 5가지 표준 모드를 모두 검증하고A와W에 대해 PDF 2.0을 자동으로 선택합니다
Version 3.501.0
추가
ApplyRepeatedPageFragment는 캡처된 Form XObject 하나를 타입이 지정된 Pagination, Layout, Page 또는 PDF 2.0 Background 아티팩트로 페이지 범위에 걸쳐 배치하면서 모든 배치 간에 콘텐츠 스트림과 리소스를 공유합니다
수정
- 아티팩트 속성 사전은 이제 공개 및 테이블 레이아웃 경로에서 필수
BDC마킹 콘텐츠 연산자를 사용하고, PDF 2.0 아티팩트 유형과 하위 유형은 필요한 출력 기능 버전을 선택합니다
Version 3.500.0
추가
SetTextFlowPaginationLines는 텍스트 상자 하단에 유지되는 최소 고아 줄 수와 다음 상자나 단을 위해 보존되는 과부 줄 수를 독립적으로 제어합니다
변경
- 텍스트 흐름 페이지 나누기는 이제 범위가 제한된 미리 보기로 필요한 꼬리 줄만 앞으로 이동하며, 분할이 불가능하면 흐름을 변경하지 않은 채 더 큰 영역의 배치를 위해 그대로 둡니다
Version 3.499.0
추가
TPDFlibFormSession은 Widget 포커스 및 블러 액션을 위한 타입이 지정된 호스트 콜백과 함께 플랫폼 독립적인 AcroForm 포커스, 텍스트 및 선택 편집, 0 기반 UTF-16 선택, 커밋 및 취소 상태를 제공합니다
변경
- 커밋된 세션 값은 이제 텍스트 제한을 강제하고 값 변경을 보고하기 전에 영향을 받는 변경된 모양과 계산 클로저만 재생성합니다
Version 3.498.0
추가
GetDirtyFormAppearanceCount와RegenerateDirtyFormAppearances는 변경된 AcroForm Widget 객체 참조를 추적하고 중복이 제거된 현재 세션 계산 클로저만 재생성합니다
변경
RegenerateFormAppearances는 이제 계층적 필드를 루트에서 한 번만 순회하고, 성공한 Widget 재생성의 실제 수를 보고하며, 재시도를 위해 실패한 모양을 유지합니다UpdateAppearanceStream는 이제 생성 실패를 정확히 보고하고NeedAppearances를 활성화한 채 실패한 Widget을 보류 상태로 유지합니다
Version 3.497.0
추가
SetOutputIntentMixingHints는 PDF 2.0 잉크 농도와 물리적 인쇄 순서를 기록하면서 잘못된 값, 중복 이름, 누락된 순서, 스펙트럼 데이터로 이미 표현된 색재를 거부합니다SetOutputIntentSpectralData는 범위가 제한된 CxF/X-4 스폿 색 특성화 스트림을 내장하고, 반복 및 교차 색재 할당에서 동일한 데이터를 재사용하며, 정확히 하나의 일치하는SpotInkCharacterisation을 요구합니다.ClearOutputIntentColorantData는 두 색재 메타데이터 사전을 모두 제거합니다
변경
GetEffectivePageOutputIntentJSON은 이제 작성된 문서와 다시 로드된 문서 모두에 대해 혼합 농도, 인쇄 순서, 스펙트럼 색재, 디코딩된 스펙트럼 유효성을 보고합니다- PDF/X 프리플라이트는 이제 금지된
DotGain, 농도 범위, 인쇄 순서 유형, 색재 충돌, 스트림 디코딩, 고유한 CxF 스폿 잉크 일치를 포함하여 OutputIntentMixingHints와SpectralData를 감사합니다
Version 3.496.0
추가
DAOpenFileWithEncryptionKey와DAOpenFromStreamWithEncryptionKey는 암호 유도 없이 승인된 16진수 파일 암호화 키로 암호화된 문서를 열며, 일치하는 DLL 파일 내보내기와 명시적인 검증 상태를 제공합니다
보안
- 원시 키 파일 입력은 항상 소스 읽기 전용이며, 정확한 리비전별 키 길이와 사용 가능한
/U또는/Perms검증자를 강제하고, 검증자 누락 복구가 활성화된 경우에도 불일치를 거부하며, 핸들이 닫힐 때 유지된 키 자료를 지웁니다
Version 3.495.0
추가
SetXRefLoadPolicy와GetXRefLoadPolicy는 선택된 문서와 Direct Access 입력에 대해 엄격, 호환 또는 복구 로딩을 선택하고 보고합니다
변경
- 엄격 로딩은 이제 정확한 헤더, 최종 마커, 선언된 오프셋, 고정 폭 테이블 항목, 교차 참조 스트림 메타데이터, 연결된 모든
/Prev또는/XRefStm섹션을 요구합니다 - 호환 로딩은 원시 재구성에 들어가지 않고 제어된 오프셋 및 구조 복구를 유지하며, 복구 로딩은 최상위 객체와 압축 객체를 재구축하고 누락된 트레일러를 합성할 수 있습니다
- 교차 참조 진단은 이제 선택된 정책, 순서가 지정된 파서 결정, 섹션별 호환성 플래그를 보고합니다. 여기에는 거부된 하이브리드 사이드 체인과 Direct Access 복구 증거가 포함됩니다
Version 3.494.0
변경
- 명시적 시드 없이 수행되는 완전한 비암호화 결정론적 저장은 이제 직렬화된 문서 헤더와 본문에 대한 스트리밍 SHA-256 다이제스트의 처음 16바이트에서 초기 트레일러
/ID항목 두 개를 모두 도출합니다 - 콘텐츠 다이제스트는 이전 트레일러 식별자, 교차 참조 데이터, 오프셋 의존 트레일러를 제외하는 동시에 생성된 리소스 식별자와 XMP 인스턴스 UUID를 정규화하여 페이지, 리소스, 첨부 파일, 메타데이터 변경이 결과를 결정하도록 합니다
- 내부 리소스 이름과 내장 폰트 서브셋 태그는 결정론적 모드가 활성화된 동안 안정적으로 유지됩니다. 여기에는 사전을 압축 객체 스트림에 패킹하는 출력이 포함됩니다. 기본 저장은 무작위화된 식별자를 유지합니다
Version 3.493.0
추가
LoadFromMappedFile과DAOpenMappedFile은 범위가 제한된 읽기 전용 매핑 뷰를 통해 로컬 PDF를 열며, 매핑을 요구하거나 이식 가능한 파일 스트림 폴백을 허용하는 옵션을 제공합니다GetMappedFileInfo와DAGetMappedFileInfo는 활성 매핑 상태, 파일 및 창 크기, 현재 뷰, 읽기 볼륨, 재매핑 활동을 보고합니다
변경
- 매핑된 소스는 하나의 할당 정렬 창을 유지하고 대용량 지연 객체 또는 스트림 읽기에서 이를 재매핑하여 주소 공간 사용을 파일 크기와 무관하게 제한합니다
- 로컬 매핑 소스와 콜백 기반 소스는 이제 커서와 무관한 절대 객체 슬라이스 읽기를 공유하며, 기존 파일 로딩 API는 이전 동작을 유지합니다
Version 3.492.0
추가
GetPageThumbnailDataToStream과GetPageThumbnailDataToString은 인코딩된 또는 필터로 디코딩된 페이지 썸네일 페이로드를 노출하고,DeletePageThumbnail은 선택된 페이지를 변경하지 않고 페이지 메타데이터를 제거합니다
변경
- 썸네일 존재 및 메타데이터 조회는 이제 이미지 스트림을 요구합니다. 잘못된 비스트림 항목은 사용 가능한 썸네일로 보고되는 대신 제거할 수 있는 상태로 유지됩니다
- 원시 출력은 제한된 청크 단위로 복사되고 디코딩된 출력은 스트리밍 필터 파이프라인을 재사용하여, 네이티브 페이로드가 필요한 호출자를 위해 DCT, JPX 같은 최종 이미지 인코딩을 보존합니다
Version 3.491.0
추가
InsertPageElementClipPath,ReplacePageElementClipPath및DeletePageElementClipPath는 정확한 페이지 요소에 로컬 클리핑을 추가하거나 캡처된 소스 컴포넌트를 non-zero 및 even-odd 채움 규칙으로 편집합니다
변경
- 클리핑 컴포넌트는 이제 소스 레이어, 명령 범위, 중첩 깊이, 정규화된 지문을 유지하여 편집 가능한 소스를 초기 경계, 텍스트 외곽선, 중첩 Form, 잘못된 경로, 교차 레이어 경로 객체와 구별합니다
- 로컬 클리핑은 유효한 텍스트 객체 재구성을 포함하여 균형 잡힌 그래픽 상태 스코프를 사용하며, 채우기와 스트로크를 동시에 수행하는 경로에서 클리핑을 삭제하면 원본 스트로크 또는 채우기가 보존됩니다
Version 3.490.0
추가
SetPageElementMarkedContentTextProperty,SetPageElementMarkedContentPropertySource및DeletePageElementMarkedContentProperty는 정확히 열거된 마킹 콘텐츠 프레임에서 유니코드 텍스트, 직렬화된 PDF 객체, 기존 속성을 편집합니다
변경
- 이름 있는 속성 리소스는 페이지 로컬 쓰기 시 복사 방식으로 편집되고, 인라인 속성 목록은 간접 값이 리소스를 필요로 할 때 자동으로 승격되며, 마지막 속성을 삭제하면
BDC가BMC로 압축됩니다 - 마킹 콘텐츠 편집은 쓰기 전에 캡처된 소스 명령과 해석된 속성 스냅샷을 검증한 후, 성공적인 변경 시 모든 페이지 요소 핸들을 무효화합니다
Version 3.489.0
추가
GetTextBlockCharContentLocation과DAGetTextBlockCharContentLocation은 추출된 각 UTF-16 위치를 콘텐츠 레이어, 스트림, 명령, 피연산자,TJ배열 요소, 인코딩된 소스 바이트 범위에 매핑합니다ReplaceTextBlockCharSourceBytes는 인접 문자열과 커닝 값을 보존하면서 지문으로 보호되는 매핑된 폰트 인코딩 바이트의 로컬 교체를 수행합니다
변경
- 생성된 위치,
/ActualText, 중첩 Form, 트랜스코딩된 위치, 교차 레이어 위치는 읽기 전용으로 명시적으로 분류되며, 합자 확장은 공유 소스 글리프 범위를 유지합니다 - 콘텐츠 범위 조회는 이진 탐색을 사용하고 추출된 목록은 두 개의 독립 레이어 지문을 유지하여 페이지 콘텐츠를 파싱하거나 재작성하기 전에 오래된 편집을 거부합니다
Version 3.488.0
추가
ImportPageAsFormXObject는 어느 쪽 페이지 트리도 변경하지 않고 열려 있는 문서에서 페이지를 재사용 가능한 캡처 페이지 핸들로 가져옵니다
변경
- 페이지를 Form으로 가져오기는 디코딩된 페이지 콘텐츠, 독립적인 상속 리소스 클로저, Form 호환 group, metadata, piece-information 항목만 복사하며 주석, 썸네일, 페이지 전용 구조는 제외합니다
- 선택된 페이지 박스는 표준 폴백 규칙을 사용하고, 상속된 사분면 회전은 Form 행렬로 정규화되며, 반복 배치는 하나의 압축 콘텐츠 스트림을 공유합니다
Version 3.487.0
추가
- 페이지 요소 핸들은 이제 활성 외부-내부 마킹 콘텐츠 스택, 태그, 검증된
/MCID값, 원본 속성 피연산자, 직접 또는 리소스 기반 사전에서 해석된 모든 항목을 노출합니다
변경
- 콘텐츠 상태 추적은 리소스 범위별로 이름 있는
/Properties리소스를 한 번만 해석하고, 반복 조회를 위해 페이지 콘텐츠를 다시 파싱하지 않고 불변 마킹 콘텐츠 프레임을 유지합니다 - 마킹 콘텐츠 중첩은
q/Q와 독립적으로 추적되며 각 페이지 또는 Form 콘텐츠 스트림으로 범위가 제한되어 잘못된 미종료 시퀀스가 다른 스트림으로 새어 들어갈 수 없습니다
Version 3.486.0
추가
- 페이지 요소 핸들은 이제 변환된 move, line, cubic, close 명령, non-zero 또는 even-odd 채움 규칙, 컴포넌트 경계, 결합 영역 진단을 포함하여 유효 클리핑 교집합의 모든 컴포넌트를 노출합니다
변경
- 콘텐츠 상태 추적은 페이지 경계,
q/Q복원, Form 경계를 넘어 불변 클리핑 체인을 유지하면서 스냅샷 간에 변경되지 않은 컴포넌트를 공유합니다 - 페이지 요소 열거는 동일한 콘텐츠 패스에서 경로 변경 대상과 그래픽 상태를 수집하여 이전의 추가 경로 레이어 파싱을 피합니다
Version 3.485.0
추가
GetTextBlockCharUnicodeFlags와DAGetTextBlockCharUnicodeFlags는 문자별 유니코드 매핑, 폴백, 누락된 매핑, 매핑되지 않은 코드, 잘못된 매핑, 치환 진단을 노출합니다
변경
- 텍스트 추출은 모든 UTF-16 코드 단위 옆에 유니코드 매핑 출처를 유지하고
ToUnicode출력을 수용하기 전에 서러게이트 쌍을 검증합니다 - 잘못되거나 부분적인 매핑은 이제 독립적인 폰트 인코딩 폴백을 사용하고 의미 있는 폴백이 없을 때 U+FFFD를 내보냅니다
수정
- Identity 유니코드 매핑은 이제 소스 코드 값을 출력 개수로 취급하는 대신 매핑된 코드 단위 하나를 반환합니다
Version 3.484.0
추가
- 선택된 문서 및 Direct Access 텍스트 블록은 이제 문자별 베이스라인 각도, 원점, 셀 행렬, 디센트 보정 쿼드, 축 정렬 박스를 노출합니다
GetTextBlockCharBox는 기존 Direct Access 박스 조회에 대응하는 선택된 문서 버전을 추가합니다
변경
- 텍스트 추출은 문자당 한 번 베이스라인, 전진량, 셀 높이 벡터를 유지하여 지오메트리 조회가 회전, 전단, 반전된 베이스라인을 상수 시간에 보존합니다
DAGetTextBlockCharBox는 이제 앞선 모든 폭을 순회하는 대신 유지된 문자 지오메트리에서 직접 결과를 도출합니다
수정
- 선택된 문서 문자 폭과 텍스트 블록 덤프는 이제 구성된 좌표 배율을 정확히 한 번 적용합니다
Version 3.483.0
추가
GetTextBlockCharSourceFlags와DAGetTextBlockCharSourceFlags는 생성된 문자, 하이픈, 적용된/ActualText치환에 대한 비트별 출처를 노출합니다
변경
- 텍스트 블록 추출은 이제 큰 문자 간격에서 추론된 공백을 포함하여 기존 텍스트 및 전진량 배열 옆에 문자 소스 플래그를 유지하며, 반복 조회를 위해 페이지 콘텐츠를 다시 파싱하지 않습니다
Version 3.482.0
추가
GetXRefDiagnostics와DAGetXRefDiagnostics는 유효 교차 참조 유형, 바이트 위치, 트레일러 경계, 항목 수, 리비전 체인의 모든 테이블 또는 스트림에 대한 JSON 보고서를 반환합니다
변경
- 하이브리드 참조 링크, 이동된 헤더 재시도, 편집 가능 문서 복구 결정은 이제 원시 객체 스캔, 압축 객체 복구, 합성된 트레일러를 포함하여 구별되는 진단 증거로 표시됩니다
Version 3.481.0
추가
- 콜백 기반 및 Direct Access 바이트 범위 문서는 4가지 스케줄링 우선순위, 취소, 대기, JSON 진행 진단과 함께 백그라운드 페이지, 폼 또는 객체 종속성 프리페치 작업을 큐에 넣을 수 있습니다
- 종속성 프리페치는 구성 가능한 소스 바이트, 미리 읽기, 계획 패스 한도와 함께 대상이 준비될 때까지 누락 범위 탐색을 반복합니다
변경
- 각 바이트 범위 스트림은 이제 격리된 파서 상태를 사용하면서 범위가 제한된 범위 캐시를 공유하는 우선순위 정렬 FIFO 워커를 소유하여, 포그라운드 문서 작업이 가변 판독기를 공유하지 않고 계속될 수 있도록 합니다
- 큐에 넣은 취소는 소스 읽기를 수행하지 않고, 실행 중인 취소는 모든 청크 전에 확인되며, 스트림 파괴는 소스를 해제하기 전에 미처리 작업을 배출합니다
Version 3.480.0
추가
LoadFromRangeSource는 점진적 저장소를 위한 선택적 비페치 가용성 콜백을 받아들이며, 페이지, 폼, 간접 객체 준비 상태에 대한 선택된 문서 및 Direct Access 조회를 제공합니다- 가용성 보고는 병합된 필수 및 누락 바이트 범위, 종속성 완전성, 객체 순회 카운터를 JSON으로 반환합니다
변경
- 바이트 범위 스트림은 바이트를 읽거나 스트림 커서를 이동하거나 캐시 통계를 변경하지 않고 캐시된 커버리지와 소스 사용 가능 커버리지를 테스트할 수 있습니다
- 페이지 가용성은 대상 페이지 트리 경로와 도달 가능한 처리 종속성만 따르며, 사용 불가능한 범위는 읽기 콜백을 호출하지 않고 보고됩니다
Version 3.479.0
추가
TByteRangeStream.ReadAt는 동일 청크 single-flight 공유, 범위가 제한된 인접 요청 병합, 구성 가능한 수집 창을 갖춘 커서 독립 절대 읽기를 제공합니다- 범위 캐시 진단은 이제 보류 중인 요청, 활성 수집 창, 병합으로 처리된 요청, 여러 청크를 커버한 물리적 읽기를 보고합니다
변경
- 콜백 기반 및 URL 기반 문서의 지연 읽기는 이제 절대 오프셋을 사용하고, 소스 콜백을 직렬화하며, 동시 인접 청크를 16 MiB로 상한이 설정된 소스 읽기로 결합합니다
- 진행 중인 페치 동안 범위 캐시를 지우면 이제 해당 오래된 완료 결과가 캐시나 지우기 후 카운터를 다시 채우지 못하며, 기존 대기자는 여전히 자신의 바이트를 받습니다
Version 3.478.0
추가
- 바이트 범위 스트림은 이제 명시적인 최근 사용 우선 바이트 예산 하에서 정렬된 청크를 유지하고 창 수, 유지 바이트, 적중, 미적중, 축출, 소스 읽기, 소스 바이트, 반복 읽기를 보고합니다
LoadFromRangeSource와 DelphiDAOpenFromURL은 초기 캐시 예산을 받아들이며, 활성 캐시를 검사, 크기 조정, 지우기 위한 새로운 선택된 문서 및 Direct Access API가 제공됩니다
변경
- 선형화된 첫 페이지 워밍은 이제 구성된 유지 바이트 예산 내에 머뭅니다
Version 3.477.0
추가
LoadFromRangeSource는 호출자 제공 임의 바이트 범위 콜백을 통해 완전한 편집 가능 문서를 로드하여, 파서가 로딩과 지연 작업에 필요한 범위만 가져오는 동안 HTTP, 데이터베이스, 객체 저장소, 사용자 지정 입력이 원격에 머무를 수 있도록 합니다- 새로운
TPDFlibRangeReadEvent계약은 절대 오프셋, 대상 버퍼, 범위가 제한된 개수를 수신하며, 콜백 공급자는 로드된 문서 수명 동안 호출자 소유로 유지됩니다
Version 3.476.0
추가
- PDF/X-6, PDF/X-6p, PDF/X-6n 기반 위에 동기화된 식별 메타데이터, 필수 문서 파트 커버리지, 전용 프리플라이트를 갖춘 PDF/VT-3 작성이 추가되었습니다
변경
- 문서 파트 계층은 이제 표준 8192 항목 자식 블록을 함께 내보내고 검증하며 더 엄격한 XML 이름 및 유형 제약 조건을 적용합니다
Version 3.475.0
변경
TPDFlibContentGraphicsState.BlackPointCompensation은 이제 페이지 콘텐츠, 그래픽 상태 복원, 재귀적으로 열거된 Form XObject에 걸쳐 유효Default,ON또는OFF상태를 보고합니다- PDF/X-6 프리플라이트는 이제 유형 또는 값이 PDF 2.0 블랙 포인트 보정 모델을 벗어나는
UseBlackPtComp항목을 거부합니다
Version 3.474.0
변경
- PDF/X-6 프리플라이트는 이제 인쇄 가능 주석 플래그, 결정론적 일반 모양, 버튼 모양 상태, AcroForm 및 서명 필드, 뷰어 생성 모양 제외, 안전한 액션 배치 및 체인을 검증합니다
- PDF/X-6 작성은 직접 활성화되는 Link 주석에서만 JavaScript를 허용하고, 이름 있는 액션을 페이지 탐색으로 제한하며, 안전하지 않은 문서 수준, 페이지 수준, 폼 필드 액션 경로를 문서 변경 전에 거부합니다
Version 3.473.0
추가
SetPDFXMode는 이제 PDF/X-6p 프로세스 색 교환을 위한 모드 5와 PDF/X-6n n-색재 교환을 위한 모드 6을 받아들이며, 둘 다 PDF 2.0과 외부 출력 프로파일 참조를 사용합니다- 새로운
SetOutputIntentProfileReference와AddOutputIntentProfileReferenceURLAPI는 문서 수준 또는 페이지 수준/DestOutputProfileRef사전을 생성하고, ICC 체크섬, 버전, 색 공간 시그니처를 도출하며, 출력 디바이스 및 색재 메타데이터를 검증하고, 프로파일 바이트를 내장하지 않으면서 하나 이상의 RFC 3986 검색 위치를 보존합니다
변경
- PDF/X 프리플라이트는 PDF/X-6p 및 PDF/X-6n XMP 식별자를 인식하고 외부 프로파일 유형, 메타데이터 길이, 프로세스 색 또는 n-색재 시그니처, 색재 테이블, URL 파일 사양을 검증합니다
GetEffectivePageOutputIntentJSON은 이제 작성 또는 왕복 로딩 후profileCS,profileName,iccVersion,checkSum,profileURLs,colorants를 포함한 참조 프로파일 메타데이터를 보고합니다
Version 3.472.0
추가
- 새로운
SetPageOutputIntent,ClearPageOutputIntents및GetEffectivePageOutputIntentJSONAPI는 유효 문서 수준 폴백을 포함하여 PDF 2.0 페이지 수준 출력 인텐트를 생성, 제거, 검사합니다
변경
- PDF/X-6 프리플라이트는 이제 페이지 수준 출력 인텐트를 수용하고 문서 인텐트보다 우선권을 부여하며, 모든 페이지가 내장된 Gray, RGB 또는 CMYK 프로파일로 해석되는지 확인합니다
Version 3.471.0
추가
SetPDFXMode(4)는 PDF 2.0 구문, PDF/X-6 XMP 식별, 내장된 색상 관리 출력 인텐트로 PDF/X-6 완전 교환 문서를 작성합니다
변경
- PDF/X 프리플라이트는 PDF/X-6을 인식하고 PDF 2.0 구문을 요구하며 출력 인텐트가 내장된 Gray, RGB 또는 CMYK ICC 프로파일 선언을 포함하는지 확인합니다
Version 3.470.0
추가
- HTML 레이아웃이 Flexbox 방향, 줄바꿈, 확장, 축소, 기본 크기, 간격, 주축 정렬 및 교차축 정렬을 지원합니다
- HTML 레이아웃이 명시적 CSS Grid 트랙, 분수 크기 지정, 반복 트랙, span, 행 또는 열 자동 배치, 간격 및 항목 정렬을 지원합니다
- HTML 스토리가 번호가 매겨진 각주를 지원하며, 각주는 프레임 하단을 확보하고 본문 텍스트를 재배치하며 페이지가 이어져도 번호 매김을 유지합니다
변경
- HTML 측정과 캐시된 재생에 Flexbox, Grid 및 각주 지오메트리가 포함되며 컨테이너와 트랙의 상한은 그대로 유지됩니다
수정
- PDF 사전 일괄 지우기와 키 이름 바꾸기가 캐시된 키 인덱스를 무효화하여 메모리 압축과 반복된 문서 처리 중에 오래된 항목 조회가 일어나지 않도록 합니다
Version 3.469.1
수정
- EMF 가져오기와 Canvas DC 변환이 임베드된 TrueType 폰트와 임베드되지 않은 TrueType 폰트 모두의 유니코드 텍스트와 글리프 매핑을 보존합니다
NewPageFromCanvasDC가 요청한 모든 페이지를 추가하고TPDFlibPrinter는 각 캔버스를 정확히 한 번만 커밋하여 페이지가 손실되거나 중복되지 않습니다
Version 3.469.0
추가
SetImageSoftMaskEx가 회색조 이미지 소프트 마스크를 선택적 매트 색상과 함께 첨부합니다NewSoftMaskGraphicsState가 캡처된 Form XObject로부터 재사용 가능한 알파, 휘도, 전달 함수 및 리셋 그래픽 상태를 만듭니다FlattenTransparency가 선택한 페이지를 지정한 해상도와 배경색의 불투명 정적 콘텐츠로 대체하여 이전 PDF 버전과 아카이브 워크플로에 대응합니다
변경
- 투명도 플래트닝이 한 번에 한 페이지씩 처리하고 시각적 회전을 정규화하며 대화형 주석을 선택적으로 보존하고 진행률 표시와 취소를 지원하며 기본적으로 접근할 수 없는 투명도 리소스를 제거합니다
Version 3.468.0
추가
- AVIF, HEIF, HEIC 및 JPEG XL 이미지 입력을 기존 이미지 API나 전용
AddModernImageFromFile,AddModernImageFromStream,AddModernImageFromString메서드로 가져올 수 있습니다 SetModernImageCodecLibrary,ModernImageCodecAvailable및 디코더 콜백이 임시 변환 파일 없이 배포 가능한 프로세스 내 코덱 선택을 제공합니다
변경
- 최신 이미지 디코딩이 원본 방향, 알파, ICC 프로파일과 최대 16비트 채널 깊이를 보존한 상태로 네이티브 PNG 이미지 파이프라인을 재사용합니다
수정
- 서명 시드 키 사용 검증이 Win64에서 올바른 포인터 정렬로 네이티브 인증서 컨텍스트를 읽습니다
Version 3.467.0
추가
DeduplicateSimilarImages가 지각적으로 유사한 이미지 XObject를 하나로 통합하며, 설정 가능한 차이 해시, 평균 채널 오차 및 최대 채널 오차 임계값과 드라이런 지원, 선택적 고아 객체 수집을 제공합니다GetSimilarImageDeduplicationReportJSON과TPDFlibImageSimilarityDedupStats가 디코딩 커버리지, 인덱싱된 후보 작업량, 수용된 오차, 리디렉션된 참조 및 예상 인코딩 페이로드 절감량을 보고합니다
변경
- 근사 이미지 매칭은 의미상 동일한 이미지 사전을 요구하고 디코딩된 64 × 64 색상 샘플을 확인하며, 8밴드 해시 인덱스를 사용해 전수 쌍별 비교를 피합니다
Version 3.466.0
추가
EncodeImageToJPXStream과EncodeImageToJPXFile이 비트맵 입력을 표준 JP2 컨테이너의 설정 가능한 손실 또는 가역 무손실 JPEG 2000으로 인코딩합니다AddImageJPXFromFile,AddImageJPXFromStream,AddImageJPXFromString이 인코딩된 비트맵 입력을JPXDecode이미지 XObject로 직접 추가합니다
변경
- JPEG 2000 이미지 작성이 품질과 무손실 옵션을 검증하고 호출자 소유의 입력 스트림 위치를 복원하며 실패 시 부분 출력을 제거하고 PDF 1.5를 자동으로 요구하며 기존 PDF/A-1 호환성 검사를 유지합니다
Version 3.465.0
추가
RenderPageTileToStream과RenderPageTileToFile이 클리핑된 겹침과 흰색, 투명 키 또는 사용자 지정 배경을 적용해 임의의 장치 픽셀 영역을 렌더링합니다RenderPageTilesToFiles,RenderPageTiledToStream,RenderPageTiledToFile이 병렬 타일 그리드를 만들거나 정확한 코어 경계를 이어 붙여 이음선 없는 페이지 이미지를 만듭니다SetRenderSurfaceCacheLimit,GetRenderSurfaceCacheInfo,ClearRenderSurfaceCache가 완전히 합성된 타일 서피스를 위해 항목 수와 바이트 예산이 독립적인 옵트인 방식의 스레드 안전 LRU 캐시를 제공합니다
변경
- 병렬 단일 페이지 렌더링이 워커 확산 전에 하나의 공유 디스플레이 목록을 미리 준비하여 콘텐츠 스트림이 한 번만 파싱되도록 하고, 지원하지 않는 컴파일러에서는 결정론적인 직렬 경로를 유지합니다
Version 3.464.0
추가
GetXFARenderedPageCount와RenderXFAPageToStream,RenderXFAPageToString,RenderXFAPageToFile계열이 원본 문서를 변경하지 않고 XFA 템플릿, 바인딩된 데이터셋 및 명시적 페이지 나누기로부터 정적 래스터 페이지를 만듭니다ConvertXFAToAcroForm이 지원되는 텍스트, 암호, 선택, 체크박스, 누름 버튼 및 서명 컨트롤을 편집 가능한 필드로 변환하면서 이름, 값, 옵션, 플래그, 페이지 및 범위를 보존합니다
변경
- 대용량 일회성 Flate 압축이 네이티브 백엔드에 보호된 입력 꼬리를 전달하여 고해상도 PNG 출력에서 잘못된 Adler 체크섬이 발생하지 않도록 하고 압축 출력은 그대로 유지합니다
Version 3.463.0
추가
RenderPageLayerToStream,RenderPageLayerToString,RenderPageLayerToFile이 기본 페이지 콘텐츠, 주석, 양식 필드 또는 모든 대화형 객체를 독립적으로 합성 가능한 PNG 레이어로 내보냅니다FlattenFormFieldTagged와FlattenFormFieldsTaggedOnPageRange가 필드 외양을 정적 페이지 콘텐츠로 굳히면서 접근 가능한Form구조 의미를 유지하거나 새로 만듭니다
변경
- 대화형 전용 렌더링이 기본 콘텐츠 인터프리터를 건너뛰고 주석 외양을 한 번만 처리하며 지속적인 렌더러 설정을 바꾸지 않고 투명 배경을 기록합니다
- 태그 플래트닝이 Widget 전용 ParentTree
OBJR연결을 페이지MCR마크 콘텐츠로 변환하고 기존 대체 텍스트와 실제 텍스트를 보존하며, 안전한 연결을 증명할 수 없을 때는 필드를 그대로 둡니다
Version 3.462.0
추가
HitTestAnnotation과GetAnnotationHitsJSON이 하위 유형을 고려한 지오메트리, 허용 오차, 가시성 및 경계 상자 옵션을 사용해 페이지의 한 지점에서 가장 위에 있는 주석 또는 모든 주석을 찾습니다MoveAnnotationZOrder가 기존 주석 참조의 순서를 제자리에서 바꾸고,SimplifyInkAnnotations이 기하학적 편차를 제한하면서 Ink 스트로크 점을 줄이고 상세한 통계를 제공합니다
변경
- 주석 상호작용이 빠른 사각형 제외 검사를 거친 뒤 마크업 사변형, 벡터 경로, 타원 지오메트리 및 채워진 영역을 검사하며, 변경된 Ink 외양은 명시적으로 연기하지 않는 한 자동으로 다시 만들어집니다
Version 3.461.0
추가
RepairAnnotationAppearances가 모든 페이지에서 누락되었거나 오래되었거나 잘못되었거나 상태가 일치하지 않거나 보이지 않는 일반 외양을 다시 만들고 문제 수와 주석 범주 통계를 반환합니다GetAnnotationAppearanceAuditJSON이 문서를 변경하지 않고 주석별 외양 문제와 집계 개수를 보고합니다
변경
- 마크업, 도형, 경로, 자유 텍스트 및 아이콘 외향 생성이 단일 패스 문서 스캐너, 증분 출력 빌더 및 간결한 원본 지문을 공유하여 결정론적인 오류 감지를 수행합니다
Version 3.460.0
추가
ExecuteFormFieldScript가 파일, 네트워크, 프로세스, UI 또는 동적 코드 기능을 노출하지 않고 제한된 로컬 하위 집합의 양식 검증, 계산 및 서식 지정 액션만 실행합니다RecalculateFormFields가 전체 또는 종속성 범위의 증분 계산을 수행하고,GetFormCalculationGraphJSON이 필드 종속성, 계산 순서 위치 및 순환을 보고합니다
변경
- 양식 재계산이 전용 값 스냅샷으로 평가를 수행하고 준비된 필드를 AcroForm 계산 순서대로 배치하며, 변경 전에 종속성 순환을 거부하고 선택한 그래프가 완료된 뒤에만 값을 커밋합니다
Version 3.459.0
추가
MergeDocumentEx가 병합 거부, 동기화된 값을 가진 공유 이름 유지, 결정론적 숫자 접미사 할당 중에서 선택할 수 있는 명시적인 중복 양식 필드 정책을 추가합니다
변경
- 중복 필드 거부가 객체 번호, 페이지 트리 또는 양식 배열이 변경되기 전에 검사되므로 거부된 병합 뒤에도 대상과 원본 문서를 계속 사용할 수 있습니다
Version 3.458.0
추가
DrawOpenTypeText,GetOpenTypeTextWidth,GetOpenTypeGlyphRun이 설치된 폰트 이름 없이 기존 TrueType 또는 OpenType 폰트 핸들에서 직접 텍스트를 셰이핑, 측정, 그리기 및 조사합니다- 32비트와 64비트 Windows용 이식 가능한 네이티브 OpenType 셰이핑 및 서브셋 모듈이 포함되었으며, 빌드 가능한 Linux 및 macOS 소스와 사용자 지정 배포 경로를 위한 환경 변수 재정의를 제공합니다
변경
- 복잡한 문자 그리기가 치환, 커닝, 필기체 연결 및 마크 부착을 포함하여 폰트 바이트의 GSUB과 GPOS 셰이핑을 우선 사용하며, 네이티브 모듈이 없을 때는 제한된 Pascal 폴백이 아랍어 연결과 일반적인 OpenType 레이아웃 조회 형식을 처리합니다
- 셰이핑된 폰트 서브셋이 글리프 ID를 유지하고 COLR/CPAL 및 fvar/gvar/HVAR 데이터를 포함하여 레이아웃, 가변 폰트 및 색상 폰트 종속성을 함께 닫습니다
Version 3.457.0
추가
CreateOpenTypeFontVariation이 요청한 CFF2 가변 폰트 축 좌표로부터 재사용 가능한 정적 CFF 폰트를 만듭니다
변경
- OpenType CFF2 가져오기가 즉시 그리기와 임베딩을 위해 정적 기본 인스턴스를 선택하면서 이후 인스턴스화를 위해 가변 프로그램을 유지합니다
- CFF2 인스턴스화가 확장된 로컬 및 전역 서브루틴에 걸쳐 변형 저장소,
vsindex및blend를 평가하고 수평 및 전역 메트릭 변형을 적용하며, 기존 CFF 임베딩과 서브셋 경로에 사용할 수 있는 크기가 제한되고 체크섬이 올바른 CFF1 OpenType 폰트를 생성합니다
Version 3.456.0
추가
- Windows 10 버전 1703 이상에서 TrueType, OpenType 및 컬렉션 파일 진입점에 WOFF2 입력을 추가했으며, 변환된 TrueType 외곽선과 메트릭, CFF 폰트 및 컬렉션 페이스를 포함합니다
변경
- 웹 폰트 컨테이너를 메모리에서 한 번만 풀고 문자 매핑에 사용 가능한 가장 좋은 유니코드 cmap을 사용하며, 압축된 컨테이너가 아니라 결과 sfnt를 임베드하거나 내보냅니다
Version 3.455.0
추가
GetFontVariationAxes가 각 TrueType 가변 폰트 축의 지역화된 이름, 설계 범위, 기본값 및 숨김 상태를 노출하고,CreateTrueTypeFontVariation이 요청한 축 좌표로 재사용 가능한 정적 폰트를 만듭니다
변경
- 가변 TrueType 인스턴스화가
avar,gvar,HVAR,MVAR데이터를 적용하고 합성 외곽선을 평탄화하며 수평 및 전역 메트릭을 다시 계산하고 오래된 변형 및 힌팅 테이블을 제거하여 그리기, 임베딩, 서브셋 및 글리프 조사에 사용할 체크섬이 올바른 sfnt를 생성합니다 SaveFontToFile이 PDF를 저장하기 전에 새로 만든 가변 폰트 인스턴스를 포함하여 유지 중인 메모리 내 TrueType 프로그램을 직접 내보낼 수 있습니다
Version 3.454.0
추가
GetFontColorGlyph과GetFontColorGlyphByIndex가 COLR v0 및 v1 페인트 그래프, CPAL 팔레트, SVG-in-OT 문서 및 임베드된 비트맵 스트라이크를 노출하여 애플리케이션에서 직접 조사하고 렌더링할 수 있게 합니다
변경
- 색상 폰트 테이블 조사가 지연 방식의 제한된 sfnt 접근을 사용하고 공유 폰트 캐시 바이트 예산에 참여하여, 큰 색상 폰트에 대해 외곽선을 서두르게 파싱하지 않습니다
Version 3.453.0
추가
SetFontCacheLimit,GetFontCacheInfo,ClearFontCache가 유지되는 폰트 페이스 리소스, 셰이핑된 텍스트 실행 및 파싱된 외곽선 프로그램을 위해 공유 바이트 예산, 최근 최소 사용 제거 및 히트, 미스, 점유율 통계를 제공합니다GetFontGlyphIndex가 TrueType cmap 형식 4 및 형식 12 테이블을 통해 전체 유니코드 코드 포인트를 매핑하고,GetFontGlyphOutline이 원본 어드밴스, 왼쪽 측면 베어링, 경계 상자 및 em당 단위 메트릭과 함께 단순 및 변환된 합성 경로를 반환합니다
변경
- 반복되는 셰이핑된 텍스트 측정과 그리기 호출이 공유 캐시 예산 안에서 깊이 복사된 셰이핑 실행을 재사용하고, 반복되는 글리프 조사가 글리프마다 다시 파싱하는 대신 파싱된 폰트 프로그램을 재사용합니다
- 문자열과 WOFF 컨테이너에서 불러온 바이너리 폰트 프로그램이 소유한 원시 바이트 스트림을 유지하여 지연된 테이블 접근 중 텍스트 재코딩과 만료된 스트림 참조를 방지합니다
Version 3.452.0
추가
soCanonicalEquivalent가 텍스트 검색, 일괄 검색 및 바꾸기 워크플로에서 정준 동등한 NFC와 NFD 텍스트를 일치시키고 오프셋과 길이는 원본 추출 텍스트 기준으로 보고합니다soGraphemeClusters가 일치를 확장 그래펨 클러스터 경계로 제한하고?와일드카드가 하나의 완전한 클러스터를 소비하도록 하여 서로게이트 쌍, 조합 시퀀스, 이모지 ZWJ 시퀀스, 국기 및 인도계 결합 자를 보호합니다
변경
- 유니코드 정규화와 그래펨 분절이 운영 체제 텍스트 서비스에 의존하지 않고 지원되는 모든 플랫폼에서 간결하게 생성된 Unicode 15.1 테이블을 사용합니다
Version 3.451.0
추가
ExternalizeInlineImages가 선택한 페이지 범위에서 반복되는 지원되는 인라인 이미지를, 직렬화 크기가 줄어들 때 하나의 공유 Image XObject로 대체합니다
변경
- 인라인 이미지 외부화가 이미지 마스크, 보간, 디코드 배열, 필터 및 디코드 매개변수를 보존하고, 필터 없는 페이로드는 더 작아질 때 기회 있을 때마다 Flate 압축합니다
- 정확한 SHA-256 그룹화, 결정론적 리소스 이름, 중복 페이지 제거, 진행률 보고 및 협조적 취소가 최적화 결과를 제한되고 재현 가능하게 유지합니다
- 알 수 없는 인라인 사전 항목과 비장치 색상 공간은 완전한 의미 없이 승격되는 대신 바이트가 동일하게 유지됩니다
Version 3.450.0
추가
NormalizeContentStreams가 선택한 페이지 범위에서 연산자, 문자열 값 및 인라인 이미지 페이로드를 보존하면서 공백과 숫자 토큰을 정규형으로 만듭니다
변경
- 콘텐츠 압축이 들여다보기 최적화로 중복 명령을 찾지 못했더라도 정규형 토큰을 생성합니다
수정
- 명시적 양수 부호로 시작하는 PDF 실수가 파싱과 정규화 과정에서 값을 유지합니다
- 대체된 스트림 데이터가 이전 필터 파이프라인의 더 이상 필요 없는 디코드 매개변수를 유지하지 않습니다
Version 3.449.0
추가
SetTempFileQuota,GetTempFileQuota,CompactDocumentMemory가 메모리 내 폴백을 자동으로 제공하면서 크기가 제한된 디스크 기반 객체 스풀링을 제공합니다
변경
- 임시 객체 데이터가 세대 인식 인덱스 조회를 사용하고 스풀 쓰기 핸들이 닫힌 뒤에도 계속 사용할 수 있습니다
Version 3.448.0
추가
SetRecoveryMode와GetRecoveryMode가 손상된 PDF 입력을 불러오기 전에 엄격 모드, 트레일러 기반 복구 또는 최선형 복구 중에서 선택합니다
변경
SaveToStream이 기존 청크 단위 직렬화 경로를 유지하면서 쓰기 전용 탐색 불가능 대상에 직접 기록합니다- 최선형 복구가 기본값으로 유지되고, 엄격 모드는 원시 재구성을 비활성화하며, 복구 모드는 트레일러를 합성하는 대신 남아 있는 트레일러를 요구합니다
Version 3.447.0
추가
SetOptimizationWorkers와GetOptimizationWorkers가 이미지 최적화와 Flate 스트림 재압축을 위해 크기가 제한된 워커 배치를 구성하며, 기본으로 프로세서를 자동 선택하고 직렬 호환 모드를 제공합니다OptimizeImages,RecompressStreams,MergeFileList,MergeFileListFast,MergeFileListStrict가 추적되는 진행률을 보고하고Abort를 통한 협조적 취소를 존중합니다
변경
- Flate 재압축과 자립형 이미지 트랜스코딩이 크기가 제한된 병렬 배치로 실행되는 동안 문서 변경은 결정론적이고 단일 스레드로 유지됩니다
- 이미지 최적화가 재인코딩에 필요한 디코딩된 비트맵 데이터를 유지하고 스텐실 및 색상 키 마스크 이미지를 건너뛰며, JPEG 대체를 적용할 때 오래된 디코드 매개변수를 제거합니다
- 대용량 파일 목록 병합은 활성 원본 리더만 열어 두고 입력 및 객체 수 기준으로 진행률을 보고하며, 취소되거나 실패하면 불완전한 출력을 제거합니다
수정
- 다중 파일 병합 작업이 둘 이상의 원본을 병합했을 때 성공 완료를 보고합니다
- 이미지 다운샘플링과 최적화가 재인코딩 경로에 필요한 디코딩된 비트맵을 유지합니다
Version 3.446.0
변경
- 두 매개변수를 받는
SetDisplayListCacheLimit오버로드가 항목 수뿐 아니라 유지되는 디스플레이 목록 메모리에도 상한을 두고, 기존 오버로드는 구성된 바이트 예산을 보존합니다 - 디스플레이 목록 제거가 유지된 바이트당 재구성 가치가 큰 자주 재사용되는 콘텐츠를 우선하고, 개별적으로 과대한 목록은 렌더링을 막지 않고 보관을 건너뜁니다
- 활성 캡처와 재생 작업이 자기 목록을 고정하고, 동시 조회는 부분적으로 만들어진 기록을 절대 관찰하지 않으며, 취소되거나 실패한 캡처는 폐기됩니다
GetDisplayListCacheInfo와GetResourceUsageStatisticsJSON이 유지된 바이트, 한도, 예상 재생 비용, 제거, 우회, 거부된 캡처 및 빌드 경합을 보고합니다
수정
- 디스플레이 목록 재생이 대체된 피연산자 문자열을 해제하여 이전 연산자마다 할당이 하나씩 남는 일이 없습니다
Version 3.445.0
변경
- 세 매개변수를 받는
SetMemoryBudget오버로드가 각 문서의 압축 객체 스트림 캐시에 디코딩된 바이트 예산을 추가합니다 - 객체 스트림 캐시 항목이 항목 수와 디코딩된 페이로드 크기 모두에서 최근 최소 사용 제거를 사용하고, 과대한 항목은 객체 접근을 막지 않고 캐싱을 건너뜁니다
- 불러오기 전에 구성된 메모리 예산이 기존 문서와 이후 문서에 모두 적용되며
GetMemoryBudget으로 조회할 수 있습니다 GetResourceUsageStatisticsJSON이 현재 객체 스트림 캐시 바이트, 바이트 한도 및 제거 횟수를 보고합니다
Version 3.444.0
추가
- 세 매개변수를 받는
SetParserLimits오버로드가 허용되는 파서 오류를 제한하고 예산이 소진되면pdsErrorLimit으로 결정론적 복구를 중단합니다 SetStreamDecodeLimits가 디코더 할당 전에 과도하게 긴 필터 체인을 거부하고 하나의 추적된 작업에서 스트림 전체에 누적 디코딩 바이트 예산을 적용합니다- 스트리밍과 메모리 내 디코딩 경로가 문서 불러오기 중 객체 스트림 디코딩을 포함하여 동일한 필터 및 바이트 회계를 공유합니다
GetResourceUsageStatisticsJSON이 구조 및 스트림 메모리 추정치, 이미지와 폰트 수, 디코딩 바이트 최댓값, 실패, 객체·객체 스트림·디스플레이 목록 캐시의 히트와 미스를 보고합니다ResetResourceUsageStatistics가 불러온 문서나 재사용 가능한 캐시를 버리지 않고 진단 카운터를 재설정합니다
Version 3.443.0
추가
SetParserLimits와GetParserLimits가 중첩된 PDF 객체와 직접 파싱되는 배열 또는 사전의 항목 수에 대한 상한을 구성하고 조사합니다- 파서 한도가 파일, 스트림, 문자열, 편집 저널, QDF 및 무결성 검사 불러오기 경로가 객체를 소비하기 전에 적용되며, 기본값은 기존 중첩 한도와 제한 없는 컨테이너 크기를 유지합니다
TPDFStructure.DecodeMaxContainerItems가 과대한 배열과 사전을 별도의pdsContainerLimit상태로 거부하고 실패 위치를 보존합니다RegenerateFormAppearances가 한 번의 순회로 모든 최상위 및 하위 AcroForm 필드를 새로 고치고, 선택적으로 사용 가능한 외양을 보존하며NeedAppearances를 지웁니다
Version 3.442.0
추가
CheckFileCompliance가 PDF/X에 대한 규정 준수 테스트 3을 받아들여 완성된 문서를 ISO 15930 인쇄 교환 규칙에 대해 감사합니다: pdfxid 에디션 식별, 부분 기반 구문 수준, 임베드된 프로파일과 조건 식별자가 있는 정확히 하나의 GTS_PDFX 출력 인텐트, 선언된 트래핑 상태, 페이지별 TrimBox 및 BleedBox 지오메트리, 임베드된 폰트 프로그램, 금지된 주석 유형, 문서 수준 JavaScript, 임베드된 파일, 암호화 및 LZWDecode 필터- 문제는 PDF/A 및 PDF/UA 검사기가 사용하는 것과 동일한 문자열 목록 핸들을 통해 PDFX 접두사가 붙은 행으로 나타납니다
Version 3.441.0
추가
SetPDFXMode가 작성 시점에 ISO 15930 인쇄 교환 규칙을 강제하고 pdfxid XMP 에디션 식별을 기록하는 PDF/X 규정 준수 모드(1 = PDF/X-1a:2003, 2 = PDF/X-3:2003, 3 = PDF/X-4)를 선택합니다- 이 모드는 GTS_PDFX OutputIntent(CMYK 인쇄 기본값)를 설치하고 /Trapped 상태를 선언하며 부분에 따라 저장 버전을 정합니다(X-1a / X-3은 PDF 1.4, X-4는 PDF 1.6)
- 작성 게이트: X-1a에서 DeviceRGB 및 ICCBased 색상 공간 거부(X-3 / X-4는 DeviceRGB에 RGB OutputIntent 요구), X-4 외부에서 투명도 및 선택적 콘텐츠 거부, 모든 모드에서 JavaScript, 파일 첨부, 암호화, LZWDecode 이미지 및 임베드되지 않은 폰트 거부
- 저장 시 수정: 모든 페이지가 TrimBox를 받고(기본값은 MediaBox) 주석 Print 플래그와 AcroForm NeedAppearances가 정규화되며 /Trapped가 선언됩니다
GetInformation(203)이 활성 PDF/X 모드를 보고합니다
Version 3.440.0
추가
AddWatermarkAnnotationFromImageID가 /FixedPrint /Matrix 저장 행렬과 함께 /Subtype /Watermark 주석을 기록하여 인쇄 시 외양이 페이지에 맞춰 확대되도록 합니다(ISO 32000-1 12.5.6.17)AddPrinterMarkAnnotationFromImageID가 /PN 프린터 표시 이름을 담은 /Subtype /PrinterMark 주석을 기록합니다(ISO 32000-1 12.5.6.18)SetFillColorICCBased와SetLineColorICCBased가 임베드된 ICC 프로파일 파일로 뒷받침되는 콘텐츠 수준의 /ICCBased 색상 공간으로 그리며, 구성 요소 수는 프로파일 헤더에서 읽고 동일한 프로파일은 하나의 리소스를 공유합니다
Version 3.439.0
추가
- WOFF 1.0 웹 폰트 컨테이너가 모든 TrueType 진입점(
AddTrueTypeFontFromFile, 스트림 API)에서 투명하게 가져옵니다. 테이블은 zlib 스트림에서 풀리고 평탄화된 sfnt 디렉터리가 파싱 전에 다시 만들어집니다 - 문서는 WOFF 컨테이너가 아니라 풀어낸 sfnt 프로그램을 FontFile2에 임베드하므로 임베드된 폰트가 모든 뷰어에서 유효하게 유지됩니다
Version 3.438.0
추가
- 시드 값 강제가
LegalAttestation, 허용 가능한 인증서Issuer항목 및 위치 기반KeyUsage패턴으로 확장되었으며(ISO 32000-2 Tables 237 and 238), 이에 대응하는 작성 API로SetSignatureFieldSeedValue법적 진술 값,AddSignatureFieldSeedIssuer,SetSignatureFieldSeedKeyUsage가 있습니다 SetSignProcessLegalAttestation이 서명 시점에 필수 LegalAttestation 제약에 대해 검증된 서명자 진술을 선언합니다TPDFlibPKCS11Client.InitializeUserPIN과ChangeUserPIN이C_InitPIN에 대한 보안 책임자 로그인과 함께 전용 읽기/쓰기 세션을 통해 토큰 PIN을 관리합니다
Version 3.437.0
추가
SetSignProcessRSAPSSPadding이 RSA 분리 서명을 RSASSA-PSS 패딩으로 서명하고 CMS 서명 알고리즘 식별자 안에 전체 RFC 4055 매개변수 집합(서명 다이제스트를 사용하는 MGF1, 다이제스트와 같은 솔트 길이)을 기록합니다- PSS 패딩 서명이 라이브러리 검증기를 통해 왕복되며, 검증기는 이제 RFC 4055 매개변수(명시적 및 암시적 인코딩)를 파싱하고 선언된 솔트 길이로 CNG를 통해 검증합니다
Version 3.436.0
수정
- 텍스트 추출이 ToUnicode 맵을 제공하지 않는 폰트의 /Differences 배열에 담긴 AGL 보조 글리프 이름(
uniXXXX및uXXXXXX형식)을 디코딩합니다 - 글리프 이름이 아무것도 확인되지 않는 인코딩 슬롯이 추출 중 원시 코드 포인트나 대체 문자 대신 폰트 기본 인코딩으로 폴백합니다
- ToUnicode 맵이 없는 상징 임베드 TrueType 폰트가 임베드된 폰트 프로그램의 cmap 테이블을 통해 디코딩되어 각 문자 코드 뒤의 실제 유니코드를 복원합니다
Version 3.435.0
추가
AddTrueTypeCollectionFontFromFile이 0 기반 인덱스로 TrueType 컬렉션(.ttc)의 임의 페이스를 임베드합니다. 이전 동작은 항상 첫 번째 페이스를 사용했습니다GetJPEGFileOrientation이 JPEG 파일의 EXIF 방향 태그(1..8, 없으면 0)를 읽고GetJPEGFileICCProfileToFile이 이미지를 가져오지 않고 APP2 ICC 프로파일을 추출합니다
Version 3.434.0
추가
- 렌더 옵션 11..15가 PDFium 품질 플래그에 매핑됩니다: LCD 텍스트 렌더링 켜기/끄기, 텍스트 부드러움 없음, 이미지 부드러움 없음, 경로 부드러움 없음 및 강제 하프톤. 기본값은 기존 출력을 유지하고 GDI+/Cairo 백엔드는 이 플래그를 무시합니다
SetDisplayListCacheLimit이 한 번 파싱된 콘텐츠 스트림 디스플레이 목록 캐시에 상한을 둡니다. 양수 한도는 삽입 전에 가장 오래된 항목부터 제거하고 0은 무제한 동작으로 되돌립니다
Version 3.433.0
추가
- 서명 타임스탬프 다이제스트 선택이 SHA-3 계열을 받아들입니다(
SetPAdESSignatureTimeStampDigestAlgorithm의 코드 5..7). 서명자 다이제스트 옵션과 일치합니다 SetTimeStampRetryCount가 전송 실패나 5xx 응답 뒤에 0..10회의 추가 TSA 시도를 시도 간 선형 백오프와 함께 구성합니다TPDFlibCertificateInfo에EnumCertificates중 인증서 컨텍스트 속성에서 읽은FriendlyName,ThumbprintSHA1,ThumbprintSHA256이 추가되었습니다- AdES 역사적 검증 보고서에
BaselineProfile이 추가되었습니다: PAdES가 아닌 서브필터는 0, 이후 타임스탬프와 DSS 증거에서 도출된 1=B-B, 2=B-T, 3=B-LT, 4=B-LTA
Version 3.432.0
추가
- 페이지 범위 문자열이 범위를 받는 모든 API에서
odd,also even,first,last키워드를 범위 경계로도(3-last) 받아들입니다 ReversePages가 불러온 문서의 페이지 순서를 뒤집습니다FlattenAnnotsOnPageRange가 한 번의 호출로 범위의 모든 주석을 페이지 콘텐츠로 굳힙니다GetPageContentBox가 모든 텍스트, 이미지, 경로 요소의 합집합 범위를 보고하고AutoCropPages가 각 페이지의 CropBox를 그 상자에 여백을 더해 설정합니다AddBatesNumbering이 접두사와 접미사를 붙인 순차적인 0 채움 번호를 아홉 개의 키패드 방식 위치에 찍습니다ExtractDocumentRevision이 개정 체인을 잘라내어 더 이른 증분 개정 시점의 문서 상태를 새 파일로 기록합니다SplitDocumentByOutline이 지정한 수준까지의 개요 항목에서 문서를 잘라 구역마다 하나의 파일로 만듭니다ComparePageTextsWith가 두 문서를 추출된 텍스트 기준으로 페이지별로 비교하고 차이 수와 첫 불일치를 보고합니다SanitizeDocument에 XMP 메타데이터 스트림 전체와 모든/PieceInfo사전을 제거하는SANITIZE_XMP_PACKET(값 32)이 추가되었습니다
Version 3.431.0
추가
- 추출 옵션 19(
SetTextExtractionOptions및 직접 접근 변형)가 OCR 레이어 같은 렌더링 모드 3 텍스트를 보이는 콘텐츠는 그대로 둔 채 추출 결과에서 제외합니다 - 추출 옵션 20이 추출 중
/Span마크 콘텐츠 시퀀스의 글리프를 해당/ActualText값으로 대체합니다(ISO 32000-1 §14.9.4). 인라인 속성 사전과 명명된 속성 리소스를 모두 존중합니다 DAGetTextBlockCharBox가 블록 사변형과 어드밴스에서 글자별 축 정렬 상자를 도출하여 개별 글자의 강조 사각형과 히트 영역 계산에 쓸 수 있게 합니다ExportFormValuesToJSON이 AcroForm 필드 값을 적절히 이스케이프된 JSON 배열로 직렬화하며 빈 필드는 선택적으로 건너뜁니다GetPageTextStatistics가 임의 페이지의 글자 수, 공백으로 구분된 단어 수 및 블록 수를 셉니다GetXMPProperty가 문서 XMP 패킷에서 단순 값을 읽습니다(rdf:Alt/rdf:Bag/rdf:Seq래퍼를 따라 내려가고 XML 엔티티를 해석).SynchronizeXMPToInfo는 XMP 메타데이터를 Info 사전으로 다시 복사합니다- 폰트 목록이 임베드된 프로그램 크기를 보고합니다:
TPDFlibDocumentFont에FontFileBytes가 추가되고 진단 기록에 합계EmbeddedBytes가 추가되었습니다
Version 3.430.0
추가
- 텍스트 검색에 네 가지 옵션이 추가되었습니다:
soDiacriticInsensitive는 1:1 유니코드 접기를 통해 질의를 매칭하여 기본 글자가 분음 부호가 있는 글자를 찾도록 합니다(Latin-1, Latin Extended-A, 그리스어 및 키릴어,soCaseSensitive와 결합 시 대소문자 구분은 계속 존중).soWildcards는 질의의*와?를soWholeWord와 호환되는 최좌측-최장 의미로 해석합니다.soAcrossLines는 각 페이지의 추출 블록을 이어 붙여 줄과 블록 나눔에 걸친 구절을 매칭합니다.soPreserveStyle는SearchAndReplaceText가 교체 내용을 호출자의 현재 설정이 아니라 교체된 블록의 텍스트 크기와 색상으로 다시 그리게 합니다 - 검색 히트가 이제 블록 텍스트 안의 일치 위치와 길이(
MatchStart,MatchLength)와 새SearchContextChars속성으로 제어되는 선택적 문맥 창(ContextBefore,ContextAfter)을 보고합니다 AddTextMarkupFromSearchHits와HighlightTextSearchHits가 검색 히트 또는 실행 중인BeginTextSearch세션이 유지한 히트를 해당 페이지의 Highlight / Underline / Squiggly / StrikeOut 마크업 주석으로 변환합니다- 네 글자 이상의 문자 그대로의 검색 대상은 이제 보수적인 와이드 문자 대조와 함께 Boyer-Moore-Horspool 건너뛰기 테이블을 사용하여 긴 페이지에 대한 일괄 검색을 가속합니다
수정
- WinAnsi 기본 인코딩과 Differences 배열로 기록된 임베드 TrueType 폰트가 Differences 항목만 나열하는
/ToUnicodeCMap를 생성하여, 이것에 의존하는 뷰어는 나머지 분음 부호가 있는 WinAnsi 코드를 모두 깨진 값으로 디코딩했습니다: 추출은?대체 문자를 반환하고, 블록 수집은 해당 줄에서 멈출 수 있었으며, 분음 부호 민감 검색은 그런 문서를 찾지 못했습니다. CMap 생성기는 이제 기본 인코딩 전체를 Differences 재정의와 함께 규격에 맞는 100항목 단위 구역으로 묶어 덮습니다 - 텍스트 깔때기의 단어 병합 장부가 구분자 없이 실행을 덧붙일 때 유령 어드밴스 항목을 삽입하여 이후 모든 글자별 오프셋을 하나씩 밀어내고 검색 히트 하위 사각형이나 간격으로 유추된 공백 같은 파생 데이터를 손상시켰습니다
Version 3.429.0
수정
AddTrueTypeSubsettedFont를 통한 서브셋이 모든 뷰어에서 텍스트가 공백으로 렌더링되는 문서를 만들었습니다: CID-GID 매핑 스트림이 하드코딩된/Identity항목으로 조용히 덮어 써져 유니코드에서 유도된 CID가 잘못된 글리프 외곽선을 가리켰습니다. 이제 스트림이 권위 있고/Identity는 매핑을 유도할 수 없을 때의 폴백으로만 남으며, CJK와 자동 갱신 글리프 집합을 가진 서브셋 문서가 다시 올바르게 렌더링됩니다- 축 방향 및 방사형 셰이더 채우기가 내부 GDI+ 렌더러에서 단색 검정으로 렌더링되었습니다:
GdipCreateLineBrush는WrapModeClamp(텍스처 브러시 전용 모드)를 거부하고 실패한 브러시 생성이 검정 단색 폴백으로 떨어졌습니다. 그라데이션 브러시는 이제WrapModeTile로 만들어지며 셰이더 채우기가 Cairo 백엔드 및 외부 뷰어와 동일하게 렌더링됩니다 - 라이브러리를 오버플로 검사를 켜고 컴파일했을 때(명령줄 데모 빌드 스크립트의 릴리스 플래그)
TPDFlib인스턴스 생성이EIntOverflow를 일으켰습니다: FNV-1a 이름 해시, MD5 상태 누적 및 MD5 비트 카운터는 설계상 모듈러 연산이므로 이제 지역적으로 오버플로 검사를 끄고 실행됩니다. 배포되는build-Win32-Demo/build-Win64-Demo릴리스 출력이 시작 시 더 이상 충돌하지 않습니다
Version 3.428.1
추가
- 새
Showcase대표 데모(Demo\Delphi\Showcase): 시작 시 일곱 페이지 문서를 만듭니다 — 그라데이션 표지, 셰이더와 패턴이 있는 벡터 그래픽, 임베드 TrueType 타이포그래피, 스타일이 적용된 표, 바코드 갤러리, 검토 주석과 책갈피가 있는 대화형 링크, 요약 페이지 — 그리고 임베드된TPDFlibViewer컨트롤 안에서 실시간으로 미리 보여 줍니다 - Showcase 데모는 헤드리스로도 실행됩니다(
Showcase.exe <output.pdf>). 선택적render인자를 붙이면 모든 페이지를 PNG로 내보내므로 빌드 스크립트에서 전체 문서 파이프라인을 실행할 수 있습니다
수정
- 콘텐츠 스트림 파싱이 선 색상 연산자
RG를 더 이상 잘못 읽지 않습니다: 객체 디코더의 간접 참조 미리보기가0 0 0 RG를 숫자와 유령 참조0 0 R로 소비하여 콘텐츠 최적화 뒤 선 색상이 손상되고 엄격한 뷰어에서 연산자 구문 오류가 발생했습니다 - 콘텐츠 들여다보기 최적화기가 임의의 색상 연산자 뒤에 오는 반복된
cs(색상 공간) 설정기를 더 이상 버리지 않습니다:rg/g/k는 색상 공간을 암시적으로 재설정하므로 텍스트 색상 변경 뒤의 패턴 채우기(scn)가 자기/Pattern cs를 유지하고 다시 올바르게 렌더링됩니다
Version 3.428.0
추가
Demo\Lazarus아래에 열아홉 개의 새 Free Pascal / Lazarus 콘솔 데모가 추가되었습니다: OutlineBuilder, WatermarkDemo, NamedDestinations, EmbeddedFiles, XmpMetadata, TextBlockExtraction, AnnotationInspector, BarcodeGallery, TaggedPDF, SearchReplace, Redaction, LinearizeDemo, PatternShowcase, DocumentProperties, SecurityPermissionMatrix, PageStitch, OutputStream, MergePDF, PdfToImage- FPC 빌드를 위한
IOUtils호환 심(TPath / TDirectory / TFile)이 이식된 데모를 Delphi 대응 버전과 소스가 동일하게 유지합니다
변경
- Windows의 NOVCL 그래픽 대체물이 이제 실제 GDI 객체를 만듭니다: TBitmap은 하향 DIB 섹션을 할당하고, TCanvas는 메모리 DC를 소유하며 속성 변경 시 브러시, 펜, 폰트 GDI 객체를 다시 선택하고, TBrush / TPen / TFont는 색상, 스타일, 폰트 속성이 바뀌면 핸들을 다시 만듭니다
- FPC의 페이지 렌더링이 이제 Delphi 빌드와 일치하는 픽셀 출력을 생성하며(대체 DC를 통한 GDI+ 래스터화) 이로써
PdfToImage의 JPEG 및 BMP 내보내기도 복원되었습니다
수정
- FPC의 암호화 PDF 생성이 바이너리 문자열 값을 손상시켰습니다(트레일러
/ID판독, 암호화/U). 이로 인해 출력이 다시 불러오기 검증에 실패했습니다. FPC 빌드는 더 이상-FcUTF8을 전달하지 않습니다. 이 옵션의 ansistring 코드페이지 태깅 때문에AnsiString + AnsiChar연결 시 $7F를 넘는 모든 바이트가 물음표로 바뀌었습니다
Version 3.427.0
추가
- Free Pascal / Lazarus 지원: 라이브러리가 이제 Delphi 빌드와 동일한 소스에서 FPC 3.2(Win64)로 컴파일되며, 새
build-Lazarus-Lib,build-Lazarus-Lib-TRIAL,build-Lazarus-Tests,build-Win64-Demo-Laz빌드 스크립트와PDFlibPasLaz패키지가 함께 제공됩니다 - FPC의 Flate 압축 및 압축 해제가 FPC에 포함된 정적 zlib로 실행되고, AES 암호화는 Delphi 빌드가 사용하는 것과 동일한 unity 객체를 링크하며, JPEG 이미지는 GDI+ 백엔드로 디코딩됩니다
- FPCUnit 콘솔 테스트 모음(
Tests\Lazarus)이 문서 생성/저장/불러오기 왕복, deflate/inflate, AES 및 텍스트 추출을 다루고, 두 개의 Lazarus 콘솔 데모(HelloWorld,TextExtract)가Demo\Lazarus아래에 포함되었습니다
변경
- 유닛 범위 접두사(
System.SysUtils,Winapi.Windows, ...)를 라이브러리 소스 전체에서 제거하여 두 컴파일러 모두에서 동일한 유닛이 해석되도록 했습니다. Delphi 명령줄 라이브러리 빌드는 이제 유닛 범위 목록을 명시적으로 전달합니다 - 렌더러와 Cairo 비트맵 내보내기의 두
NO_VCL/NOVCL지시어 오타를 수정했습니다. 이 오타는 NOVCL Windows 구성이 실제로 컴파일되면서 드러났습니다
Version 3.426.0
추가
- 페이지 렌더링이 이제 설정 가능한 Delphi, DLL, ActiveX API를 통해 프로세스 및 지명 잉크 오버프린트를 시뮬레이션할 수 있습니다
변경
- 확장 그래픽 상태가 누적
/OP,/op,/OPM의미를 보존하고 크기가 제한된 픽셀 합성이 겹치는 잉크 채널을 GDI+ 및 Cairo 렌더러에서 유지합니다
Version 3.425.0
추가
- 이미지 추출이 JBIG2 페이지 및 전역 세그먼트를 독립 파일로 보존하고 CCITT 팩스 페이로드를 독립 TIFF 래퍼 안에 유지합니다
- 읽기 전용 이미지 중복 제거 매니페스트가 정확히 인코딩이 동일한 중복을 다이제스트, 객체 정체성, 페이지 사용 현황 및 회수 가능한 페이로드 바이트별로 묶어 Delphi, DLL, ActiveX 클라이언트에 제공합니다
변경
- 페이지 이미지 목록이 중첩된 Form XObject를 통해 도달하는 이미지 스트림을 포함하여 네이티브 JPX 및 JBIG2 페이로드를 비트맵 확장 없이 식별합니다
Version 3.424.0
추가
- 문서 수준 연관 파일 API가 Delphi, DLL, ActiveX 클라이언트에서 카탈로그
/AF멤버십을 생성, 열거, 매핑, 추가 및 제거합니다 - RichMedia 주석이 이제 기존의 임베드 파일 또는 연관 파일을 재사용할 수 있어 하나의 미디어 페이로드가 첨부 패널과 주석 자산 그래프가 공유합니다
변경
- 연관 파일 생성이 파일, Delphi 스트림, 바이너리 문자열, DLL 버퍼 및 ActiveX 바이트 배열을 받으면서 체크섬, 설명, 관계 메타데이터 및 바이너리 0 바이트를 보존합니다
- 임베드 파일 제거가 일치하는 카탈로그 연관 파일 참조도 함께 제거하여 불러온 문서에 매달린
/AF항목이 남지 않도록 합니다
Version 3.423.0
추가
- 선택적 콘텐츠 API가 Delphi, DLL, ActiveX 클라이언트에서 중첩된 레이어 패널 레이블과 그룹 가지를 만듭니다
- 라디오 그룹 생성, 멤버십, 제거 및 조사 API가 CAD 및 지도 워크플로를 위한 상호 배타적 레이어 컨트롤을 추가합니다
변경
- 잠긴 레이어 업데이트가 성공을 보고하고, 대체 구성이 올바른 1 기반 식별자를 사용하며, 잘못된 레이어 계층은 제한된 순환 보호와 함께 순회됩니다
- 선택적 콘텐츠 그룹을 삭제하면 모든 구성의 레이어 순서, 상태, 잠금, 라디오 및 자동 상태 구조에서 해당 참조가 제거됩니다
Version 3.422.0
추가
- PRC 3D 주석 API가 파일, 스트림, 메모리 문자열, DLL 버퍼 및 ActiveX 바이트 배열에서 지명된 기본 보기와 명시적 활성화 정책과 함께 모델을 임베드합니다
- PRC 주석이 PDF/A-4e 엔지니어링 문서를 지원하며 일반 출력은 자동으로 PDF 2.0으로 승격됩니다
변경
- PRC 및 U3D 주석이 이제 완전한 3D 보기, 활성화 및 비활성화 사전, 인쇄 가능 주석 플래그, 대체 이름 및 일반 외양을 포함합니다
- 레거시 U3D 임베딩이 3D 주석을 허용하지 않는 PDF/A 프로파일을 거부하고 PDF/A-4e를 받아들입니다
Version 3.421.0
추가
- 문서 부분 API가 Delphi, DLL, ActiveX 클라이언트에 PDF 2.0
/DPartRoot, 계층적/DParts, 페이지 범위 잎, 기록 수준, 수준 이름 및 검증된/DPM메타데이터를 추가합니다 - 조사 및 수명 주기 API가 계층 검증, 도달 가능한 부분 수, 페이지-부분 조회, 메타데이터 왕복 및 완전한 계층 제거를 노출합니다
변경
- 큰 자식 집합은 크기가 제한된 배열 블록을 사용하고 검증은 부모 링크, 순환, 균일한 잎 깊이, 순서 있는 완전한 페이지 커버리지, 역방향 페이지 링크, XML 이름 토큰 및 제한된 메타데이터 그래프를 검사합니다
- 문서 부분 계층을 만들면 출력이 PDF 2.0으로 승격되고 불러온 문서의 기능 감지 및 저장 버전 잠금에 참여합니다
Version 3.420.0
추가
DrawHTMLStory가 동일 폭 열과 자동 생성 페이지를 통한 수준 높은 스타일 HTML 흐름을 Delphi, DLL, ActiveX 클라이언트에 추가합니다- 유한한 페이지 한도는 활성 스타일시트 캐스케이드, 중첩 스타일 상태, 구조화된 블록, 표, 링크, 폰트 매핑 및 이미지 바인딩을 보존하는 재사용 가능한 연속 문자열을 반환합니다
변경
- 생성된 스토리 페이지가 선택한 시작 페이지의 실효 치수를 상속하고 각 열은 캐시된 측정-재생 레이아웃 계획을 재사용합니다
- 스토리 레이아웃이 잘못된 지오메트리를 거부하고 열과 생성 페이지에 상한을 두며 연속 프레임이 진전을 못 이룰 때 종료됩니다
Version 3.419.0
추가
TPDFlibPrinter가 직접 PDF 생성을 위해BeginDoc,Canvas,NewPage,EndDoc,Abort수명 주기 메서드를 갖춘 VCL 컴포넌트 외관을 추가합니다- PDF 프린터 작업이 설정 가능한 용지 치수, 세로 또는 가로 방향, 캔버스 DPI, 벡터 가져오기 옵션, 문서 제목 및 선택적 직접 파일 출력을 지원합니다
변경
- 각 컴포넌트 작업이 독립적인 PDF 문서를 소유하고 첫 번째 및 이후 캔버스를 일관된 페이지 의미로 커밋하며 완료된 출력을 이후 라이브러리 처리를 위해 유지합니다
- 이 컴포넌트는 인쇄 대화상자를 열거나 운영 체제 스풀러에 접근하지 않으므로 기존 VCL 캔버스 그리기 코드가 실제 프린터 의존 없이 이전될 수 있습니다
Version 3.418.0
추가
RenderPagesToPrintStream,RenderPagesToPrintString,RenderPagesToPrintFile,RenderPagesToPrintData,RenderPagesToPrintBuffer가 드라이버 독립적인 인쇄 출력을 Delphi, DLL, ActiveX 클라이언트에 추가합니다- 선택한 페이지 범위를 PostScript Level 3, 단일 페이지 EPS, PCL 5c 또는 PWG Raster로 내보낼 수 있으며 선택적 모노크롬, 양면, 텀블 및 PCL 작업 프레이밍 제어를 제공합니다
변경
- PostScript과 EPS는 페이지 벡터 콘텐츠를 보존하고 PCL과 PWG Raster는 서버 및 임베드 장치로의 직접 전달을 위해 크기가 제한된 행 인코더를 사용합니다
- 인쇄 스트림이 프린터를 열거나 인쇄 대화상자를 표시하거나 운영 체제 스풀러에 작업을 제출하지 않고 생성됩니다
Version 3.417.0
추가
ExportPageSVG와ExportPageSVGToFile가 확장 가능한 페이지 내보내기를 Delphi, DLL, ActiveX 클라이언트에 추가합니다- SVG 출력은 네이티브 그려진 경로, 검색 가능한 텍스트, 임베드된 PNG 이미지, 클릭 가능한 주석 링크 및 투명 페이지 배경을 각각 독립적으로 포함할 수 있습니다
변경
- 페이지 경로가 변환, 채우기 및 선 외양, 불투명도, 선 스타일, 짝수-홀수 규칙 및 실효 클리핑 범위를 페이지 전체를 래스터화하지 않고 유지합니다
- 각 페이지가 제한된 패스로 처리되고 외부 이미지 의존이 없는 자립형 SVG 문서를 생성합니다
Version 3.416.0
추가
DrawSVG,DrawSVGFromFile,GetSVGWidth,GetSVGHeight가 네이티브 SVG 벡터 배치와 측정을 Delphi, DLL, ActiveX 클라이언트에 추가합니다- SVG 그리기가 뷰 박스, 종횡비 정렬, 그룹, 정의와 재사용, 변환, 클리핑, 간단한 CSS와 인라인 스타일, 불투명도, 타원 호가 있는 경로 및 표준 사각형, 원, 타원, 선, 폴리라인, 폴리곤 형태를 지원합니다
변경
- SVG 지오메트리가 래스트 이미지 XObject 없이 확장 가능한 PDF 경로로 기록되고 반복되는 측정과 그리기는 가장 최근에 파싱된 제한된 SVG 트리를 재사용합니다
- 신뢰할 수 없는 SVG 입력은 원본 크기, 요소 수 및 중첩 깊이로 제한되고 외부 리소스 접근을 수행하지 않으며 그라데이션 페인트 서버에는 결정론적 단색 폴백으로 첫 번째 색상 정지점을 사용합니다
Version 3.415.0
추가
DrawFormula,GetFormulaWidth,GetFormulaHeight가 중첩된 수학 레이아웃을 Delphi, DLL, ActiveX 클라이언트에 추가합니다- 수식 마크업이 쌓인 분수, 동시 위첨자와 아래첨자, 선택적 지수가 있는 제곱근, 그리스 문자, 일반 수학 기호, 이스케이프 문자, 텍스트 그룹 및 제한된 중첩을 지원합니다
변경
- 수식 텍스트가 선택한 폰트, 텍스트 크기, 색상, 셰이핑 및 폴백 체인을 사용하고 분수와 근호 규칙은 벡터 콘텐츠로 유지됩니다
- 반복되는 측정과 그리기가 파싱되고 측정된 상자 트리를 재사용하며 문서, 측정 배율 및 전체 페인터 상태는 변경되지 않은 상태로 남습니다
Version 3.414.0
추가
MarkdownToHTML,DrawMarkdownText,DrawMarkdownTextBox,GetMarkdownTextHeight,GetMarkdownTextWidth,GetMarkdownTextLineCount가 직접 Markdown 변환, 측정, 그리기 및 높이 제한 연속을 Delphi, DLL, ActiveX 클라이언트에 추가합니다- Markdown 입력이 ATX 및 setext 제목, 단락, 블록 인용, 순서 있는 목록과 없는 목록, 정렬이 있는 파이프 표, 울타리 및 들여쓰기 코드, 강조, 굵은 텍스트, 취소선, 링크, 이미지, 자동 웹 링크, 이스케이프 및 강제 줄 바꿈을 지원합니다
변경
- 반복되는 Markdown 측정과 그리기가 변환된 HTML과 크기가 제한된 HTML 레이아웃 캐시를 재사용하며 원시 꺾쇠 괄호는 이스케이프된 텍스트로 남습니다
DrawMarkdownTextBox가 불투명 연속 토큰을 반환하고 같은 메서드가 이를 받아들여 부분적으로 렌더링된 인라인 상태를 다른 페이지에서 이어갈 수 있게 합니다
Version 3.413.0
변경
- HTML 측정과 그리기가 파싱, CSS 해석, 줄과 표 지오메트리, 이미지, 스타일된 배경 및 링크를 캐시하는 제한된 레이아웃 계획을 공유합니다
- 일치하는
GetHTMLTextHeight,GetHTMLTextWidth또는GetHTMLTextLineCount호출이 HTML 파싱이나 레이아웃 작업을 반복하지 않고DrawHTMLText에 재공할 수 있습니다
수정
- 스타일된 텍스트 배경이 있는 HTML 측정이 선택한 페이지 콘텐츠 스트림에 사각형 연산자를 더 이상 기록하지 않습니다
Version 3.412.0
추가
BeginDeferredPageLayer,EndDeferredPageLayer,ComposeDeferredPageLayers,CancelDeferredPageLayers,GetDeferredPageLayerCount가 지연된 z-인덱스 합성을 Delphi, DLL, ActiveX 클라이언트에 제공합니다- 음수 레이어는 기존 페이지 콘텐츠 아래에, 0과 양수 레이어는 그 위에 렌더링되며 같은 z-인덱스 값에는 안정적인 기록 순서를 유지합니다
변경
- 지연 레이어가 페이지 크기의 Form XObject로 유지되고 그리기 명령을 파싱하거나 재생하지 않으며 레이어마다 한 번의 배치 작업으로 합성됩니다
Version 3.411.0
추가
SetPageHeaderFooterVariant,ApplyPageHeaderFooterSet,ClearPageHeaderFooterSet가 첫 페이지, 홀수 페이지, 짝수 페이지 및 기본 변형을 갖춘 재사용 가능한 이름 붙인 머리글 및 바닥글 템플릿을 제공합니다- 머리글과 바닥글 변형이 현재 폰트의 일반 텍스트나 자동 높이 측정, 페이지별 변수 확장, 정렬, 여백 및 불투명도를 갖춘 리치 HTML을 Delphi, DLL, ActiveX 클라이언트에서 렌더링할 수 있습니다
변경
- 생성된 머리글과 바닥글은 페이지 매김 산물이며 호출자의 페이지 및 페인터 상태를 보존하고, 제목이나 구역 시작 페이지에 대한 폴백을 억제하는 명시적 빈 변형을 지원합니다
Version 3.410.0
추가
StartPageNumberChapter,AddPageNumberPlaceholder,ResolvePageNumberPlaceholders가 일반 본문 텍스트 안에 최종 문서 및 장 페이지 번호를 넣는 2단계 워크플로를 제공합니다- 페이지 매김 템플릿이 물리적 페이지 번호, 최종 문서 총수, 장 이름, 장 기준 페이지 번호 및 최종 장 총수를 Delphi, DLL, ActiveX 클라이언트에서 지원합니다
수정
- 와이드 문자열 텍스트 상자가 빈 상자를 만드는 대신 제공된 텍스트를 줄바꿈 엔진에 전달합니다
Version 3.409.0
추가
AutoFitTableColumns가 스타일된 셀 콘텐츠에서 표 열 너비를 정하며 정확한 표 너비와 호출자가 정한 열별 한도를 존중합니다- Delphi, DLL, ActiveX 클라이언트가 병합된 셀 제약을 포함하여 동일한 자동 표 크기 조정 동작을 공유합니다
변경
- 성공적인 자동 크기 조정이 캐시된 행 측정을 무효화하고, 실행 불가능한 너비 제약은 기존 모든 열을 변경하지 않고 둡니다
Version 3.408.0
추가
DrawTextFlowColumns가 유지된 단락을 설정 가능한 거터와 선택적 마지막 영역 균형 맞춤과 함께 1~64개의 동일 폭 열로 흘려 보냅니다- DLL 및 ActiveX 클라이언트가 완전한 공개 수명 주기를 통해 TextFlow 핸들을 생성, 그리기, 측정, 조사, 되감기 및 해제할 수 있습니다
변경
- 균형 맞춤 열은 남은 단락이 들어맞을 때 정확한 줄 수를 사용하고 넘치는 영역은 최대 페이지 용량을 위해 전체 열 높이를 유지합니다
Version 3.407.0
추가
- HTML 텍스트 렌더링이 이제 임베드된 스타일시트, 인라인 CSS, 제목, 구조 블록, 열 걸침이 있는 표 및 문서에 묶인 이미지를 지원합니다
SetHTMLImage와ClearHTMLImages가 재사용 가능한 HTML 이미지 원본을 위한 일치하는 Delphi, DLL, ActiveX 컨트롤을 노출합니다
변경
- HTML 측정과 그리기가 해석된 캐스케이드와 레이아웃 결정을 공유하고 표 행이 텍스트 상자를 넘어 원자적으로 이어지며 연속 상태가 중첩된 CSS 서식을 보존합니다
Version 3.406.0
추가
- TextFlow가 영어, 독일어, 네덜란드어, 프랑스어, 스페인어, 이탈리아어, 포르투갈어, 러시아어 및 튀르키예어에 대해 제한된 언어 인식 자동 하이픈 연결을 지원하며 문서 카탈로그
/Lang값에서의 언어 상속을 포함합니다 SetTextFlowLanguage와SetTextFlowHyphenation이 언어와 최소 접두사/접미사 길이를 위한 일치하는 Delphi, DLL, ActiveX 컨트롤을 노출합니다
변경
- TextFlow 줄 바꿈이 완전한 단어를 측정하고 과대한 토큰에만 제한된 탐색을 사용하며, 임의 소프트 하이픈이나 자동 하이픈은 그 나눔이 선택될 때만 렌더링합니다
Version 3.405.0
추가
- 자동 폰트 폴백이 캐시된 설치 페이스를 통해 누락된 CJK, 기호, 수학, 복잡한 문자 및 이모지 클러스터를 해결하면서 셰이핑과 양방향 실행 순서를 보존합니다
SetAutomaticFontFallback,AddFontFallback및 폴백 체인 조사 API가 일치하는 Delphi, DLL, ActiveX 컨트롤을 노출합니다
변경
- 텍스트 그리기와 너비 측정이 동일한 클러스터 인식 폴백 결정을 공유하고 출력에 선택된 폴백 폰트만 지연 임베드합니다
Version 3.404.0
추가
- 누락된 글리프가 일반 텍스트와 셰이핑된 텍스트에서 유니코드 스칼라로 감지되어 제한된 JSON 보고서에 유지되고 Delphi, DLL, ActiveX 콜백을 통해 노출됩니다
SetMissingGlyphPolicy가 호환되는 버리고-보고하기 동작을 유지하거나 콘텐츠가 기록되기 전에 텍스트 작업을LastErrorCode 521로 거부할 수 있습니다
Version 3.403.0
추가
GetAPIScopeReportJSON과ClearAPIScopeReport가 결정론적인 런타임 및 콘텐츠 스트림 진단을 Delphi, DLL, ActiveX API로 노출합니다- 잘못된 경로, 그래픽 상태, 페이지 업데이트, 마크 콘텐츠, 폼, 패턴, 페이지, 문서 및 출력 마무리 전환이 이제
LastErrorCode 117과 함께 즉시 실패합니다
Version 3.402.0
추가
AnalyzePageSkewJSON,DeskewPage,DeskewPageRange가 스캔 페이지 회전을 Delphi, DLL, ActiveX API로 감지하고 교정합니다- 기울기 분석이 크기가 제한된 적응 해상도 래스터와 거친-에서-고운 선 프로파일 점수 매기기를 사용하고 교정은 원본 PDF 콘텐츠를 보존하며 선택적 페이지 채우기 모드를 제공합니다
Version 3.401.0
추가
DetectPageBarcodesJSON이 전체 PDF 페이지 또는 제한된 페이지 영역에서 1차원 및 2차원 바코드를 인식하고 텍스트, 기호 체계, 방향, 유효성, 모서리 점 및 범위를 결정론적 JSON으로 반환합니다- 영역 스캔이 요청된 픽셀만 렌더링하고 선택한 페이지를 보존하며 형식 및 디코더 옵션 마스크를 지원하고 일치하는 Delphi, DLL, ActiveX API를 노출합니다
Version 3.400.0
추가
SaveDOCXToStream과SaveDOCXToFile가 PDF 페이지 범위를 편집 가능한 WordprocessingML 단락, 유추된 제목, 네이티브 글머리 기호 및 번호 매기기 목록, 감지된 표, 폰트 스타일, 페이지 나누기 및 위치가 지정된 PNG 이미지로 변환합니다- 결정론적 DOCX 패키지 작성기가 Office 자동화 없이 CRC 검사된 원시 Deflate 항목을 사용하고 각 페이지를 처리하며 이미지 데이터를 기록하고 명시적 페이지 순서를 보존하며 선택한 PDF 페이지를 복원합니다
Version 3.399.0
추가
ExportPageMarkdown과ExportDocumentMarkdown이 의미 있는 페이지 콘텐츠를 이스케이프된 Markdown 단락, 유추된 제목, 순서 있거나 없는 목록 및 선택적 페이지 표시자와 폰트 스타일이 있는 파이프 표로 변환합니다SaveMarkdownToStream과SaveMarkdownToFile이 전체 문서 출력을 버퍼링하지 않고 한 번에 한 페이지씩 UTF-8로 기록하며, 일치하는 DLL 및 ActiveX 진입점이 문자열 및 파일 내보내기 워크플로를 노출합니다
Version 3.398.0
추가
ExportPageHTML과ExportDocumentHTML이 위치가 지정된 텍스트, 임베드된 PNG 이미지, URI 링크 및 내부 페이지 앵커가 있는 자립형 HTML5를 만듭니다- 문서 내보내기가 명시적 페이지 범위 순서를 보존하고 선택한 페이지를 복원하며 한 번에 하나의 페이지 추출 모델만 유지하고 일치하는 Delphi, DLL, ActiveX API를 노출합니다
Version 3.397.0
추가
ExtractStructuredPage와ExtractStructuredDocument이 페이지 텍스트를 단락, 줄, 스팬, 표, 행 및 셀 계층으로 바꾸고 동일한 모델을 JSON, 의미 XHTML 또는 감지된 표 CSV로 내보냅니다- 문서 추출이 한 번에 하나의 페이지 계층만 유지하고 선택한 페이지를 복원하며 일치하는 Delphi, DLL, ActiveX 진입점을 노출합니다
Version 3.396.0
추가
ApplyOCRTextLayer가 공급자 중립적 OCR JSON을 받아 신뢰도로 걸러지고 경계 상자에 맞춘 보이지 않는 텍스트를 덧붙여 렌더링된 픽셀을 바꾸지 않고 스캔 페이지를 검색 가능하게 만듭니다OCRPage,OCRDocument,OnOCRPage가 제한된 래스터 메모리를 갖춘 한 번에 한 페이지씩의 플러그형 OCR 파이프라인을 제공하며 DLL 및 ActiveX 호출자는 기존 페이지 렌더링을ApplyOCRTextLayer와 결합할 수 있습니다
Version 3.395.0
추가
AddImageFromFile와AddImageFromStream이 WebP 이미지를 받아들입니다. 라이브러리가 RIFF/WEBP 컨테이너를 감지하고 GDI+를 통해 디코딩하며 Windows 10 1809 이상의 GDI+에는 기본 WebP 코덱이 포함되어 있습니다
Version 3.394.0
추가
SetRenderTargetICC가 호출자가 대상 ICC 프로파일을 제공하게 하여 렌더러의 ICC 변환이 원본 색상을 기본 sRGB 대신 CMYK 교정 프로파일을 통해 매핑하고 CMYK 소프트 프루핑과 색역 미리보기를 가능하게 합니다
Version 3.393.0
추가
OptimizeImages가 모든 임베드 이미지를 검사하고 디코딩하여 호출자가 지정한 품질의 JPEG로 다시 인코딩하며, JPEG가 확실히 더 작을 때만 원본 스트림을 제자리에서 대체합니다 — 스캔 문서와 압축되지 않은 이미지를 자동으로 줄이면서 커질 이미지는 보호합니다
Version 3.392.0
추가
GetImageInfoJSON이 문서의 모든 이미지 XObject를 검사하고 픽셀 데이터를 디코딩하지 않고 이미지별 메타데이터(객체 번호, 픽셀 치수, 색상 공간, 구성 요소당 비트, 필터)를 JSON으로 반환합니다. 따라서 이미지 목록 감사가 메모리에서 O(총 이미지 바이트)가 아니라 O(이미지 수)로 유지됩니다
Version 3.391.0
추가
- JPEG2000(JPXDecode) 이미지가 추출 모드가 지원할 때 네이티브 바이트 통과로 추출되어 디코딩-재인코딩 없이 원본 압축 스트림을 보존합니다. 기존 JPEG 통과 동작과 일치합니다
Version 3.390.0
추가
NewMultiStopAxialShader와NewMultiStopRadialShader가 임의 PDF 색상 공간(DeviceRGB, DeviceCMYK, DeviceGray, ICCBased)에서 원하는 수의 내부 색상 정지점을 가진 그라데이션을 만들며, 구간마다 하나의 Type 2 지수 보간을 연결하는 Type 3 스티칭 함수를 사용합니다- 새
TPDFGradientStop레코드가[0,1]범위의 위치와 각 정지점의 구성 요소별 색상 값을 담습니다
Version 3.389.2
변경
- 복잡한 텍스트 셰이핑이 문서 수명 동안 폰트마다 Uniscribe SCRIPT_CACHE, HFONT 및 DC를 캐시하여 폰트의 파싱된 cmap/GSUB/GPOS 테이블이
DrawShapedText호출마다 다시 만들어지고 해제되는 대신 유지됩니다
Version 3.389.1
변경
- 콘텐츠 스트림 기록의 실수-문자열 변환이 일반적인
Power+IntToStr+Insert경로 대신 미리 계산된 10의 거듭제곱 테이블을 사용하는 인라인 자릿수 루프를 사용하여 고밀도 그래픽 생성의 CPU 오버헤드를 크게 줄이면서도 바이트가 동일한 출력을 냅니다
Version 3.389.0
추가
SetMemoryBudget가 디코딩된 스트림 크기 임계값과 압축 객체 스트림 캐시에 상한을 두어 대용량 문서가 소비하는 메모리를 제한하고 최대 메모리를 호출자가 정한 예산 안에 유지합니다
변경
- 임의 접근 리더의 압축 객체 스트림 캐시가 무한히 커지는 대신 기본 50 항목을 유지하여 많은 ObjStm 스트림을 만져도 디코딩된 콘텐츠가 무한정 쌓이지 않습니다
Version 3.388.1
변경
- 문서 불러오기 중 파싱된 PDF 이름 토큰이 구조별 해시 풀에 인턴되어 대용량 문서의 수백만 중복 이름이 새 문자열을 할당하는 대신 각각 하나의 참조 카운트 버퍼를 공유합니다. 사전 키 조회는 포인터 비교로 단락됩니다
Version 3.388.0
추가
- CFF, OpenType-CFF 및 CID 키 폰트가 저장 시점에 TrueType 서브셋이 사용하는 것과 동일한
CreateFontPackage서비스를 통해 서브셋되어 콘텐츠 스트림이 실제로 그린 글리프만 임베드하고 CJK 및 OTF 문서를 크게 줄입니다 - 서브셋된 CIDFontType0 출력이 이제 어떤 CID가 임베드되었는지 선언하는
/CIDSet스트림을 담아 PDF/A 규칙 00032와 규격 준수 뷰어의 기대를 충족합니다
Version 3.387.0
추가
SetRenderBanding이 페이지를 한 번에 하나의 수평 밴드로 짧은 비트맵에 렌더링하고 밴드를 전체 크기 출력으로 합성하여 고해상도 및 대형 페이지가 거대한 비트맵 하나를 할당하는 대신 제한된 최대 메모리를 유지합니다GetRenderBandHeight가 활성 밴드 높이를 보고하고 밴딩이 비활성화되었을 때는 0을 반환합니다- 새 Delphi, DLL, ActiveX 밴드 렌더링 API가 모든 공개 표면에서 이 워크플로를 노출합니다
Version 3.386.0
추가
SetDisplayListCaching이 페이지의 콘텐츠 스트림을 재생 가능한 디스플레이 목록에 한 번 기록하여 이후 임의 배율이나 DPI의 렌더링이 재토큰화를 건너뜁니다. Form XObject와 Type 3 글리프 프로시저는 각각 하나의 목록을 캐시합니다GetDisplayListCacheInfo가 캐싱 활성 여부와 항목 수 및 히트/미스 카운터를 JSON으로 보고하고ClearDisplayListCache가 기록을 버리고 메모리를 회수합니다- 새 Delphi, DLL, ActiveX 디스플레이 목록 API가 모든 공개 표면에서 이 워크플로를 노출합니다
Version 3.385.0
추가
StartRenderPageJob이 격리된 인스턴스를 통해 백그라운드 작업에서 페이지를 렌더링하여 큰 페이지가 렌더링 중인 동안 호스트 스레드를 막지 않도록 합니다PauseRenderJob,ResumeRenderJob,CancelRenderJob이 협조적 취소 플래그와 렌더러에 엮인 일시정지 게이트를 통해 진행 중인 단일 페이지를 콘텐츠 스트림 연산자 경계에서 중단합니다WaitForRenderJob,GetRenderJobState,GetRenderJobResult가RENDER_JOB_STATE_*코드를 통해 작업 진행 상황과 결과를 보고합니다- 새 Delphi, DLL, ActiveX 렌더 작업 API가 모든 공개 표면에서 이 워크플로를 노출합니다
Version 3.384.0
추가
DAOpenFromURL이 바이트 범위 요청을 사용해 HTTP로 원격 PDF를 열고 리더가 실제로 접근하는 객체만 가져오며 선형화 문서의 첫 페이지 구역을 미리 가져와 1페이지가 먼저 렌더링되도록 합니다GetLinearizedURLAccessPlan이 하나의 작은 범위 요청으로 원격 URL을 탐색하고 전체 길이, 바이트 범위 지원, 선형화 여부, 페이지 수, 첫 페이지 객체와 구역 끝, 힌트 스트림 범위 및 1페이지에 필요한 바이트 범위의 병합 목록을 JSON 보고서로 반환합니다- 새
PDF_NET_OPT_NO_WARMING옵션과PDFLIB_ERROR_NET_OPEN,PDFLIB_ERROR_NET_RANGE_UNSUPPORTED,PDFLIB_ERROR_NET_HTTP오류 코드가 Delphi, DLL, ActiveX에서 네트워크 읽기를 표면화합니다
Version 3.383.0
추가
SaveQDFToFile와ConvertFileToQDF가 읽을 수 있는 객체 서식, 원본 객체 정체성 주석, 확장된 공통 콘텐츠 스트림 및 간접 복구 가능한 스트림 길이를 갖춘 사람이 편집할 수 있는 진단 PDF를 만듭니다RepairQDFFile이 편집된 스트림 길이를 다시 계산하고 크로스 참조 데이터, 트레일러 및startxref를 제자리 복구를 포함해 다시 만듭니다- 새 Delphi, DLL, ActiveX QDF API와
PDF_QDF_OMIT_ORIGINAL_OBJECT_IDS옵션이 모든 공개 표면에서 이 워크플로를 노출합니다
Version 3.382.0
추가
PDF_LINEARIZE_OBJECT_STREAMS가 제한된 객체 스트림 패킹과 압축된 기본 xref 스트림을 활성화하면서 바로 읽을 수 있는 첫 페이지 크로스 참조 데이터를 유지합니다
변경
SaveToFileOptions가Linearize와PackObjectStreams를 함께 활성화했을 때 객체 스트림 패킹을 보존합니다
수정
LinearizeFile이 동일한 입력 및 출력 경로를 지원하여 선형화 단계가 원본 바이트를 읽기 전에 잘라내는 일이 없습니다
Version 3.381.0
추가
ValidateLinearizationFile과GetLinearizationValidationReport가 Fast Web View 사전, 힌트 범위와 비트 테이블, 첫 페이지 종속성과 바이트 경계, 페이지 수 및 기본 크로스 참조 항목을 독립적으로 감사합니다
수정
- 선형화 출력이 이제 바이트 정렬 벡터, 정확한 페이지 길이 및 힌트 상대 오프셋과 함께 결정론적인 MSB 우선 페이지 오프셋 및 공유 객체 힌트 테이블을 기록합니다
- 생성된 힌트 테이블에 규격 준수 뷰어가 Fast Web View 데이터를 거부하게 만들 수 있는 무작위 비트 폭, 리틀 엔디언 필드, 불완전한 공유 그룹 행 또는 자리 표시자 콘텐츠 오프셋이 더 이상 없습니다
Version 3.380.0
추가
- 대용량 Flate 스트림을 이제 제한된 청크를 통해 압축 및 압축 해제할 수 있으며
GetEmbeddedFileContentToStream과GetEmbeddedFileContentToFile을 통한 직접 스트리밍 추출도 포함됩니다
변경
- 대용량 RC4, AES-CBC, AES-GCM 암호화 스트림 저장이 전체 임시 복사본을 만든 뒤 복호화하는 대신 정확히 미리 계산된 길이로 암호문을 대상에 직접 기록합니다
- 대용량 임베드 파일 가져오기가 저장 스트림으로 증분 압축되고 반복되는 암호화 저장이 메모리 내 원본 바이트와 스트림 메타데이터를 보존합니다
Version 3.379.0
추가
StartEditJournal, 명시적 트랜잭션 경계, 롤백, 실행 취소, 다시 실행, 기록 초기화, 상태 조회 및 충돌 복구를 Delphi, DLL, ActiveX 호출자가 사용할 수 있습니다- 영속 저널이 독립적으로 체크섬된 PDF 상태 및 커서 레코드를 덧붙이고 완전한 레코드를 저장소에 플러시하며 끝의 쓰기가 불완전하거나 손상되었을 때 마지막 완전한 커밋을 복구합니다
변경
- 실행 취소, 다시 실행, 롤백 및 복구가 선택한 문서 핸들을 보존하면서 기반이 되는 문서 객체가 교체된 일시적 핸들은 무효화합니다
- 실행 취소 메모리는 구성된 단계 수로 제한되고 스냅샷은 트랜잭션 경계에서만 직렬화되며 문서 암호는 복구 저널에 절대 기록되지 않습니다
Version 3.378.0
추가
ConvertTextToPaths가 외곽선 폰트 텍스트와 Type 3 글리프 프로그램을 선택한 페이지와 중첩 Form 전체에서 재사용 가능한 벡터 Form XObject로 변환합니다- Delphi, DLL, ActiveX 호출자가 재귀 Form 변환과 원본 폰트 리소스의 자동 정리를 선택할 수 있습니다
변경
- 변환된 콘텐츠가 텍스트 위치, 간격, 쓰기 방향, 변환, 색상 및 선 설정을 유지하면서 원본 텍스트 표시 연산자를 제거합니다
- 텍스트 클리핑 렌더링 모드와 모호한 공유 리소스 범위는 문서 객체가 수정되기 전에 거부됩니다
Version 3.377.0
추가
CopyPageRangesEx가PDF_COPY_PAGE_SMART_RESOURCES를 받아 대상 문서에 이미 있는 동등한 폰트, 이미지, 색상 공간, 패턴, 셰이딩 및 그래픽 상태를 재사용합니다PDF_COPY_PAGE_KEEP_ORDER가 기존의 순서 유지 중복 페이지 옵션에 이름을 붙이고 스마트 리소스 복사와 결합할 수 있습니다
변경
- 스마트 페이지 복사가 해싱 전에 객체 번호, 사전 키 순서, 숫자 표기 및 스트림 길이를 정규화하고 모든 일치를 구조적으로 확인하며 순환 또는 정체성 민감 그래프를 건너뜁니다
CollateDocumentsEx가 중복 리소스 그래프를 먼저 할당하지 않고 원본 문서 전체에 의미론적 리소스 재사용을 적용합니다
Version 3.376.0
추가
TrimPageContentToCropBox가 페이지 CropBox 밖에 완전히 놓인 최상위 텍스트 실행, 그려진 경로, 이미지 배치 및 Form XObject 호출 전체를 제거합니다TPDFContentProgram.TraceGraphicsStatePairs가 한 번의 재생으로 명령 전후 상태를 포착하고 호출자 소유의 추적기를 콘텐츠 계층에 걸쳐 이어갑니다- Delphi, DLL, ActiveX 호출자가 페이지 잘림 여백을 다듬고 유지되는 콘텐츠를 줄이면서 부호 있는 여백을 적용할 수 있습니다
변경
- CropBox 다듬기가 교차하거나 확인되지 않은 객체, 클리핑 경로, 텍스트 클리핑 모드 및 공유 Form 내부를 보존하고 제거된 문자열 뒤의 상대 텍스트 어드밴스를 유지합니다
Version 3.375.0
추가
TPDFStructure가 제한된 저수준 객체 파싱과 정밀한 한도 진단을 위해DecodeMaxDepth,LastDecodeStatus,LastDecodePosition을 노출합니다
변경
- PDF 배열과 사전이 페이지 콘텐츠 스트림의 중첩 피연산자를 포함하여 명시적인 제한 상태 스택을 통해 파싱됩니다
보안
- 기본 256 컨테이너 한도보다 깊은 신뢰할 수 없는 직접 객체가 스레드 스택을 소진하기 전에 거부됩니다
Version 3.374.0
추가
AddType3Font가 호출자가 정의한 행렬과 폰트 범위로 프로그래밍 가능한 Type 3 폰트를 만듭니다AddType3Glyph가 자동 메트릭, 인코딩, 너비 및 유니코드 추출 맵과 함께 바이트 코드 글리프 그래픽 프로그램을 기록합니다AddType3FontResource가 폰트, 이미지, 그래픽 상태, 셰이딩 및 기타 간접 리소스를 글리프 프로그램에 노출합니다- Delphi, DLL, ActiveX 호출자가 외부 폰트 프로그램을 설치하거나 임베드하지 않고 Type 3 기호, 스탬프 및 특수 목적 폰트를 만들 수 있습니다
변경
- Type 3 글리프 업데이트가 파생된 간결한 폰트 테이블을 제자리에서 다시 만들면서 기존 페이지 리소스가 사용하는 폰트 핸들을 유지합니다
Version 3.373.0
추가
- 구조 트리 커서가 복구와 재정렬을 거치면서도 요소 정체성을 유지하며 부모, 자식 및 형제를 탐색합니다
ReparentStructTreeCursor가 구조 요소를 이동하거나 재정렬하고 자기 부모화나 후손 순환을 거부합니다NormalizeStructTree가 자식 컬렉션을 정규화하고 부모 링크를 복구하며 직접 요소를 승격하고 잘못되었거나 중복되거나 순환인 간선을 제거합니다
변경
- 구조 트리 복구가 마크 콘텐츠 소유권과 부모 트리 매핑을 보존하여 계층 편집이 이후 저장에도 안전합니다
Version 3.372.0
추가
EnumeratePageElements가 편집 가능한 텍스트, 이미지 및 경로 콘텐츠에 대해 안정적인 수명이 짧은 핸들을 반환합니다DeletePageElement가 열거된 객체를 제거하면서 이후 상대 텍스트 위치를 보존합니다TransformPageElement가 선택한 객체 주변에 어파인 행렬을 기록하고 관련 없는 콘텐츠는 바꾸지 않습니다
변경
- 편집 가능 요소 핸들이 원본 콘텐츠 지문을 검증하고 오래되었거나 모호한 변경을 거부합니다
Version 3.371.0
추가
ExportObjectJSON이 완전한 트레일러와 간접 객체 그래프를 결정론적이고 가역적인 형식화 JSON으로 스트리밍합니다ImportObjectJSON이 객체 그래프를 검증하고 병합하거나 간접 객체 집합 전체를 대체합니다GetObjectJSON과SetObjectJSON이 Delphi, DLL, ActiveX를 통해 객체별 원자적 조사와 업데이트를 노출합니다
변경
- 객체 그래프 JSON이 모호한 JSON 강제 변환 없이 바이너리 이름, 사전 키, 문자열, 스트림, 참조 세대, 스칼라 형식 및 객체 번호 순서를 보존합니다
Version 3.370.0
추가
- 컴파일된 Arlington TSV 모델 로더가 안정적인 재사용 가능 핸들과 정의 및 규칙 수를 제공합니다
- 모델 기반 구문 검증이 객체 키, 필수 항목, 형식, PDF 버전 가용성, 직접 및 간접 참조, 허용 값 및 연결된 객체 그래프를 검사합니다
- Delphi, DLL, ActiveX API가 파일이나 기존 공유 검증 파이프라인을 검증하고 구조화된 진단 목록을 반환합니다
변경
- 구문 검증이 공유 파싱 및 객체 캐시를 재사용하고 모호한 링크는 객체 판별자로 선택하며 반복된 객체 정의 방문을 억제합니다
Version 3.369.0
추가
- 재사용 가능한 검증 파이프라인이 PDF를 한 번 열고 파싱한 뒤 공유 리더와 객체 캐시에 대해 PDF/A 및 PDF/UA 작업을 실행하거나 결합 보고서를 만듭니다
- Delphi, DLL, ActiveX API가 파이프라인 생성, 작업 실행, 보고서 생성, 파싱 횟수 조사 및 명시적 해제를 노출합니다
변경
CreatePreflightReport와CreateValidationReport가 여러 규정 준수 검사를 선택했을 때 하나의 파싱과 지연 객체 캐시를 공유합니다
Version 3.368.0
추가
AddStructureNamespace가 PDF 2.0 구조 네임스페이스를 등록하고StructTreeRoot/Namespaces를 통해 공유/Namespace사전을 기록합니다AddRoleMapNS가 하나의 네임스페이스 안에서 또는 등록된 네임스페이스 사이에서 사용자 지정 구조 형식을 매핑합니다- 기본 및 요소별 네임스페이스 선택기, 네임스페이스 조회, DLL 내보내기 및 ActiveX 메서드가 전체 워크플로를 노출합니다
변경
- PDF/UA-2 및 WTPDF 접근성 모드가 기존 및 이후 할당되지 않은 구조 요소에 PDF 2.0 표준 구조 네임스페이스를 자동으로 할당합니다
GetStructTreeItemText가/RoleMapNS체인을 해석하고 InfoID 9를 통해 요소 네임스페이스 URI를 반환합니다
Version 3.367.0
추가
SetPDFUA2Mode가 PDF/UA-2 메타데이터, PDF 2.0 버전 관리, 문서 언어, 마크 콘텐츠 안전장치 및 제목 표시 기본 설정을 활성화합니다SetWTPDFMode가 WTPDF 1.0 접근성 수준, 재사용 수준 또는 둘 다를 선언하면서 관련 없는 PDF Declarations를 보존합니다- Delphi, DLL, ActiveX 게터가 활성 PDF/UA 부분과 WTPDF 선언 마스크를 노출합니다
변경
- PDF/UA 진단이 부분 2를 인식하고
pdfuaid:rev=2024를 요구하며 PDF 2.0 최소 버전을 강제합니다
Version 3.366.0
추가
SetCryptFilterConfiguration이/StrF,/StmF,/EFF를 통해 PDF 문자열, 일반 스트림 및 임베드 파일 스트림의 암호화를 개별적으로 선택합니다- Delphi, DLL, ActiveX 게터가 대기 중인 각 암호화 대상을 노출하고 기존의 임베드 파일 전용 설정은 호환성을 유지합니다
변경
- AES 암호, 공개 키 및 지문 암호화가 하나의 암호화 필터 정책을 사용하고 보호 대상이 없는 구성을 거부하며 선택적 정책이 RC4 핸들러에 적용되지 않도록 합니다
수정
- 암호화 지문이 이제 완전한 암호화 기록을 복원하고 일반 객체 작성기로 저장하여 지문 접두사가 잘리거나 객체 콘텐츠가 이중으로 암호화되지 않습니다
Version 3.365.0
추가
- PDF 2.0 암호화되지 않은 래퍼가 표준 암호화 페이로드 메타데이터와 함께 숨겨진 초기 컬렉션 문서로 완전한 암호화 PDF를 담을 수 있습니다
- Delphi, DLL, ActiveX API가 파일, 바이너리 문자열, 스트림 또는 바이트 배열 데이터에서 암호화 페이로드를 생성, 식별, 조사 및 추출합니다
변경
- 래퍼 생성이 외부 암호화와 PDF MAC을 방지하고 핸들러 이름을 검증하며 원본 경로 노출을 피하고 페이로드 바이트를 정확히 보존합니다
Version 3.364.0
추가
TPDFlibEUTSLTrustSource가 EU LOTL 및 국가 TSL XML 서명을 검증하고 신뢰할 수 있는 서비스 스냅샷을 노출하며 시간 인식 CA 및 TSA 앵커를 제공합니다TPDFlibSignatureVerifier가 외부 신뢰 원본을 받아들여 자격을 갖춘 인증서, 전자 서명, 전자 인감 및 QSCD 상태를 서비스 출처와 함께 보고합니다
변경
- 신뢰 목록 불러오기가 고정되지 않은 서명자, 분리되었거나 모호한 서명, 약한 알고리즘, 다이제스트 변경, 지역 불일치, 오래된 목록, 잘못된 기준, 제한 없는 네트워크 또는 XML 입력에서 즉시 실패합니다
- 전체 TSL 새로 고침이 트랜잭션 방식으로 수행되고 인증서 체인 엔진이 수동 앵커와 원본 앵커를 결합하여 신뢰 목록 개정 및 검증 시간별로 재사용합니다
Version 3.363.0
추가
TPDFlibPKCS11Client가 PKCS #11 2.x 및 3.x 모듈을 불러오고 토큰을 열거하며 사용자를 인증하고 인증서와 개인 키를 짝지으며 CSP나 KSP 등록 없이 PDF 다이제스트에 서명합니다- 토큰, 슬롯, 메커니즘, 함수 테이블 및 콜백 형식이 직접 모듈 불러오기와 애플리케이션이 관리하는 함수 목록을 모두 지원합니다
변경
- RSA 서명이 원시
CKM_RSA_PKCS앞에 필요한 DERDigestInfo를 구성하고 ECDSA 서명은 요청 시 토큰의 P1363 출력을 DER로 변환합니다 - 공유 모듈 수명, 영속 세션, 보호된 인증 경로, 작업별 인증, 제한된 핫플러그 재시도 및 사전 작업 세션 복구가 HSM 신뢰성과 처리량을 개선합니다
Version 3.362.0
추가
TPDFlibCSCClient가 원격 서명 자격 증명을 찾아내고 해시 바인딩 또는 미리 가져온 서명 활성화 데이터를 얻으며 CSC API를 통해 단일 또는 일괄 다이제스트 서명을 제출합니다- 이 클라이언트가
OnExternalDigestSign에 직접 연결되어 원격 RSA 및 DER ECDSA 서명이 기존 CMS 구성, 서명 크기 산정 및 공개 키 검증 경로를 재사용합니다
변경
- 내장 HTTP 전송이 OAuth 베어러 인증을 위해 호출자가 제공한 요청 헤더를 받아들이면서 응답 크기 및 단계별 시간 제한을 유지합니다
- 자격 증명, 인가 및 서명 응답이 이제 중복되거나 잘못된 JSON 필드, 유효하지 않은 X.509 또는 Base64 데이터, 지원되지 않는 알고리즘, 일치하지 않는 일괄 크기, 오래된 활성화 데이터 및 SCAL 해시 바인딩 위반을 거부합니다
Version 3.361.0
추가
VerifyAdESHistorical과VerifyAdESHistoricalByName이 서명 타임스탬프와 문서를 덮는 타임스탬프에서 신뢰할 수 있는 역사적 기준 시각을 자동으로 도출합니다TPDFlibAdESHistoricalValidationReport가 요청 및 실효 체인 결과, 증거 원본과 시각, 아카이브 커버리지, 타임스탬프 수 및 실패별 상태를 노출합니다
변경
- 역사적 폐기 검증이 신뢰할 수 있는 전체 문서 타임스탬프가 현재 DSS 및 VRI 증거를 봉인하지 않으면 즉시 실패합니다
- 인증서 및 OCSP 검증 시각이 정확한 정수 밀리초 연산으로 Windows 파일 시간으로 변환되어 인증서 유효 기간 전환에서 경계 오차가 발생하지 않습니다
Version 3.360.0
추가
SetSignatureFieldSeedValue,AddSignatureFieldSeedCertificate,ClearSignatureFieldSeedValue가 서명되지 않은 서명 필드에 표준/SV제약을 만들고 관리합니다GetSignProcessSeedValueError가 서명을 막은 필수 필터, SubFilter, 다이제스트, 사유, 폐기 정보, 인증서, 버전 또는 지원되지 않는 제약을 정확히 보고합니다
변경
- 서명이 이제 선택한 신원을 연 뒤 필드나 출력 대상을 바꾸기 전에 필수 서명 필드 시드 값을 강제합니다
- 지원되지 않는 필수 시드 값 제약은 즉시 실패하고, 세미콜론으로 구분된 허용 값과 정확한 DER 서명자 인증서는 Delphi, DLL, ActiveX API에서 일관되게 강제됩니다
Version 3.359.0
추가
AddSignProcessRevocationCRL과AddSignProcessRevocationOCSP가 전통적인adbe.pkcs7.detached서명을 위해 서명된adbe-revocationInfoArchival속성에 검증 자료를 임베드합니다ClearSignProcessRevocationInfo가 서명이 만들어지기 전에 서명 프로세스에서 모든 아카이브 폐기 자료를 제거합니다
변경
- 단독
BasicOCSPResponse값이 성공 상태의OCSPResponse구조로 정규화되고 바이트가 동일한 CRL과 정규화된 OCSP 응답은 중복 제거됩니다 - Adobe 아카이브 폐기 속성이 Windows CryptoAPI와 최신 RSA, ECDSA, Ed25519, CNG 및 외부 다이제스트 서명 경로 모두에서 지원됩니다
Version 3.358.0
추가
SetSignProcessContentsEstimate가 기본 CMS, 캐시된 인증서 체인, 계획된 CRL 및 OCSP 자료, 예상되는 RFC 3161 토큰 및 설정 가능한 안전 여백으로 서명 자리 표시자 크기를 정합니다GetSignProcessEstimatedContentsBytes가 가장 최근 서명 시도에 선택된 정렬된 원시 바이트 용량을 보고합니다
변경
- 새 서명 프로세스가 로컬 캐시에서 추가 인증서 체인 공간을 자동으로 찾아
/Contents용량을 256바이트로 정렬하기 전에 15퍼센트 여백을 적용합니다 - CNG, HSM 및 외부 다이제스트 서명이 고정된 16 KiB 공급자 페이로드를 예약하는 대신 공개 인증서에서 RSA, ECDSA 및 Ed25519 서명 크기를 도출합니다
- 자동 추정은 네트워크 검색을 수행하지 않고 개인 키나 외부 서명 콜백을 호출하지 않습니다
Version 3.357.0
추가
SetSignProcessAppearanceTemplate이 서명자, 사유, 위치, 연락처, 날짜, 필드, 페이지 및 애플리케이션 정의 자리 표시자로 재사용 가능한 보이는 서명 레이아웃을 만듭니다SetSignProcessAppearanceVariable이 개별 서명 프로세스에 대소문자를 구분하지 않는 사용자 지정 값을 추가하고 프로세스를 다시 만들지 않고 제거할 수 있습니다
변경
- 보이는 서명 템플릿이 설정 가능한 서명 시각 형식과 이스케이프된 리터럴 중괄호를 지원하면서 기존 이미지 및 문서 타임스탬프 우선 규칙을 보존합니다
- 템플릿 확장이 제한된 입력 크기와 분할 상환 선형 출력 버퍼를 사용하여 큰 재사용 레이아웃이 반복적인 전체 문자열 복사를 초래하지 않습니다
Version 3.356.0
추가
TPDFlibSignatureVerifier가 DER 또는 파일 기반 X.509 신뢰 앵커를 추가하고 중복 없는 개수를 보고하며 Windows 인증서 저장소를 바꾸지 않고 이를 지울 수 있습니다
변경
- 비어 있지 않은 사용자 지정 신뢰 앵커 집합이 서명자 인증서와 RFC 3161 타임스탬프 검증 모두를 전용 메모리 내 루트 엔진으로 구동합니다
- 사용자 지정 집합을 지우면 이후 검사에 기본 시스템 신뢰 엔진이 복원됩니다
보안
- 사용자 지정 신뢰 검증이 Windows
Root및TrustedPeople저장소를 제외하고 임베드된 PDF 및 DSS 인증서는 신뢰할 수 없는 체인 구성 자료로 남습니다
Version 3.355.0
추가
SetSignProcessExternalDigestSigner와 파일 변형이 외부 서명자가 제공한 RSA 또는 ECDSA 결과를 중심으로 분리 CMS 서명을 만듭니다OnExternalDigestSign,DLSetExternalDigestSignCallback,SetExternalDigestSignCallback이 HSM 및 원격 서명 통합을 위한 동기 Delphi, DLL, ActiveX 콜백 표면을 제공합니다- 외부 ECDSA 콜백이 DER 서명이나 고정 폭 P1363
r || s값 중 하나를 반환할 수 있습니다
변경
- 외부 서명자가 CMS 인증 속성의 최종 다이제스트만 받고 PDF 바이트 범위와 속성이 완성된 뒤 한 번만 호출됩니다
- 자리 표시자 크기 산정이 외부 서명자를 호출하지 않고 구성된 서명 예약량을 사용합니다
- 비어 있거나 과대한 비통과 서명이 이제 빈 값이나 잘린
/Contents값을 기록하는 대신 서명 프로세스를 실패시킵니다
보안
- 외부에서 반환된 모든 서명은 PDF에 기록되기 전에 구성된 X.509 인증서에 대해 검증됩니다
Version 3.354.0
추가
SetSignProcessCNGKey와SetSignProcessCNGKeyFromFile이 소프트웨어, TPM, 하드웨어 토큰 또는 클라우드 키 저장소 공급자의 지명된 NCrypt 키로 개인 키 자료를 내보내지 않고 서명합니다SetSignProcessCNGKeyByHandle이 애플리케이션이 관리하는 키 탐색 및 정책 워크플로를 위해 호출자 소유의NCRYPT_KEY_HANDLE을 받아들입니다SetSignProcessPrivateKeyUI가 인증서에 묶인 공급자가 PIN, 동의, 토큰 또는 클라우드 승인 인터페이스를 표시할 수 있는지 제어합니다
변경
- 지명되었거나 빌려온 CNG 키가 SHA-1, SHA-2 및 SHA-3 다이제스트 suite 전체에서 RSA 및 ECDSA 분리 서명에 하나의 직접 NCrypt 서명 경로를 사용합니다
- CNG 서명 자리 표시자 크기 산정이 예비 개인 키 작업을 더 이상 수행하지 않아 중복 토큰 프롬프트, 원격 승인, 감사 항목 또는 공급자 과금이 발생하지 않습니다
- 자동 서명이 기본값으로 유지되고 대화형 모드는 자동 획득 및 서명 플래그를 제거하여 외부 공급자가 자기 인증 흐름을 완료할 수 있게 합니다
보안
- 명시적 CNG 신원이 인증서 호환 알고리즘 그룹인지 검사되고 완성된 CMS 서명은 수락되기 전에 제공된 인증서에 대해 검증됩니다
Version 3.353.0
추가
- ECDSA P-256, P-384 및 P-521 인증서로 SHA-1, SHA-2 또는 SHA-3 다이제스트 suite를 사용하여 분리 PDF 서명을 생성하고 검증할 수 있습니다
- Ed25519 서명이 Delphi, DLL, ActiveX 인터페이스를 통해 원시 시드 또는 암호화되지 않은 PKCS #8 개인 키가 있는 DER X.509 인증서를 받아들입니다
SetSignProcessDigestAlgorithm이 SHA3-256, SHA3-384, SHA3-512를 알고리즘 코드 5, 6, 7로 받아들입니다
변경
- 최신 분리 서명이 공급자가 선택한 식별자에 의존하는 대신 표준에 맞는 다이제스트 및 서명 알고리즘 식별자를 사용하는 정준 CMS 빌더를 사용합니다
- 최신 서명 검증이 레거시 CryptoAPI 알고리즘 지원 없이 분리 콘텐츠 다이제스트, 정준 서명 속성, 임베드된 서명자 신원 및 공개 키 서명을 검증합니다
보안
- Ed25519 검증이 비정준 스칼라, 비정준 점 인코딩, 저차 키, 일치하지 않는 인증서 신원 및 변경된 서명 속성을 거부합니다
Version 3.352.0
추가
EncryptPublicKey가 공유 암호 없이 여러 X.509 인증서 수신자를 위해 AES-128 또는 AES-256Adobe.PubSec문서를 만듭니다- 수신자를 DER, PEM, PKCS #12 PFX, 현재 사용자 인증서 저장소 또는 로컬 컴퓨터 인증서 저장소에서 불러올 수 있고 각자 독립적인 PDF 권한 마스크를 받을 수 있습니다
- PFX 및 인증서 저장소 자격 증명이 일반 파일, 스트림 및 문자열 불러오기 API를 통해 공개 키 암호화 문서를 엽니다
- 수신자 수, 권한 그룹 수, 인증 상태 및 자격 증명 수명 주기 제어를 Delphi, DLL, ActiveX 인터페이스를 통해 사용할 수 있습니다
수정
- ActiveX 형식 라이브러리 생성이 기존 PDF/UA, 태그 PDF, 아티팩트, 문서 언어 및 연관 파일 메서드를 유지하면서 기존 바이너리 인터페이스 슬롯을 옮기지 않고 공개 키 API를 덧붙입니다
DecryptFile이 일반 암호화 문서에 대해 전체 리더 사전 검사 없이 직접 AES-256 재작성 경로에 도달하면서도 보호된 콘텐츠가 다시 쓰이기 전에 PDF MAC 신호를 검증합니다
보안
- CMS EnvelopedData가 제한된 DER 파싱으로 검증되고 수신자 권한 그룹은 암호화된 시드 페이로드로 인증되며 모호하거나 잘못된 봉투는 전용 오류 코드로 거부됩니다
- 같은 권한을 가진 수신자가 하나의 봉투로 묶여 출력 크기와 키 유도 작업을 줄이면서 인증서별 키 전송은 유지됩니다
Version 3.351.0
추가
SetPDFMACEnabled가 필수 키 유도 솔트, 권한 신호, 바이트 범위 및 CMS 인증 데이터를 포함하여 AES-256 개정 6 및 AES-GCM 암호화 문서를 위한 독립형 PDF MAC 무결성 토큰을 만듭니다GetPDFMACStatus와ValidatePDFMAC이 Delphi, DLL, ActiveX 인터페이스를 통해 검증 결과를 노출합니다
보안
- 보호된 문서가 암호 인증 직후 페이지가 노출되기 전에 자동 검증됩니다. 토큰 누락, 잘못된 DER, 지원되지 않는 알고리즘, 불완전한 커버리지, 키 언랩 실패 및 변경된 인증 값은 전용 오류 코드로 거부됩니다
EncryptFile,EncryptFileEx,DecryptFile이 파일 수준 암호화와 검증된 복호화 워크플로 전체에서 PDF MAC 보장을 보존합니다
Version 3.350.0
추가
Encrypt,EncryptFile,EncryptFileEx가 강도 5를 받아 256비트 AES-GCM 인증 암호화, 개정 7 보안 사전 및 ISO TS 32003 확장 선언을 갖춘 PDF 2.0 문서를 만듭니다- 리더와 파일 복호화 경로가 AES-GCM 문서를 열고
EncryptionAlgorithm,GetEncryptionLevel,SecurityInfo를 통해 새 모드를 노출합니다
보안
- AES-GCM 인증 실패가 변경된 문자열이나 스트림을 거부하고
DecryptFile이 부분 출력을 제거합니다
Version 3.349.0
변경
LinearizeFile이 안정적인O(n log n)병합 패스로 큰 객체 그래프를 정렬하고 명시적 작업 스택으로 간접 종속성을 순회하여 이차시간 정렬 작업과 도달 가능 객체마다 호출 프레임이 쌓이는 일을 피합니다
수정
- 첫 페이지 구역이 이제 주석 사전과 도달 가능한 외양, 액션 및 리소스를 포함하여 Fast Web View 클라이언트가 첫 페이지 경계 너머의 객체를 가져오지 않고 첫 페이지 주석을 표시할 수 있습니다
Version 3.348.2
수정
- 라이브러리가 Win64 빌드에서 경고나 힌트 없이 컴파일됩니다. FNV-1a 문자열 해시 초기화 값이
Integer범위를 넘어 누산기가 바이트 단위로 동일한 마스크 결과를 내는Cardinal로 옮겨졌고, 컴파일러가 절대 읽히지 않는다고 증명한 열 개의 할당과 사용되지 않는 변수 하나가 제거되었습니다. 런타임 동작은 바뀌지 않았습니다
Version 3.348.1
수정
- 뷰어 컨트롤이 Delphi XE5 및 XE6에서 다시 컴파일됩니다. 모니터별 DPI 핸들러가
Winapi.Messages가 XE7 이전에 담지 않았던 메시지 상수WM_DPICHANGED를 사용했기 때문에 여전히 오래된 도구 체인을 대상으로 하는 평가판 빌드 행렬이 식별되지 않은 식별자 오류로PDFlibViewer.pas에서 중단되었습니다. 이 상수는 이제 이미 제공하지 않는 컴파일러에서만 로컬로 선언되어 런타임 DPI 처리는 그대로입니다
Version 3.348.0
추가
ConvertToPDFA가 한 번의 호출로 일반 문서를 아카이브 문서로 바꿉니다: 선택한 부분이 금지하는 것을 제거하고, 부분이 요구하는 것을 추가하며, 문서가 주장하는 부분을 명시하고, 그 결과를 검사합니다- 주장은 검사를 통과할 때만 충족된 것으로 보고됩니다. 아카이브 문서라고 말하지만 아닌 파일은 그렇지 않았다면 붙잡아 줄 시스템을 그대로 통과하므로, 판정은 시도가 아니라 검사에서 나옵니다
GetPDFAConversionReport가 수행된 일을 나열하고 문서가 여전히 부족할 때는 무엇이 걸림돌인지 밝힙니다
Version 3.347.1
수정
SanitizeDocument가 제거했다고 보고한 JavaScript를 이제 실제로 제거합니다. 패키지 목록에 첫 항목 앞의 항목을 요청해 아무것도 받지 못한 채 단 하나의 스크립트도 제거하지 않고 멈추었으므로, 정리된 문서도 열 때 스크립트가 여전히 실행되었습니다- 마지막 스크립트를 제거하면 그 뒤에 남는 빈 이름 트리도 함께 제거되어, 독자에게 문서에 스크립트가 있다고 알리는 일이 없어집니다
Version 3.347.0
추가
RepairDocumentMetadata가 PDF가 자기 작성자를 말하는 두 장소를 일치시킵니다. 검증기는 문서 정보와 XMP 패킷을 모두 읽어 둘이 어긋나는 파일을 거부하는데, 이 지점에서 실패하는 대부분의 파일은 단순히 XMP 쪽이 아예 기록되지 않은 경우입니다- 한쪽에만 값이 있을 때는 다른 쪽이 그것으로 채워지므로 이미 기록된 내용은 버려지지 않습니다
- PDF/A 모드로 설정된 문서는 표준 식별이 없어졌을 때 복구되며, 이는 호출자가 자체 패킷을 제공할 때마다 발생합니다. 식별이 없으면 검증기가 파일을 일반 PDF로 읽고 주장한 부분의 모든 규칙을 미충족으로 보고합니다
- 복구된 항목 수를 반환합니다
Version 3.346.0
추가
RecolorDocument이 문서가 그리는 그라데이션을 변환합니다. 그라데이션의 색상 공간과 그 뒤의 정지점이 함께 옮겨가므로 변환된 그라데이션이 채널을 회색 수준으로 잘못 읽은 것이 아니라 하나의 색으로 읽힙니다- 그라데이션을 그리는 패턴 안이나 페이지의 셰이딩 리소스 안에 기록된 것도 자기 객체를 가진 것만큼 잘 찾아냅니다
변경
- 샘플링 함수나 PostScript 함수로 만든 그라데이션은 그대로 남고 색상을 함수가 아니라 스트림에 담는 메시 유형도 그대로 남습니다. 그것들을 다시 쓰는 일은 색상을 변환하는 것과는 다른 작업입니다
Version 3.345.0
추가
RecolorDocument이 인덱스 이미지를 색상 테이블을 변환하는 방식으로 처리하여 모든 샘플이 이미 가진 인덱스를 그대로 유지합니다. 이런 이미지는 샘플이 어떻게 묶였거나 압축되었든 변환되며, 스크린샷이나 차트가 보통 저장되는 팔레트 이미지도 포함됩니다
Version 3.344.0
추가
RecolorDocument이 페이지가 설정하는 색상만이 아니라 그리는 이미지도 변환하여, 회색으로 바뀐 문서가 회색 페이지 위에 색 그림을 더 이상 보여 주지 않습니다- 소프트 마스크와 스텐실 마스크는 그대로 둡니다. 둘 다 색이 아니라 커버리지로 읽히며, 변환하면 페이지가 마스크를 그림으로 보여 주게 됩니다
변경
- 이미지는 구성 요소당 8비트, 장치 색상 공간, 그리고 압축 없음 또는 단순 Flate를 가질 때 변환됩니다. JPEG나 팩스 이미지는 재인코딩이 필요한데 이는 색상을 변환하는 것과 다른 작업이므로 자기 바이트를 유지합니다
Version 3.343.0
추가
- 문서 전체 또는 단일 페이지를 하나의 색상 공간으로 옮깁니다.
RecolorDocument와RecolorPage는 회색에 1, RGB에 2, CMYK에 3을 받으며 변환된 색상 수를 반환합니다 - 하나의 공간을 기대하는 인쇄소에 작업을 보내기 전이나, 색 문서를 다시 그리지 않고 회색으로 바꿀 때 유용합니다. 지오메트리, 텍스트, 이미지는 정확히 그대로 남고 색상 연산자만 바뀝니다
- 대상 공간에 이미 설정된 색상은 그대로 남으므로 색상 변경이 필요 없는 페이지는 원본 바이트를 유지합니다
- ICCBased, Separation, Indexed 또는 Pattern 공간으로 설정된 색상은 그대로 둡니다. 프로파일을 읽지 않고 변환하면 페이지를 보존하는 것이 아니라 보이는 모습을 바꾸게 됩니다
Version 3.342.0
추가
- PDF 2.0 위에 세워진 표준 부분인 PDF/A-4 아카이빙.
SetPDFAMode가 세 가지 새 모드를 받습니다: PDF/A-4에 9, 추가로 3D와 리치 미디어를 허용하는 PDF/A-4e에 10, 임의 형식의 임베드 파일을 허용하는 PDF/A-4f에 11 - 부분 4 문서는 표준이 요구하는 방식대로 식별됩니다: 부분 번호와 해당 부분이 출간된 연도로, 일반 PDF/A-4에는 규정 준수 글자가 없고 두 확장에는 E 또는 F 글자가 붙습니다
- 부분 4 문서의 모든 임베드 파일은 부분 3과 4가 모두 요구하듯 문서와 어떤 관계인지 밝힙니다
변경
- PDF/A 검사가 부분 4를 인식하고 해당 파일을 1.7이 아니라 PDF 2.0 기준으로 판단하며, 개정 연도를 밝히지 않은 부분 4 파일을 보고합니다
Version 3.341.2
수정
- PDF/A-3 및 PDF/UA 문서가 이제 각 임베드 파일이 문서와 어떤 관계인지 밝힙니다. 관계가 첨부 파일 중 첫 번째 이후에만 기록되고 마지막에는 절대 기록되지 않아, 첨부가 하나뿐인 문서 — 흔한 경우 — 에는 아무 관계도 없어 그 지점에서 검증에 실패했습니다
- PDF/UA 보고서가 관계 존재 여부를 확인할 때 마지막 임베드 파일을 더 이상 놓치지 않습니다
Version 3.341.1
수정
- PDF/A 검사가 이제 파일이 담은 표준 표시를 읽습니다. 읽지 못해 모든 파일이 무엇을 선언했든 부분 1 기준으로 판단되어, 유효한 PDF/A-2 또는 PDF/A-3 문서가 표시가 없고 버전이 너무 높다고 보고되었는데 이는 사실과 반대입니다
- 표시는 생산자가 요소로 기록했는지 속성으로 기록했는지에 관계없이 읽힙니다. 둘 다 일반적인 XMP이므로 한 형식만 받아들이면 다른 생산자의 파일이 표시 없는 것처럼 보였습니다
Version 3.341.0
수정
- 세로 텍스트가 이제 각 문자의 세로 형태를 사용합니다. 괄호, 장음 기호, 작은 가나는 텍스트가 페이지 아래로 흐를 때 다르게 그려지며 폰트가 그 형태에 이름을 붙입니다. 지금까지는 가로 형태가 그려져 괄호가 열을 따라 서 있는 대신 열을 가로질러 누워 있었습니다
- 형태는 폰트 자신의 세로 기능에서 가져오므로 문자에서 추측한 치환이 아니라 각 페이스의 디자이너가 그린 것이 제공됩니다
GetVerticalTextHeight가 그려질 형태를 측정하므로 문자 모양이 바뀌는 열도 올바르게 측정됩니다- 세로 형태에 이름을 붙이지 않은 페이스는 이전과 정확히 같게 그려집니다
Version 3.340.0
추가
- 일본어와 중국어 텍스트를 페이지 아래로 배열하는 세로쓰기.
SetVerticalWritingMode가 이를 켜면 일반DrawText호출이 아래로 흐르고GetVerticalWritingMode가 이를 보고합니다. 이전에는 텍스트를 세로로 놓으려면 모든 문자를 손수 배치해야 했습니다 - 이렇게 그린 텍스트는 페이스 자신의 세로 메트릭을 담은 세로쓰기 모드의 Type0 폰트를 거치므로, 독자가 균일한 간격이 아니라 디자이너가 의도한 거리만큼 각 문자를 진행하고 텍스트를 복사해 내면 원래 문자가 돌아옵니다
- 자체 세로 메트릭이 없는 페이스는 문자마다 1em씩 진행하며 이는 독자가 기본값으로 하는 동작입니다
GetVerticalTextHeight가 그리기 전에 문자열이 페이지 아래로 얼마나 흐를지 보고하고,DrawVerticalText는 모드를 바꾸지 않고 하나의 실행을 세로로 그립니다- 한 페이스의 가로 형태와 세로 형태는 서로 분리되어 있어 한 페이지가 둘 다 담아도 어느 쪽도 다른 쪽을 방해하지 않습니다
Version 3.339.0
추가
- 자동 태깅이 표를 다룹니다. 새 표 비트를 켜면
DrawTableRows가 표와 행, 셀을 구조 트리에 옮겨 독자가 표 전체를 무관한 텍스트의 나열로 읽는 대신 값이 어느 열에 있는지 말할 수 있습니다 SetTableHeaderRowCount가 앞의 몇 행이 머리글인지 지정하고GetTableHeaderRowCount가 이를 보고합니다. 그 행은 열 범위를 담은 머리글 셀로 기록되며 이것이 독자가 자기가 있는 값의 제목을 말할 수 있게 합니다- 이렇게 지정된 머리글 행은 제자리에 남습니다. 각 페이지 상단에서 반복하는 것은
DrawTaggedTableRows로 내리는 레이아웃 결정으로 남습니다
변경
AUTOTAG_DEFAULT가 텍스트, 페이지 부속물, 그림에 더해 표까지 다룹니다. 모드를 숫자로 넘기면 언제나 그랬던 의미가 유지됩니다
Version 3.338.0
추가
- 자동 태깅이 이미지를 다룹니다. 새 그림 비트를 켜면 그려진 이미지가 구조 트리에서 그림이 되어 독자가 침묵으로 지나치는 대신 그것에 도달합니다
RegisterFigure가 다음 이미지가 담을 설명을 지정합니다. 독자는 그림 대신 그 설명을 읽으며 이것이 시각장애 독자가 그림에서 얻는 전부입니다RegisterDecoration은 다음 이미지가 의미 없는 구분선, 테두리, 배경임을 알리고, 그것은 레이아웃 아티팩트 안에 그려져 아무 말 없는 이미지를 알리는 대신 독자가 건너뛰게 합니다- 두 설정 모두 이미지 하나에서 소진되므로 이후 이미지가 이전 이미지를 위한 설명을 물려받는 일이 없습니다
변경
AUTOTAG_DEFAULT가 텍스트와 페이지 부속물에 더해 그림까지 다루어 기본값을 요청하는 것이 셋 모두를 요청하는 것이 됩니다. 모드를 숫자로 넘기면 언제나 그랬던 의미가 유지됩니다RegisterHeading으로 등록된 제목이 이제 자기가 이름 붙인 텍스트를 기다립니다. 그 사이에 그려진 이미지는 그림이 되고 제목은 뒤따르는 텍스트를 위해 남으며, 제목 수준을 자기가 가져가는 일이 없습니다
Version 3.337.1
수정
BeginTag만으로 만든 문서가 이제 태그됨으로 표시됩니다. 이제까지 그런 파일은 아무 독자도 보지 않는 완전한 구조 트리를 담고 있었습니다. 독자는 카탈로그가 다르게 말하지 않는 한 문서를 태그 없는 것으로 여기기 때문입니다(ISO 32000-1 §14.7.1). 보조 기술은 페이지에 구조가 전혀 없는 것처럼 알렸습니다- 표시는 구조 트리가 실제로 기록될 때만 추가되므로 태그 없는 문서는 여전히 태그 없음으로 보고되고, 호출자가 내린
SetMarkInfo설정은 그대로 남습니다
Version 3.337.0
추가
- 자동 구조 태깅.
SetAutoTagMode는 일반 그리기가 자기 구조를 담게 하는 모드를 켭니다: 텍스트는 단락이 되고,RegisterHeading바로 뒤에 그려진 텍스트는 그 수준의 제목이 되며, 반복 머리글과 바닥글은 독자가 건너뛰는 아티팩트가 됩니다. 접근 가능한 문서를 만들려면 이전에 모든 그리기 호출을BeginTag와EndTag로 손수 감싸야 했습니다 - 모드를 켜면 문서가 태그됨으로 표시되며 이는 독자가 구조를 존재하는 것으로 다루기 전에 필요합니다
- 자동 태깅은 손으로 연 태그 안에서는 비켜나므로 문서의 일부는 호출자가 기술하고 나머지는 라이브러리에 맡길 수 있고, 둘이 서로 중첩되지 않습니다
- 아티팩트 안의 것은 태그되지 않고 빈 텍스트는 요소를 열지 않으므로, 둘 다 독자가 빈 것으로 알릴 구조 요소를 만들어낼 수 없습니다
Version 3.336.0
추가
- 하나의 단락을 여러 상자, 열, 페이지에 걸쳐 흘려 보내는 텍스트 흐름.
NewTextFlow가 텍스트를 받고DrawTextFlow가 들어맞는 만큼 상자를 채우며, 흐름은 담지 못한 첫 단어에서 멈추므로 다음 상자가 정확히 그곳에서 이어받습니다 MeasureTextFlow가 아무것도 그리지 않고 주어진 너비에서 남은 텍스트에 몇 줄이 필요한지 보고하여, 레이아웃을 확정하기 전에 크기를 정할 수 있습니다- 한 줄도 담을 공간이 없는 상자는 아무것도 가져가지 않고 흐름을 그대로 두므로 상자를 제안해도 텍스트를 잃지 않습니다
SetTextFlowMinLines가 정한 수의 줄을 함께 유지합니다: 그보다 적게만 담을 수 있는 상자는 아무것도 가져가지 않고 줄들을 넘겨, 열 하단에 한 줄만 홀로 남기는 일이 없습니다GetTextFlowRemaining,TextFlowFinished,RewindTextFlow가 진행 상황을 보고하고 초기화합니다. 이전에는 상자를 그리면 넘친 내용이 무엇이 사라졌는지 알 방법 없이 버려졌습니다
Version 3.335.0
추가
- 자동 목차. 본문을 쓰는 동안 제목이
RegisterHeading으로 등록되고,DrawTOC가 그 뒤에 이를 배치합니다: 각 항목은 수준별로 들여쓰이고, 점 행이 오른쪽 정렬된 페이지 번호까지 이어지며, 행 전체가 제목으로 연결됩니다 - 제목은 자기가 가졌던 페이지 번호가 아니라 가리키는 위치를 기억하므로, 완성된 본문 앞에 목차 페이지를 삽입해 참조하는 모든 페이지 번호가 다시 매겨져도 모든 항목과 링크가 올바르게 유지됩니다
MeasureTOC가 그리기 전에 목록에 필요한 페이지 수를 보고하고DrawTOC가 배치한 항목 수를 반환하여, 한 페이지보다 긴 목록은 이미 배치된 수와 함께 다시 호출해 그릴 수 있습니다PopulateOutlineFromHeadings가 같은 제목을 수준별로 중첩된 문서 책갈피로 바꿉니다- 페이지 번호가 남기는 공간에 비해 너무 넓은 제목은 번호 밑으로 흐르도록 내버려 두는 대신 한 글자씩 줄여 말줄임표를 붙입니다
Version 3.334.1
수정
- 앞에 페이지를 삽입한 뒤 페이지를 선택하면 삽입 전 그 번호를 가졌던 페이지에 도달하므로, 기존 문서에 앞부분 자료를 그리면 잘못된 본문 페이지에 쓸 수 있었습니다. 페이지 선택이 이제 새 번호 매김을 따릅니다
Version 3.334.0
추가
GetSignatureModificationVerdict가 서명된 문서에 대해 독자가 실제로 품는 질문에 답합니다: 이 서명 뒤에 덧붙은 갱신은 인증 수준이 허용하는 것인가? 인증 서명은 허용 수준을 담고 있고 판정은 이후 모든 개정을 그 기준으로 검사하여, 검증 자료 추가는 허용됨으로 읽히고 페이지 재작성은 그렇지 않게 됩니다GetSignatureEffectiveMDPLevel가 실효 수준을 보고하고GetSignatureModificationDetail이 답 뒤에 있는 개정과 변경 종류를 밝힙니다- 판정은 "아무것도 덧붙지 않음", "허용된 변경만 있음", "허용되지 않는 것이 있음", "판단할 수 없음", "서명이 개정 경계에서 끝나지 않음"을 구별합니다. 마지막은 바이트가 서명이 덮는다고 주장하는 범위 안에 있다는 뜻입니다
- 의심은 결코 승인으로 보고되지 않습니다: 구조를 검증할 수 없는 인증, 영향 받는 필드를 추적할 수 없는 필드 잠금, 읽을 수 없는 것을 담은 개정, 서명 범위 너머에 인식 가능한 개정을 이루지 않는 바이트는 모두 허용됨이 아니라 판단 불가로 보고됩니다
변경
- 아무것도 설명해 주지 않는 간접 배열은 장부 정리가 아니라 판단 불가로 보고됩니다. 페이지의 주석 목록이나 콘텐츠 목록은 배열이며, 하나를 다시 쓰면 모든 사전은 그대로 둔 채 문서가 보여 주는 내용이 바뀝니다
Version 3.333.0
추가
- 증분 개정 검사. 서명은 그것이 기록된 개정의 바이트를 덮고, 그 후에 추가되는 모든 것은 별도의 갱신이며 그 내용이 서명이 현재 문서에 대해 여전히 유효한지를 결정합니다.
GetDocumentRevisionCount,GetDocumentRevisionStart및GetDocumentRevisionEnd가 그러한 개정들을 배치하고,GetSignatureRevisionIndex가 서명이 어느 개정에서 끝나는지 말합니다 GetDocumentRevisionKind는 갱신이 한 일을, 그것이 다룬 객체 중 가장 영향이 큰 것으로 보고합니다. 즉, 장부 정리, 검증 자료, 문서 타임스탬프, 서명, 양식 필드, 주석 또는 문서 내용입니다. 따라서 장기 검증을 위한 검증 자료 추가는 더 이상 문서 편집처럼 보이지 않습니다GetDocumentRevisionChanges는 갱신이 추가, 변경 또는 삭제한 모든 객체를, 각각이 무엇인지, 그리고 변경된 사전의 경우 실제로 어떤 키가 다른지와 함께 나열합니다GetDocumentRevisionsComplete는 전체 기록이 복구 가능한지 보고합니다. 끊어지거나, 순환하거나, 리더가 따를 길이보다 긴 체인은 가장 오래된 갱신을 보지 못한 채로 남기며, 그럴 때 카운트는 답이 아닌 하한이 됩니다- 이전 버전을 읽을 수 없거나 스트림 본문이 비교된 적 없는 객체는 무해한 것이 아니라 미정으로 보고됩니다. 사전을 그대로 둔 채 페이지를 다시 쓰는 갱신은 재포장으로 오인되지 않습니다
Version 3.332.0
추가
ApplyPAdESLongTermValidation은 이미 서명된 PDF를 한 번의 호출로 PAdES-B-LT로 승격시킵니다. 서명 자체에서 서명자 인증서 경로를 구축하고, 인증서가 지정한 주소를 통해 각 링크의 OCSP 및 CRL 자료를 수집하며, 서명을 위한 VRI 항목과 함께 인증서와 폐기 데이터를 단일 증분 갱신으로 문서 보안 저장소에 기록합니다.ApplyPAdESLongTermValidationToStream은 결과를 파일 대신 스트림에 기록합니다- 이 동작은
PADES_LTV_*옵션 마스크를 통해 구성 가능합니다. VRI 항목을 기록할지, OCSP 응답자에 문의할지, CRL로 대체할지, 경로를 완성하기 위해 발행자 주소를 따를지, 그리고 자기 발행 루트에 대한 폐기 확인을 건너뛸지 여부입니다 - 빈 필드 이름은 모든 서명을 하나의 개정으로 처리하고, 명명된 필드는 그 하나만 처리합니다
GetPAdESLTVCertificateCount,GetPAdESLTVCRLCount,GetPAdESLTVOCSPCount및GetPAdESLTVError는 마지막 호출이 무엇을 수집했고 왜 중단했는지 보고하므로, 도달할 수 없는 응답자에 대한 부분 결과가 조용히 무시되지 않고 보입니다- 이미 준비된 것과 동일한 자료는 한 번 기록되고 그것이 필요한 모든 서명에서 참조되며, 읽을 수 있는 인증서를 휴대하지 않는 서명은 성공적인 승격으로 가장되지 않고 보고됩니다
Version 3.331.0
추가
- 서명은 자체 인증 경로를 휴대하므로, 장기 검증 프로필에 필요한 자료는 서명된 파일만에서 읽을 수 있습니다.
GetSignatureSignerCertificateDER,GetSignatureEmbeddedCertificateCount및GetSignatureEmbeddedCertificateDER는 서명이 삽입하는 인증서를 반환하고,GetSignatureCertificateChainLength와GetSignatureCertificateChainDER는 그것들을 서명자로부터 바깥쪽으로 향하는 경로로 정렬합니다 GetSignatureContentsHashHex는AddPAdESDSSVRI항목이 주소 지정되는 키를 서명 자체에서 계산하여 반환합니다- 서명이 발행자와 일련 번호로 서명자 인증서를 식별하든 주체 키 식별자로 식별하든 서명자 인증서가 일치되며, 경로는 서명이 실제로 휴대하는 마지막 발행자에서 멈추고 완전한 척하지 않습니다
수정
- DER 리더는 최대치에 가까운 값이 경계 검사를 감싸게 내버려 두는 대신, 데이터보다 큰 선언된 요소 길이를 거부하며, 인증서 확장 탐색은 더 이상 잘리거나 지나치게 긴 인증서의 끝을 넘어 읽지 않습니다. 둘 다 조작된 문서에서 도달 가능하므로 위의 접근자들은 신뢰할 수 없는 입력에서도 안전합니다
- 서명 접근자는 공유 핸들로 문서를 읽으므로, 검증자나 뷰어가 이미 파일을 열고 있는 동안에도 응답하며 서명이 없는 것처럼 실패하지 않습니다
Version 3.330.0
추가
- OCSP 상태 요청
BuildOCSPRequest는 인증서와 발급자에 대한 RFC 6960 요청을 인코딩하고,FetchOCSPResponse는 이를 응답자에게 게시하여 응답을 반환하며,AddPAdESDSSOCSPFromCertificates는 두 작업을 모두 수행한 뒤 결과를 문서 보안 저장소에 보관합니다 - 응답자 주소는 선택 사항입니다 생략하면 인증서 자체에 명시된 주소를 사용하므로 인증서 체인이 있는 호출자에게는 추가 구성이 필요하지 않습니다
- 실제로 서로 연관되지 않은 인증서 쌍은 아무것도 전송하기 전에 거부되어, 응답자가 이러한 요청에 보내며 해지 문제처럼 보일 수 있는 "unknown" 응답이 생성되지 않습니다
- 성공한 응답만 저장됩니다 응답자가
tryLater또는unauthorized로 응답하면 상태 응답인 것처럼 보관하지 않고GetTimeStampError를 통해 보고합니다
Version 3.329.0
수정
- 연속 열거 호출에서 하나의 결과 배열을 재사용해도 이후 호출이 채우지 않은 배열 슬롯에 보관된 문자열이 더 이상 누수되지 않습니다 이는 이후 호출이 배열 용량보다 적은 항목을 반환할 때마다 문서화된 "개수를 얻기 위해 한 번 호출하고 크기를 조정한 뒤 다시 호출" 패턴에 영향을 주었으며, 남겨진 텍스트가 프로세스 수명 동안 누적되었습니다
- 영향을 받는 진입점에는
EnumPageContentStates,EnumPageContentStatesEx,EnumAttachments,EnumDocumentFonts,EnumPageElements,EnumNamedDestinations,EnumSignatures,EnumFormFields,GetFormValues,GetTextInAreaEx및 텍스트 검색, 양식 필드 동작, 인증서 열거 호출이 포함됩니다
변경
- 해당 호출의 결과 배열 매개변수는 이제
var로 전달되며 이전의out전달 방식을 대체합니다 기존 Delphi 및 C++Builder 코드는 변경 없이 컴파일되고 링크되며, 눈에 보이는 유일한 차이는 반환된 개수 이후의 배열 슬롯이 알림 없이 비워지지 않고 이전 값을 유지한다는 점입니다
Version 3.328.0
추가
- 이제 인증서가 상태 확인 위치를 라이브러리에 알려 줍니다
GetCertificateOCSPURLs,GetCertificateIssuerURLs및GetCertificateCRLURLs는 인증서에서 응답자, 발급 인증서 및 CRL 주소를 읽으므로 장기 검증 자료를 구성할 때 특정 기관의 게시 위치를 미리 알 필요가 없습니다 FetchRevocationMaterial은 해당 주소에서 자료를 다운로드하고,AddPAdESDSSCRLFromURL및AddPAdESDSSCertificateFromURL은 한 단계로 자료를 다운로드하여 문서 보안 저장소에 보관합니다- 디렉터리 이름이나 메일 주소처럼 가져올 수 있는 리소스를 지정하지 않는 주소는 다운로드 가능한 항목으로 보고하지 않고 건너뜁니다
Version 3.327.0
추가
- 기본 제공 RFC 3161 타임스탬프 클라이언트
SetTimeStampServer및SetTimeStampOptions는 기관, 해시 알고리즘, 요청 정책, nonce 사용 및 시간 제한을 구성하며,FetchTimeStampToken은 모든 다이제스트에 대한 TimeStampToken을 반환합니다 ApplyPAdESSignatureTimeStamp는 한 번의 호출로 PAdES-B-T 서명을 완료합니다 서명 값을 해시하고 구성된 기관에서 토큰을 가져와 서명 타임스탬프 특성으로 첨부하므로 호출자가 직접 연결해야 했던 기존 3단계 교환을 대체합니다- nonce를 사용하면 토큰이 동일한 값을 되돌려 주는지 검사하므로 재생되거나 대체된 응답을 문서에 포함하지 않고 거부합니다
GetTimeStampStatus및GetTimeStampError는 기관'의 자체 상태와 실패 텍스트를 보고하므로 거부된 요청의 원인을 확인할 수 있습니다
Version 3.326.0
추가
- PDFium 렌더러가 이제 GDI+ 및 Cairo 렌더러와 동일한 이미지 형식을 기록합니다
RenderPageToFile,RenderPageToStream및RenderPagesToFiles는SelectRenderer(3) 이후 BMP(옵션 0), JPEG(1), PNG(5), GIF(6), TIFF(7) 및 G4 TIFF(10)를 허용하며 더 이상 BMP만 허용하지 않습니다 SetJPEGQuality로 설정한 JPEG 품질과 활성 TIFF 압축 설정이 이제 PDFium 출력에도 적용되므로 렌더러를 전환해도 생성되는 파일의 인코딩이 바뀌지 않습니다
수정
- 이전에는 PDFium 렌더러에서 PNG 또는 BMP 이외 형식을 요청하면 0을 반환하고 빈 파일을 남겼습니다 렌더러 선택을 제공한 애플리케이션은 PDFium이 선택된 엔진일 때마다 알림 없이 읽을 수 없는 출력을 만들었습니다
- PDFium 렌더러에 생성할 수 없는 메타파일 형식(WMF, EMF, EPS, EMF+, HTML5)을 요청하면 이제 BMP만 가능하다고 표시하지 않고
LastRenderError를 통해 사용 가능한 형식을 보고합니다
Version 3.324.0
변경
- PDFium 렌더러는 이제 하나의 상주 버퍼 대신 스트리밍 데이터 소스를 통해 문서를 엔진에 제공합니다 이전 렌더링 및 인쇄에서는 문서를 직렬화한 뒤 문자열로 다시 복사하여 페이지마다 문서 크기의 두 배만큼 메모리를 사용했지만, 이 복사가 사라지고 PDFium은 필요한 블록만 읽습니다
- 페이지 범위를 파일로 렌더링할 때 페이지마다 한 번씩이 아니라 전체 일괄 처리에서 문서를 한 번만 구문 분석하므로 긴 범위에서 기록하는 이미지마다 전체 파일을 다시 읽지 않습니다
- 스트리밍 진입점을 내보내지 않는 이전 PDFium 빌드는 메모리 내 경로를 통해 변경 없이 계속 작동합니다
수정
- 렌더러 스모크 테스트가 선택적 PDFium 및 Cairo 라이브러리를 한 디렉터리 위에서 찾아 두 엔진을 알림 없이 건너뛰었지만, 이제 올바르게 찾아 실제 렌더링 경로를 실행합니다
Version 3.323.0
추가
CreateValidationReport와SaveValidationReport는 구조화된 PDF/A 및 PDF/UA-1 검증 보고서를 XML 또는 JSON으로 생성합니다. 각 발견 항목은 규칙 id, 이를 관장하는 표준, 짧은 규칙 이름, 이행하는 ISO 조항, 심각도, 영향받는 객체 수를 담고 있으며, 보고서는 표준별 및 문서 수준의 합격/불합격 통계로 마무리됩니다- 요청되지 않은 표준은 자동 합격이 아니라
not-checked로 보고되므로, 부분 실행이 정상 완료로 오인되지 않습니다 - 빌드 파이프라인은 이제 산문体的 부분 문자열 일치 대신 규칙 id나 ISO 조항을 기준으로 게이트할 수 있습니다. 프리플라이트 보고서군은 먼저 사람용 보고서를 렌더링한 뒤 그 텍스트를 JSON, HTML, CSV로 변환하지만, 검증 보고서는 원시 검사 출력에서 조립되어 기계 판독 가능한 필드를 그대로 보존합니다
Version 3.322.0
추가
- 참조 문서가 이제 전용 페이지가 없던
TPDFlib표면 전반에 사용되는 4개의 외부 선언된 공개 형식을 문서화합니다:TPDFlibProgressEvent,TPDFlibLogger,TPDFlibCertificateInfo,TPDFlibWatermarkBase로, 공개 이벤트, 로거, 열거 결과, 워터마크 형식에 대한覆盖를 완성합니다
Version 3.321.0
추가
CheckDocumentPolicy는Fonts.NotEmbedded = 0,Security.Encrypted = no,Document.Pages <= 500과 같은 선언적 사내 규칙을 문서에 대해 평가하고, 각 규칙을 실제 값과 함께 합격 또는 불합격으로 보고합니다. 이를 통해 출판사, 아카이브, 인쇄소의 수집 게이트를 손으로 작성한 검사 코드가 아닌 구성으로 표현할 수 있습니다
Version 3.320.1
수정
- PDF/A 모드에서 폰트를 먼저 로드하지 않고 텍스트를 그려도 더 이상 fault가 발생하지 않습니다. PDF/A는 모든 폰트 프로그램의 임베딩을 요구하므로 내장 폰트로의 암묵적 지름길이 거부되었고 선택된 폰트가 남지 않아,
DrawText와 다른 텍스트 호출이 그리는 대신 충돌했습니다 - 암묵적 폰트 경로는 PDF/A 모드가 활성인 동안 실제 임베드 가능한 페이스를 해석하므로, 명시적
AddTrueTypeFont호출 없이 그려진 텍스트는 임베드되어 적합 상태를 유지합니다. PDF/A 하에서 직접AddStandardFont호출은 여전히 거부됩니다 - 임베드 가능한 페이스를 해석할 수 없는 호스트에서는, 그리기가 fault 대신 내장 메트릭으로 폴백하고
LastErrorCode605를 통해 적합성 부족을 보고합니다. 이로 인해 파일이 적합한 것으로 게시되기 전에 잡을 수 있습니다
Version 3.320.0
추가
GetDocumentFeatureReport는 한 번의 호출로 구조화된 기능 보고서를 반환합니다 — 문서 메타데이터, 페이지와 객체 수, 암호화 상태, 폰트와 이미지 인벤토리, 태깅과 아웃라인, 양식 필드, 서명, 첨부파일, 카테고리별 바이트 내역 — 으로, 카탈로그화나 수집 파이프라인이 이전에 조립해야 했던 1다스의 개별 쿼리를 대체합니다
Version 3.319.0
추가
SetCollectionView,AddCollectionField,SetCollectionSort,SetCollectionItemValue는 기존 첨부파일 위에 PDF 포트폴리오를 구축합니다. 이로 인해 임베드된 파일 집합이 단순한 첨부 목록이 아니라 자체 열, 정렬 순서, 파일별 값을 갖는 탐색 가능한 패키지로 표시됩니다GetCollectionView와GetCollectionFieldCount는 로드된 포트폴리오의 표시 모드와 선언된 열 수를 보고합니다
Version 3.318.1
수정
- 텍스트 추출 옵션 12(회전 텍스트 무시)는 이제 회전 방향에 관계없이 회전된 실행을 버립니다. 시계 방향으로 4분의 1회전과 반시계 방향으로 4분의 1회전이 이전에는 다르게 처리되었으므로, 옆으로 누운 여백 메모가 한 방향에서는 버려지고 다른 방향에서는 반환되었습니다
- 같은 옵션은 합성 이탤릭처럼 단지 기울어지기만 한 텍스트를 유지하며, 허용 오차가 이제 텍스트 크기와 페이지 변환에 따라 조정되므로, 큰 기울어진 제목이 회전된 것처럼 버려지지 않습니다
Version 3.318.0
추가
DecodeAllStreams는 문서의 압축된 스트림을 제자리에서 확장합니다. 저장하면 콘텐츠 스트림, 메타데이터, 구조를 diff 도구, 포렌식 검토, 지원 워크플로가 직접 읽을 수 있는 사본이 생성됩니다. 이미지, 예측 스트림, 교차 참조 스트림은 인코딩을 유지하고, 객체 스트림은 먼저 구체화되므로 아무것도 손실되지 않습니다
Version 3.317.0
추가
SetTrapped와GetTrapped는 PDF/X가 요구하는 문서 트래핑 상태를 선언하고 읽으며, 사양이 요구하는 텍스트 문자열이 아니라/Trapped이름으로 작성됩니다SetOutputIntentSubtype과GetOutputIntentSubtype은 출력 인텐트를 재태깅합니다. 이로 인해 로드된 색상 프로필이 PDF/A 모드가 생성하는GTS_PDFA1보관 조건 대신GTS_PDFX인쇄 조건을 기술할 수 있습니다
Version 3.316.0
추가
SetEncryptEmbeddedFilesOnly와GetEncryptEmbeddedFilesOnly는 AES 암호화를 임베드된 파일로 제한합니다. 문서는 비밀번호 프롬프트 없이 임의의 리더에서 열리고 렌더링되는 반면 첨부파일은 암호화된 상태로 유지됩니다. 이는 표지는 공개이되 페이로드는 비공개인 청구서, 의료 기록, 사례 파일을 위한 표준 배열입니다
Version 3.315.0
추가
- 텍스트 추출 옵션 18은 90, 180, 270도로 그려진 실행을 수평 읽기 프레임으로 회전시키고 각 4분의 1회전을 개별적으로 그룹화합니다. 이로 인해 회전된 여백 메모, 표 헤더, 차트 축 레이블이 똑바로 선 텍스트와 교차하거나 버려지는 대신 읽을 수 있는 줄로 추출됩니다
수정
DASetTextExtractionOptions는 옵션 16(하이픈 제거)과 옵션 17(문자 간격 단어 분할)을 거부하는 대신 수용하며, 직접 액세스 추출 경로는 옵션 15, 16, 17을 추출기로 전달합니다. 이로 인해 밑줄 규칙 제거, 하이픈 제거, 문자 간격 분할이 로드된 문서와 동일하게 파일 핸들에도 적용됩니다
Version 3.314.0
추가
GetFontHasToUnicode는 선택된 폰트가 Unicode 매핑을 갖는지 보고하며, 폰트 인벤토리에는 일치하는 폰트별HasToUnicode필드와NoToUnicodeCount요약이 추가됩니다. 이로 인해 처리 전에 문서를 추출에 안전하고 PDF/A-*u 또는 PDF/UA 변환 가능한 폰트인지 검사할 수 있습니다
Version 3.313.0
추가
SetPDFAMode에 PDF/A-2u(ISO 19005-2 Level U)를 위한 모드 8이 추가되었습니다. 이는 임베드된 파일을 허용하지 않으면서 Unicode 텍스트 매핑을 선언하는 적합 수준으로, 기존 2b와 2a 모드와 함께 PDF/A-2 제품군을 완성합니다
Version 3.312.0
추가
GetObjectByPath와GetObjectByPathCount는Root/Pages/Kids[0]/MediaBox[2]나pages[0]/Type과 같은 경로 표현식을 통해 객체 트리의 임의 노드를 읽습니다 — 형식, 스칼라 값, 직렬화된 형태, 요소 수를 한 번의 호출로 얻어, 메타데이터 프로브, 컴플라이언스 표본 검사, 지원 진단을 위한 손으로 작성한 객체 순회를 대체합니다
Version 3.311.0
추가
SetBlackPointCompensation은 PDF 2.0의/UseBlackPtComp그래픽 상태를 통해 후속 그리기에 대해 블랙 포인트 보상(ON, OFF, Default)을 선언합니다. 이로 인해 프리프레스와 교정 출력이 이전에는 뷰어 전용이던 어두운 톤의 ICC 변환을 고정할 수 있습니다. 문서 버전은 자동으로 올라가며 PDF/A 모드는 이 상태를 거부합니다
Version 3.310.0
추가
SetCompressionLevel과GetCompressionLevel은 라이브러리가 수행하는 모든 압축의 deflate 수준을 노출합니다: 0은 기본 SIMD 가속 엔진을 유지하고, 1은 처리량을 선호하며, 9는 아카이브를 가장 작게 압축합니다RecompressStreams는 선택된 문서의 모든 일반 FlateDecode 스트림을 현재 수준에서 다시 deflate하고 스트림별로 더 작은 인코딩을 유지합니다. 이로 인해 원래 빠른 압축 설정으로 작성된 문서가 콘텐츠를 건드리지 않고 축소됩니다
Version 3.309.0
추가
SetObjectStreamMode와GetObjectStreamMode는 3상태 객체 스트림 제어를 추가합니다: 비활성, 생성(기본값), 보존이며, 보존은 로드된 파일의 원래 압축 그룹화를 유지하고 컨테이너를 있는 그대로 기록하여 기존 PDF 1.5+ 파일의 변환이 아무것도 풀리거나 재그룹화되지 않기 때문에 더 저렴해집니다
변경
- 보존 모드에서는 로드 이후 편집된 멤버가 최상위 객체로 승격되어 변경 사항이 저장되며, 나머지 압축 멤버는 자동으로 이진 교차 참조 스트림 형식을 선택합니다
Version 3.308.0
추가
CheckDocumentStructure는 한 번의 호출로 구조 건강 검사를 실행합니다. 모든 객체와 스트림이 해당 디코더를 통과하고, 일반 Flate 스트림은 zlib 종료 표식에 대해 엄격히 검증되어 잘린 데이터가 잡힙니다. 보고서는 누락된 트레일러, 해결할 수 없는 카탈로그와 페이지, 지원되지 않는 암호화 핸들러, 바이트 스캔으로 복구된 파일을 객체별 발견 항목과 요약 줄로 표시합니다
Version 3.307.0
수정
- 교차 참조 스트림을 사용하는 손상된 문서가 이제 성공적으로 복구됩니다. 원시 재구성은 압축된 객체 스트림의 멤버를 복구하고, 파일 어디에도 트레일러 키워드가 없을 때는 가장 최근에 도달 가능한 문서 카탈로그에서 트레일러를 합성하므로, 깨진 startxref 오프셋이 더 이상 그런 파일을 열 수 없게 만들지 않습니다
Version 3.306.0
추가
ExportDocumentData는 문서 정보 키, 전체 책갈피 트리, 페이지 레이블 범위를 클래식 dump_data 줄 형식의 편집 가능한 일반 텍스트로 기록합니다ImportDocumentData는 같은 형식을 다시 적용합니다 — 정보 키가 업데이트되고, 책갈피 트리가 중첩 수준과 대상 페이지로 재구축되며, 페이지 레이블 범위가 교체됩니다 — 이로 인해 각 방향으로 한 번의 호출로 문서 간 일괄 책갈피 편집과 메타데이터 마이그레이션이 가능합니다
Version 3.305.0
추가
AuditDocumentSpace는 문서의 바이트 사용량을 카테고리별로 분류합니다 — 이미지, 폰트 프로그램과 사전, 콘텐츠 스트림, 양식 XObject, 객체 스트림, 임베드된 파일, 메타데이터, 구조 트리, 주석, 페이지 트리 및 기타 — 객체 수, 바이트 총계, 백분율과 함께, 파일이 왜 그만큼 큰지, 어느 최적화가 가장 보람 있는지를 답합니다
Version 3.304.0
추가
StructTreeItemCount,GetStructTreeItemText,GetStructTreeItemIntProperty는 태그된 문서의 구조 트리를 평탄화된 깊이 우선 항목 목록으로 읽습니다 — 요소 형식(원본과 역할 매핑됨), 대체 및 실제 텍스트, 언어, 제목, 표시 콘텐츠 id, 페이지 번호 및 부모/자식 관계
변경
- 구조 트리 리더는 손상된 문서로부터 보호합니다: 참조 순환, 범위를 벗어난 객체 번호, 64수준을 초과해 중첩된 트리는 루프하는 대신 잘립니다
Version 3.303.1
수정
StampText와StampImage가 만든 반투명 밑바탕 스탬프는 더 이상 불투명도를 원래 페이지 콘텐츠로 번지지 않습니다 — 투명도 상태가 이제 스탬프 자체로 한정되어 페이지가 온전한 불투명도를 유지합니다
Version 3.303.0
추가
OverlayDocumentPages는 다른 열린 문서의 페이지를 선택된 문서의 페이지에 스탬프합니다, 타겟 페이지당 하나의 소스 페이지를 기존 콘텐츠 위 또는 아래에 — 레터헤드 용지, 연속 페이지 배경, 스캔된 양식 템플릿을 한 번의 호출로- 소스 고갈은 구성 가능합니다: 중지, 소스 페이지를 순환, 마지막 소스 페이지를 반복, 중 하나이며, 추가 옵션은 스탬프가 자연 크기 이상으로 확대되는 것을 막습니다
변경
- 문서 스탬프는 타겟 페이지의 CropBox에 맞춰지고
/Rotate항목을 갖는 페이지에는 똑바로 배치되며, 각 소스 페이지는 공유 Form XObject로 한 번만 임포트되므로 반복된 템플릿이 자원을 중복하지 않습니다
Version 3.302.0
수정
- AES-256 비밀번호가 이제 해싱 전에 SASLprep (RFC 4013)으로 처리됩니다. 이로 인해 비 ASCII 공백, 소프트 하이픈, 호환 문자 또는 조합 시퀀스를 포함한 비밀번호가 Acrobat 및 기타 적합 리더에서 올바르게 열립니다
- AES-256 문서를 열 때 표준 준비된 비밀번호를 먼저 시도하고 기존 바이트 형식으로 폴백하므로, 비 ASCII 비밀번호로 이전 릴리스가 작성한 파일이 계속 열립니다
추가
- 오류 코드 604는 금지된 코드 포인트를 포함하거나 양방향 규칙을 위반하여 SASLprep에 거부된 AES-256 비밀번호를 보고합니다
Version 3.301.0
추가
SplitDocumentToFiles는 선택된 문서를 각각 고정된 수의 페이지를 갖는 출력 파일 배치로 분할합니다.%p파일 이름 자리 표시자를 사용합니다
변경
- 배치 분할은 소스 문서를 한 번만 분석하고 모든 청크를 동일한 메모리 내 구조에서 복사하여,
ExtractFilePages에 대한 루프가 각 범위마다 수행하던 반복된 전체 재분석을 대체합니다
Version 3.300.0
추가
CollateDocuments는 여러 열린 문서의 페이지를 선택된 문서에 로테이션으로 병합하며, 각 라운드마다 각 소스에서 구성 가능한 수의 페이지를 취합니다 (A1, B1, A2, B2, …)CollateDocumentsEx는 소스별 페이지 범위 목록을 받아들이며,3-1과 같은 내림차순 범위가 소스를 반전시키므로, 앞면과 뒤집힌 뒷면 스캐너 패스를 한 번의 호출로 읽기 순서로 병합할 수 있습니다
변경
- 병합 정렬은 각 소스를 단일 객체 맵을 통해 임포트하고 페이지 재정렬로 교차하므로, 소스 내에서 공유되는 폰트와 이미지는 그룹 크기에 관계없이 한 번만 기록됩니다
Version 3.299.0
추가
SetDeterministicDocumentID와GetDeterministicDocumentID는 트레일러 파일 식별자를 재현 가능한 값으로 전환하여, 동일한 입력이 동일한 출력 바이트를 생성하므로 빌드 캐싱, 콘텐츠 주소 지정 가능 저장소, 바이트 수준 회귀 비교에 사용할 수 있습니다SetDocumentIDSeed는 재현 가능한 파일 식별자에 명시적 시드를 제공합니다. 시드가 없으면 식별자는 문서 메타데이터, 버전 헤더, 페이지 수에서 파생됩니다
변경
- 재현 가능한 파일 식별자는 전체 저장 시에만 새로고침됩니다. 증분 업데이트와 암호화된 문서는 기존 식별자를 유지하므로 서명과 비밀번호로 보호된 파일이 계속 올바르게 열립니다
Version 3.298.0
추가
AddLinkToArticleThread와SetOutlineArticleThread는 표준 Thread 액션으로 페이지 핫스팟과 아웃라인을 아티클 스레드 또는 비즈에 연결AddActionNextArticleThread와PDF_ACTION_BUILDER_THREAD는 체인, 양식, 페이지 및 문서 액션 워크플로에 Thread 액션을 추가
변경
- Thread 액션 대상은 안정적인 간접 스레드 및 비즈 참조를 사용하고 대상 컨테이너를 변경하지 않고 잘못된 인덱스를 거부
- 양식 필드 액션 빌더는 PDF/A 모드가 활성화된 동안 추가 액션을 거부하여 필드 및 위젯
/AA사전에 대한 PDF/A 금지를 유지
Version 3.297.0
추가
DL플랫 DLL 참조가 이제 모든A접미사 ANSI(char) 진입점을 문서화하며, Unicode 대응 항목을 정확한PAnsiCharDelphi 및const char *C 시그니처로 미러링하는 353개의 참조 페이지를 추가BufferUtilities,DirectAccessFunctionality,MiscellaneousFunctions를 공유 카테고리 체계로 구동되는 깔끔한 함수 그룹 색인 페이지로 재구축하고, 깨진 마크업, 잘못 표시된 섹션, 누락된 칩을 수정- 탐색 색인과 공유 검색 색인이 Unicode와 ANSI 호출자 모두에 대해 전체 DLL 표면을 포괄
수정
- 소스에 일치하는 기호가 없는 오래된
SetLogger항목을 제거했으며, 문서화된 속성은Logger
Version 3.296.0
추가
AddAlternateImage,AlternateImageCount,GetAlternateImageInfo,RemoveAlternateImage가 표시 및 인쇄 이미지 변형의 형식화된 작성과 검사를 제공- 대체 이미지는 선택적 콘텐츠 그룹 또는 멤버십 사전과 연결될 수 있으며, 베이스 이미지당 하나의 변형을 인쇄 기본값으로 선택할 수 있음
변경
- 내장 렌더러는 베이스 이미지가 숨겨져 있을 때 선택적 콘텐츠 대체 이미지를 선택하고, 인쇄 대상에서는 인쇄 기본값을 준수
FindImages가 페이지 리소스에서 도달 가능한 대체 이미지 XObject를 등록하여 가져온 변형이 사용 가능한 이미지 핸들을 받도록 함
Version 3.295.0
추가
AddArticleThread가 형식화된 메타데이터, 정렬된 페이지 사각형, 순환 비즈 링크, 페이지별 비즈 배열로 표준을 준수하는 아티클 탐색을 생성ArticleThreadCount,GetArticleThreadInfo,GetArticleThreadBead가 생성되거나 가져온 아티클 스레드를 검사하며 손상된 링크 순환을 제한적으로 순회
변경
DeletePages가 모든 비즈를 잃은 아티클 스레드를 제거하고 남은 스레드의 순환 링크를 복구- 삭제된 페이지 추적이 안정적인 간접 페이지 참조를 유지하여 페이지 트리 커서가 이동함에 따라 아웃라인과 아티클 정리가 어긋나지 않도록 함
Version 3.294.0
추가
SearchTextBatch는 각 페이지 추출이 상주하는 동안 여러 텍스트 쿼리를 검색하고 모든 히트와 함께 발원 0 기반 쿼리 인덱스를 반환SearchTextBatchEach는 스트리밍 콜백을 통해 동일한 단일 패스 검색을 제공하며 진행 보고와 취소를 지원
변경
- 단일 쿼리와 배치 텍스트 검색이 하나의 매칭 코어를 공유하여 대소문자 구분, 전체 단어, 페이지 범위 의미를 유지하면서 반복된 페이지 추출, 텍스트 접기, 히트 기하 작업을 회피
Version 3.293.1
수정
- 메시 셰이딩 래스터화가 어떤 Delphi 버전에서도 컴파일에 실패하지 않으며, GDI+ 페인터의 실수에서 부동소수점으로의 캐스트에 대한
E2089 Invalid typecast를 해결 - 병렬 배치 페이지 렌더링이
System.Threading을 사용할 수 없는 Delphi XE5와 XE6에서 컴파일되며, 오래된 툴체인은 비 Windows와 마찬가지로 직렬 렌더링 경로로 대체 - 프린터 기능 프로브가
SetPrinter호출을 나머지 인쇄 코드와 정렬하여 레거시 Delphi 버전에서 호환되지 않는 형식 오류를 더 이상 발생시키지 않음 - 인증서 저장소 열거가 RAD Studio 10.3 Rio에서 빌드되며, 이전에는 열거 루틴을 최적화하는 동안 내부 컴파일러 오류로 중단되었음
Version 3.293.0
추가
- 선택적 콘텐츠 멤버십 사전을
AnyOn,AllOn,AnyOff,AllOff호환 정책으로 생성, 갱신, 열거할 수 있음 - 중첩된 PDF 1.6
/VE가시성 식이 Delphi와 C++Builder가 공유하는 간결한 접두 표현을 통해And,Or,Not을 지원
변경
- 선택적 콘텐츠 범위, 콘텐츠 스트림, 캡처된 페이지, 이미지, 양식 필드, 주석이 이제 그룹 핸들 또는 멤버십 핸들 중 하나를 허용
- 렌더링은 유효한
/VE식을 먼저 평가하고, 잘못되었거나 지원되지 않는 식은/OCGs와/P로 대체
수정
- 중첩된 선택적 콘텐츠가 둘러싸는 그룹이나 멤버십이 숨겨져 있을 때 콘텐츠를 표시하지 않게 됨
- 유효한 선택적 콘텐츠 그룹이 없는 멤버십 사전은 PDF 사양이 요구하는 대로 가시성을 변경하지 않음
Version 3.292.0
추가
EnumAttachments가 문서와 주석 첨부 파일 모두에 대해 생성 및 수정 날짜, 16진수 체크섬, 관련 파일 관계, 파일 사양 객체 번호를 보고ValidateAttachmentChecksum가 요청 시 저장된 체크섬에 대해 첨부 페이로드를 검증하며, 새로 임베드된 파일은 자동으로 체크섬 메타데이터를 받음
수정
SetEmbeddedFileAFRelationship가 단일 첨부 문서를 포함하여 나머지 첨부 API와 동일한 1 기반 임베드 파일 인덱스를 허용
Version 3.291.0
추가
DeduplicateResources가 로드된 문서 전체에서 정확히 중복되는 이미지, Form, 패턴, 셰이딩, 함수, ICC 프로필, 글꼴 프로그램, CMap, Type 3 CharProc, 임베드 파일, 메타데이터, PostScript 스트림을 통합- 리소스 중복 제거는 독립적인 형식 플래그, 드라이런 분석, 선택적 고아 수집, 상세한 해싱, 비교, 페이로드, 참조, 카테고리별 통계를 제공
변경
- 중복 감지는 전체 스트림 사전을 키 순서에 관계없이 정규화하고, 각 후보 페이로드를 SHA-256으로 한 번 해시하며, 참조를 리디렉션하기 전에 일치하는 버킷을 바이트 단위로 확인
- 정확히 동등한 그룹은 결정적 출력을 위해 가장 낮은 객체 번호와 세대를 유지하며, 잘못된 직접 객체 순환과 의미론적 사전 차이는 병합되지 않은 상태로 남음
Version 3.290.0
변경
PurgeUnusedResources가 타일링 패턴, Type 3 글리프, 주석 모양 상태, ExtGState 소프트 마스크 그룹, 이미지, 셰이딩, 중첩된 색상 공간 전체에서 전이적 종속성 클로저를 계산- 기본 정리 옵션이 패턴, Type 3, 모양, 소프트 마스크, 이미지 종속성 분석을 활성화하며, 더 좁은 스캔이 필요한 호출자를 위한 독립적인 플래그를 제공
- 중첩된 콘텐츠 프로그램과 종속성 항목은 캐시되고, 공유 리소스 범위는 가지치기 전에 사유화되며, 잘못된 순환은 활성 스트림과 깊이 가드로 제한됨
수정
- 이미지 색상 공간, Indexed 베이스, Separation 또는 DeviceN 대체, Pattern 기반 공간, ICCBased 대체, 셰이딩 사전을 통해서만 사용되는 페이지 리소스가 더 이상 미사용으로 제거되지 않음
- Type 3 CharProcs, 타일링 패턴 셀, 주석 모양, 투명도 소프트 마스크 그룹에 의해서만 사용되는 리소스가 자체 또는 상속된 범위에서 더 이상 제거되지 않음
Version 3.289.0
추가
PurgeUnusedResources가 선택된 콘텐츠 레이어에서 참조되지 않는 명명된 페이지 리소스를 제거하며 상세한 카테고리별 통계를 반환할 수 있음- 리소스 정리가 페이지 범위, 드라이런 보고, 진행 및 취소, 재귀적 Form XObject 분석, 더 이상 사용되지 않는 ProcSet 제거, 선택적 고아 객체 수집을 지원
변경
- 리소스 분석이 PDF 이름 대소문자 구분, 상속된 Form 리소스, 사용자 정의 인라인 이미지 색상 공간, 일곱 가지 표준 리소스 카테고리를 모두 따름
- 반복된 Form 프로그램은 캐시되고, 사용된 리소스 집합은 정렬된 조회를 사용하며, 사전 항목은 대규모 문서 성능을 예측 가능하게 하기 위해 내림차순으로 제거됨
수정
- 사전 항목 제거가 대형 사전 키 인덱스를 무효화하여 이후 조회가 오래된 항목을 반환하지 않도록 함
- 잘못된 스트림과 알 수 없는 연산자는 기본적으로 전체 리소스 범위를 유지하며, 공유 또는 상속된 리소스 사전은 변경 전에 복제됨
Version 3.288.0
추가
- 디지털 서명이 완전한 DocMDP 인증과 FieldMDP 필드 잠금 구조를 내보낼 수 있으며, 선택된 각 서명에 대한 구조적 권한 보고서를 제공
- RFC 3161 문서 타임스탬프, 서명 타임스탬프, PAdES-B-T 토큰 주입, 인증서 체인 검증, OCSP 증거, DSS 또는 VRI 검증 자료에 완전한 작성과 검증 워크플로가 있음
- RichMedia 주석이 임베드된 자산, 활성화 및 비활성화 설정, 포스터 모양, 열거, 추출, 제거를 지원
- 포스터 인쇄가 벡터 페이지 부과, 겹침 및 crop marks, 하드 마진 인식 배치, 재사용 가능한 타일 계획을 지원
- 태그가 지정된 표가 안정적인 식별자, 헤더 연관, 범위, 반복 헤더, 장식의 아티팩트화를 통해 의미론적 Table, TR, TH, TD 구조를 내보냄
- 뷰어가 텍스트, 선택, 확인란, 라디오, 누름 단추 필드에 대해 키보드로 접근 가능한 AcroForm 편집을 제공하면서 호스트 애플리케이션에 액션을 전달
변경
- Type 1 함수 기반 셰이딩과 Type 4부터 7까지의 메시 셰이딩이 네이티브 함수 평가와 제한된 메시 테셀레이션을 통해 렌더링
- ICCBased 색상 렌더링이 보정된 색상 공간 동작을 유지하면서 이미지와 셰이딩 전체에서 캐시된 변환을 공유
- 증분 저장이 객체 스트림과 교차 참조 스트림을 일관되게 재구축하고, 선택된 서명은 자체 서명된 개정판에 대해 검증됨
수정
- SHA-1 서명 타임스탬프 요청이 SHA-256으로 대체되는 대신 서명자 서명 값을 SHA-1로 해시
- 거부된 필드 잠금 교체가 이전에 유효했던 필드 잠금 구성을 더 이상 폐기하지 않음
- 중복된 모양 상태 이름을 가진 라디오 위젯이 선택된 위젯을 유지하고 형제 위젯을 꺼진 상태로 유지
Version 3.287.0
변경
- 인라인 이미지 사전이 PDF 주석, 구분 기호, 리터럴, 16진수, 배열, 사전 경계를 따르며 제한된 중첩을 가짐
- 인라인 이미지 페이로드가 raw, DCT, ASCII85, ASCIIHex, RunLength, Flate 데이터에 대해 형식 인식 종료를 사용
- Flate 페이로드 발견이 콘텐츠 스트림 오프셋에서 정확한 압축 바이트 회계와 함께 하나의 제한된 inflate를 수행하며, 연쇄된 무손실 필터는 종단 간 출력 상한을 공유
- ASCII85, ASCIIHex, LZW, 예측자, 색상 프로필, 보조 이미지 스트림이 과도한 임시 할당 없이 제한된 중간 출력을 강제
수정
- 잘못되거나 잘린 인라인 이미지가 소스 데이터를 넘어 읽거나, 종료되지 않은 값에서 반복하거나, 디코더 재사용 간에 오래된 상태를 유지하지 않음
- 패킹된 이미지 행이 바이트 반올림 전에 구성 요소 비트를 계산하여 저비트 RGB와 다중 행 이미지의 잘못된 길이를 방지
- 리소스 색상 공간이 원래 이름을 유지하면서 Lab, 간접 ICCBased, DeviceN 구성 요소 수를 도출하고 Indexed 팔레트 스트림을 엄격한 제한 하에 디코딩
- 인라인 이미지 경계가 잘못된 치수, 비트 깊이, 지원되지 않는 필터, 안전하지 않은 필터 체인, 압축 스트림, 모호한 종료 마커를 일관되게 거부
- Indexed 색상 렌더링이 모든 팔레트 접근을 검증하고 디코딩된 표를 넘어 읽는 대신 잘린 조회 데이터를 거부
- PNG 예측자 10부터 15가 Flate와 LZW 스트림에 대해 올바르게 디코딩되고, 잘못된 행 필터를 거부하며, 할당 전에 모든 행과 상태 크기를 검증
- JPEG과 JPEG 2000 페이로드가 이미지 할당 전에 인코딩된 치수, 구성 요소, 정밀도, 마커 구조, 박스 길이, 디코딩된 저장 공간을 검증
- 인라인 이미지 검증이 패킹과 확장된 비트맵 저장을 모두 제한하고 ICC 프로필, JBIG2 글로벌, 터미널 필터 매개변수를 제한
- 종료 마커 텍스트를 포함하는 바이너리 필터 페이로드가 제한된 형식 검증을 통과하는 첫 번째 후보까지 계속
Version 3.286.0
변경
- 콘텐츠 스트림 토큰화가 이제 PDF 공백, 주석, 구분 기호, 리터럴 문자열, 16진수 문자열 및 이름 경계를 따릅니다
- 텍스트 분할 및 리소스 대체가 이제 기하급수적으로 확장되는 출력 버퍼를 사용하여 큰 콘텐츠 스트림을 선형 처리합니다
- 재사용 가능한 콘텐츠 스트림 처리기가 이제 모든
Process호출 전에 파생 출력 및 파서 상태를 재설정합니다
수정
- 잘못되거나 잘린 리터럴 및 16진수 문자열이 더 이상 원본 버퍼 너머를 읽거나 추가 빈 토큰을 내보내지 않습니다
- 리소스 대체가 이제 대소문자를 구분하는 PDF 이름 의미 체계를 보존하고 선택적 선행 슬래시를 허용하며 중복 매핑을 결정적으로 업데이트합니다
- 스트림 시작 부분의 XObject 및 셰이딩 피연산자는 이제 텍스트 출력에서 제외되며, 일치하지 않는 복원 연산자는 이후에 저장된 그래픽 상태를 더 이상 취소하지 않습니다
Version 3.285.0
변경
- LZW 인코딩은 이제 상수 시간 사전 조회와 버퍼링된 스트림 쓰기를 사용하며, 디코딩은 기하급수적 출력 확장이 있는 압축 접두사 및 접미사 테이블을 사용합니다
- Flate 예측자 디코딩은 이제 출력 버퍼에서 행을 직접 처리하며 임의의 색상 수를 사용하는 패킹, 8비트 및 16비트 TIFF 샘플을 지원합니다
- 저장된 Deflate 스트림은 이제 정확히 미리 크기가 지정된 결과에 기록하고, zlib 래퍼는 압축 또는 압축 해제에 실패할 때 임시 버퍼를 안전하게 해제합니다
수정
- LZW 코드 너비 변경이 이제 9비트부터 12비트 코드까지 PDF
EarlyChange의미 체계를 따르며 사전 재설정과EarlyChange=0을 포함합니다 - LZW 디코딩은 이제 원본 버퍼 너머를 읽지 않고 유효하지 않은 미래 코드와 잘린 비트 스트림을 거부합니다
- PNG 예측자는 이제 픽셀의 올림 바이트 너비를 사용하고 이전 디코딩 행을 보존하며 부분적인 마지막 행을 안전하게 채웁니다
- TIFF 예측자 디코딩이 이제 LZW 및 Flate 경로 모두에서 1비트, 2비트, 4비트, 8비트 및 16비트 성분을 일관되게 처리합니다
Version 3.284.0
변경
- 버퍼 검색이 이제 고정 64 KiB 블록을 스캔하고 집합 멤버십에 바이트 조회 테이블을 사용하며 모든 검색 경로에서 호출자의 위치를 보존합니다
- Unicode, Latin-1, 16진수 다이제스트 및 ARC4 변환이 이제 문자열이나 임시 배열을 반복해서 늘리지 않고 제한된 출력을 한 번 예약합니다
- ASCII85 인코딩은 이제 32 KiB 블록으로 입력 스트림을 읽으며, 디코딩은 정확한 정수 산술을 사용하고 미리 크기가 지정된 출력 버퍼에 직접 기록합니다
- MD5 문자열 해싱이 이제 임시 메모리 스트림을 사용하지 않고, 다이제스트 비교는 모든 바이트를 검사하며, ARC4 키 스케줄링은 더 이상 확장 키 배열을 할당하지 않습니다
수정
DistanceToAnyByte가 이제 같은 접두사를 다시 읽고 건너뛴 바이트를 과다 계산하지 않고 첫 번째 블록 너머의 올바른 오프셋을 반환합니다- 스트림 기반 버퍼 읽기가 이제 사용자 지정 스트림에서 반환한 실제 바이트 수를 준수하여 수신한 바이트만큼만 결과를 줄이고 위치를 진행합니다
- 버퍼 길이를 줄이면 이제 현재 위치가 범위 내로 제한되고 nil 포인터 또는 스트림 원본은 유효하지 않은 메모리를 노출하지 않고 빈 입력처럼 동작합니다
- Latin-1 디코딩이 이제 0x7F-0xFF 바이트를 대체하지 않고 0x00-0xFF의 전체 바이트 범위를 매핑합니다
- ASCII85 디코딩이 이제 유효한 최대 32비트 그룹
s8W-!을 보존하고 부동 소수점 경계 손실 없이 첫 번째 종료 표시에서 중지합니다
Version 3.283.0
추가
TPDFlibSignatureVerifier가 이제 서명 필드와 CMS 서명자를 열거하고 파일, 스트림 또는 문자열을 열며 선택한 필드와 서명자를 인덱스 또는 필드 이름으로 검증할 수 있습니다- 상세 검증 보고서는 이제 암호학적 무결성을 서명된 개정 범위, 현재 파일 범위, 이후 개정, 엄격한 Contents 간격 검증 및 네이티브 암호화 오류와 구분합니다
변경
- 분리 CMS 검증은 이제 완전한 PDF를 메모리에 구체화하지 않고 제한된 청크로 두 ByteRange 세그먼트를 Windows CryptoAPI에 스트리밍합니다
- 중첩 AcroForm Kids 배열 아래의 서명 필드와 상속된
/FT /Sig항목은 이제 정규화된 이름으로 열거되며 직접 서명 값 사전도 지원됩니다
수정
- ByteRange 검증이 이제 오버플로, 겹침, 잘림, 선택한 16진수
/Contents토큰과 정확히 일치하지 않는 간격 및 자체%%EOF에서 끝나지 않는 서명된 개정을 거부합니다 - 선택한 CMS 서명자 식별자와 발급자 및 일련번호가 정확히 일치하지 않으면 인증서 조회가 더 이상 관련 없는 포함 인증서로 대체되지 않습니다
- 상호 참조 스트림을 사용하는 증분 업데이트가 이제 상호 참조 스트림 개체 자체의 유형 1 항목을 포함하므로 서명 후 엄격한 PDF 검증기가 누락된 자체 항목을 보고하지 않습니다
Version 3.282.1
변경
- 전체 저장이 이제 살아 있는 개체 그래프에서 가져온 개체 스트림을 다시 만들고 비공개 트레일러 루트를 보존하며 구조 개체 번호를 재사용하지 않고 자유 개체 세대를 유지합니다
- 상호 참조 스트림이 이제 큰 파일에 맞게 오프셋 필드 크기를 정하고 페이로드를 미리 할당하며 자체 항목과 트레일러 확장 키를 보존합니다
수정
- 개체 스트림 패킹이 이제 xref 스트림으로만 전환하지 않고 실제
/ObjStm컨테이너와 유형 2 멤버 항목을 기록합니다 - 가비지 컬렉션이 더 이상 누락된 개체 번호를 오프셋 0의 사용 중 항목으로 기록하지 않으며 일반 텍스트 및 스트림 상호 참조 모두에 연결된 자유 개체 체인을 내보냅니다
- 불러온 패킹 PDF를 이제 오래된 개체 스트림 유지, 활성 멤버 손실 또는 상호 참조 복구 없이 패킹을 켜거나 끈 상태로 반복 저장할 수 있습니다
Version 3.282.0
추가
- 가져온 ICCBased 색상이 이제 벡터 페인팅, 함수 및 메시 셰이딩, 인덱스 팔레트, 원시 비트맵, CCITT 및 JBIG2 이미지, CMYK JPEG 이미지와 JPEG 2000 이미지 전체에서 포함 ICC 프로필을 사용합니다
변경
- ICC 변환이 이제 다중 선형 보간이 있는 제한된 Windows Color System 조회 테이블을 사용하여 이미지 렌더링 중 사용하던 임시 PNG 왕복을 대체합니다
- 렌더러가 이제 콘텐츠 스트림 및 그래픽 상태 렌더링 의도, ICCBased
/Range, 이미지/Decode및 원본 도메인 색상 키 마스크를 준수하며 프로필 채널 수를 PDF 색 공간 사전과 대조하여 검증합니다 - 동일한 프로필과 렌더링 의도를 반복 사용하면 이제 벡터 색상, 패턴, 셰이딩 및 이미지에서 하나의 조회 테이블을 공유합니다
수정
- 암호화된 ICC 프로필 스트림은 이제 디코딩 중에만 복호화되고 이후 복원되며, 포함 프로필은 이미지 출력을 기록할 때 더 이상 두 번 압축되지 않습니다
Version 3.281.0
추가
- 기본 제공 GDI+ 렌더러가 이제 투명도와 클리핑을 포함하여 가져온 PDF 함수 기반 셰이딩과 자유 형식, 격자, Coons 및 텐서 메시 셰이딩(유형 1 및 4-7)을 그립니다
- 셰이딩 사전이 이제 GDI+ 및 Cairo 렌더러 전체에서 성분 Function 배열, 보정된 Lab, CalGray 및 CalRGB 공간, Separation 및 DeviceN 색조 변환, PatternType 2 Background 채우기와 BBox 클리핑을 지원합니다
변경
- 유형 1 셰이딩 함수가 이제 좁은 기능의 정확도를 높이고 일정하거나 부드러운 영역의 작업량을 줄이는 추가 1/4 셀 프로브와 함께 제한된 적응형 색상 샘플링을 사용합니다
- 메시 셰이딩 주변의 PatternType 2 행렬이 이제 GDI+와 Cairo 모두에서 정확히 한 번 합성되어 이동, 배율 조정 및 회전된 패턴 배치를 보존합니다
- 메시 색상 성분이 이제 Function 평가와 RGB 변환 전에 원본 색 공간에서 보간되어 비선형 함수, DeviceCMYK 그라데이션 및 관리형 색상 변환의 올바른 순서를 보존합니다
- Coons 및 텐서 표면이 이제 제한된 장치 픽셀 오류 세분화를 사용하여 큰 렌더 크기에서 곡률이 높은 출력을 더 부드럽게 만듭니다
- 암호화된 셰이딩 및 Function 스트림은 문서 암호화 콜백을 통해 디코딩되며 유형 5 꼭짓점 레코드는 필수 바이트 정렬을 준수합니다
Version 3.280.1
수정
- 병합 목록에 PDF가 아닌 파일이 나타나면
MergeFileList/MergeFileListFast/MergeFileListStrict에서TSmartPDFReader/TSmartPDFDocument쌍과 그 소유 항목이 누수되었습니다 판독기와 문서가 이를 해제하는try블록 전에 생성되어 잘못된 파일 콘텐츠의 구문 분석 실패 시 주변 예외 처리기가 정리하지 못하고 이미 생성된 판독기가 고립되었습니다 이제 단일 파일 및 다중 파일 사전 스캔 경로 모두에서 보호하는try안에서 생성합니다 - 메시 셰이딩 구문 분석(
TPLMeshShading.Parse, 셰이딩 유형 1 및 4-7)에서 매번 디코딩된/Function개체가 누수되었습니다 모든 조기 종료 경로와 정상 완료에서 해제하지 않았으며, 이제finally블록에서Parse종료 방식과 관계없이 함수를 해제합니다 TPDFlibSignDoc.Close가 이제 스마트 판독기, 문서 및 정보 필드를 해제한 뒤 nil로 설정하고,Open,OpenStream및OpenString의 예외 경로는 스트림 참조만 지우지 않고 부분적으로 생성된 스마트 개체도 해제하여 서명 대상을 여는 중간에 실패할 때의 누수를 방지합니다
Version 3.280.0
추가
- 오류 범주 열거형
TPDFlibErrorCategory(ecSuccess/ecStructure/ecSave/ecCrypto/ecGeneric/ecCompliance/ecAcroForm)를 기존 숫자LastErrorCode분류 체계 위에 추가하여 호출자가 코드 범위를 외우지 않고도 실패를 분류할 수 있습니다TPDFlib.LastErrorCategory,TPDFlib.ErrorCategory(Code)및TPDFlib.ErrorMessage(Code)를 통해 노출됩니다 - 호출자가 하나의 일반 실패 대신 "필드가 잠김"과 "해당 필드 없음"을 구분할 수 있도록 사람이 읽을 수 있는 메시지가 있는 양식 필드 오류 코드 701-704(필드 없음, 필드 읽기 전용, AcroForm 없음, 값이 유효하지 않음)를 추가했습니다
- 읽기 전용 가드를 우회하는
SetFormFieldValueForced강제 쓰기 변형을 추가했으며, 호출자가 명시적으로 제외하지 않을 때 대량 가져오기에서 잠긴 필드를 계속 덮어쓸 수 있도록SetFormValues(SkipReadOnly=False)가 내부적으로 사용합니다
변경
SetFormFieldValue가 이제 실패 시 알림 없이 0을 반환하지 않고LastErrorCode를 701/702/703(필드 없음 / 읽기 전용 / AcroForm 없음)으로 설정합니다LastErrorCategory는 소모하지 않는 읽기이므로 호출자가 숫자 코드를 가져오기 전에 범주를 검사할 수 있습니다
Version 3.279.0
추가
ReplacePageRanges는 대상 페이지 수나 대상 페이지 개체 ID를 변경하지 않고 열려 있는 다른 문서의 시각적 페이지 콘텐츠로 바꾸며 해당 페이지에 이미 연결된 책갈피, 링크, 주석 및 양식 위젯을 보존합니다
변경
- 문서 간 페이지 복사에서 요청한 범위를 가져오기 전에 더 이상 추가 자리표시자 페이지를 만들고 제거하지 않습니다
Version 3.278.0
추가
PrintPagesAdvanced는 하나의 프린터 프로필과 하나의 인쇄 작업을 유지하면서 임의의PrintPages범위 표현식에 부수, 한 부씩 인쇄, 양면, 방향, 색상, 품질, 용지 크기 및 입력 용지함 설정을 적용합니다
변경
- 고급 인쇄 설정은 작업 시작 전에 검증되며, 명명된 네 가지 프리셋보다 큰 양의 인쇄 품질 값은 DPI로 적용되고, 용지 또는 입력 용지함 식별자는 해당
DEVMODE필드가 지원하는 전체 양수 범위를 사용할 수 있습니다
수정
- 손상된 상호 참조 복구가 이제 Win64에서 기존
TStream.Read재정의를 통해 제한된 블록 읽기를 전달하여 계측 및 사용자 지정 스트림 동작을 보존하면서 64 KiB 순차 I/O를 유지합니다
Version 3.277.0
변경
- 손상된 상호 참조 복구가 이제 일치 문자마다 탐색하지 않고 64 KiB 순차 블록으로 원본 데이터를 스캔하여 보조 메모리를 제한하면서 큰 PDF 파일과 비메모리 스트림까지 확장합니다
- 복구는 완전한 간접 개체 토큰을 검증하고 주석, 문자열 및 스트림 안의 개체 유사 데이터를 건너뛰며 뒤따르는
endobj토큰으로 스트림 끝을 확인하고 읽기 경계에 걸친 헤더를 보존하며 마지막 유효 트레일러 사전을 선택합니다
수정
- 트레일러 재구성이 이제 중첩 사전과 리터럴 문자열 안의 구분 기호 텍스트를 지원하며 더 이상 첫 2048바이트 또는 처음 보이는
>>쌍에서 잘리지 않습니다
Version 3.276.0
추가
ActivateWebLinks및ActivateWebLinksEx는 페이지마다 기존 페이지 텍스트를 한 번 스캔하고 선택 가능한 감지 및 테두리 옵션으로 HTTP, HTTPS,www., FTP,mailto:및 단독 이메일 대상에 중복되지 않는 URI 링크 주석을 만듭니다- 생성된 링크는 일치한 문자 도형, 허용되는 경우 회전 또는 기울어진 텍스트의 정밀 사변형, PDF/A 인쇄 플래그, 진행 및 취소 지원과 선택 페이지 복원을 사용하며 태그 지정 PDF 및 PDF/UA 문서는 불완전한 구조 트리 업데이트에서 보호됩니다
변경
SetAutoCreateWebLinks가 이제 새로 그린 텍스트의 링크를 만들 때 동일한 경계 인식 감지기와 대상 정규화를 사용하며www., FTP 및 단독 이메일 지원을 추가합니다
수정
- 주석
/Contents, 이름, 날짜, 제목 또는 주제 속성을 업데이트해도 기존 동작 사전의 하위 유형을 더 이상 덮어쓰지 않으므로 URI 및 기타 동작이 주석 메타데이터 변경 후에도 유효합니다
Version 3.275.0
추가
ExtractPageRangeText,SavePageRangeTextToStream및SavePageRangeTextToFile은 호출자 정의 페이지 구분 기호를 사용하여 구문 분석된 페이지 범위를 한 번의 순회로 추출합니다 스트림 및 파일 출력은 UTF-8 데이터를 증분 기록하므로 큰 문서에 문서 전체 크기의 텍스트 버퍼가 필요하지 않습니다SetPageBoxRange및RemovePageBoxRange는 호출자가 선택한 페이지를 유지하면서 표준 페이지 범위 구문에 페이지 경계 변경을 적용합니다SetPageTransitionRange및SetPageTransitionRangeEx는 페이지별 진행 및 취소 지원과 함께 레거시 또는 확장 프레젠테이션 전환을 페이지 범위에 적용합니다GeneratePageThumbnails은 요청한 페이지를 재사용 가능한 메모리에 직접 렌더링하고 중간 파일이나 중첩 진행 작업 없이/Thumb이미지를 연결합니다
Version 3.274.0
수정
- 축 방향 셰이딩 패턴의 GDI+ 렌더링이 이제 PDF
/Extend배열을 준수합니다SetupGDIPlusPattern은 양쪽 끝 중 하나가 확장되면 Cairo 백엔드와 동일하게WrapModeClamp를 전달하고 항상WrapModeTile을 사용하지 않으므로 끝 색상이 그라데이션 축 바깥 영역을 올바르게 칠합니다
추가
- 세로 스크롤 막대를 끌 때 표시되는 스크롤 힌트 풍선(
"Page N / M")이 이제WM_TIMER처리기를 통해 3초 동안 활동이 없으면 자동으로 숨겨지므로 별도의 스크롤 이벤트가 닫을 때까지 남아 있지 않습니다 ZoomInStep/ZoomOutStep은 이제 현재 확대/축소와 14단계 사다리의 다음 프리셋 사이에ActualSize(100%),FitWidth및FitPage백분율이 있으면 해당 값에 맞추어 전문 PDF 뷰어와 같은 동작을 제공합니다- 뷰어 디스크 페이지 캐시는 빌드 버전 표시(
cache.version)를 기록하고 라이브러리 버전이 바뀌면 전체 캐시 루트를 지우므로 빌드 업그레이드에서 이전 코드 경로가 렌더링한 오래된 비트맵을 재사용하지 않습니다
Version 3.273.1
수정
- 저장 중 생성된 개체 스트림 컨테이너 및 xref 스트림 개체는
TPDFStructure.AddObject등록을 우회하여 누수되었습니다 이제 두 호출 지점 모두 소유권 추적 팩터리NewStreamWithDict를 사용하여TPDFStream누수를 제거하며, 이 누수는 테스트 실행기가ReportMemoryLeaksOnShutdown에서 보고했습니다 - 상호 참조 스트림
/Size가 1 작았습니다 전체 파일의 가장 높은 개체 번호보다 하나 커야 하며 xref 스트림 자체가MaxObj+1번호의 간접 개체이므로 이제/Size는MaxObj+2입니다
변경
- 피프홀 콘텐츠 스트림 최적화 도구가 이제 항등 텍스트 행렬 연산자(
1 0 0 1 0 0 Tm)도 제거하여 동일한 6피연산자 항등 검사로cm과Tm을 모두 처리합니다 - 표시 후 정리 GC는 원본 문서를 선형화된 상태로 불러온 경우 개체 1(
/Linearized매개변수 사전)을 보존합니다 이 사전은/Root에서 참조되지 않지만 유지되어야 합니다
Version 3.273.0
추가
- 저장 시 개체 스트림 패킹(
TPDFDocument.PackObjectsIntoStreams)은 적합한 비스트림 간접 개체를 수집하고 이를 Flate 압축을 사용하는 PDF 1.5 개체 스트림(/Type /ObjStm)으로 직렬화하며 유형 0, 유형 1 및 유형 2 항목을 전달하는 바이너리 상호 참조 스트림(/Type /XRef)을 내보내어 개체 밀도가 높은 문서의 저장 파일 크기를 10-40% 줄입니다 TPDFlibSaveOptions.PackObjectStreams플래그와TPDFlib.SetPackObjectStreams/GetPackObjectStreamsAPI를 추가했습니다. 기본적으로 활성화되며 PDF 버전에 따라 자동으로 제한됩니다(1.5 이상에서는 패킹과 xref 스트림을 활성화하고, 1.4 이하에서는 호환성을 위해 기존 일반 텍스트 xref를 유지).TPDFlib.GetLastSaveUsedObjectStreams는 마지막 저장에서 실제로 패킹했는지 보고합니다
Version 3.272.0
추가
- 참조되지 않은 간접 객체의 마크-스윕 가비지 컬렉션(
TPDFDocument.GarbageCollectUnusedObjects)은 트레일러 루트(/Root,/Info,/Encrypt)에서 객체 그래프를 순회하고 도달할 수 없는 모든 간접 객체를 제거하여, 페이지를 삭제한 뒤 글꼴, 콘텐츠 및 XObject 리소스가 고아로 남으면서 누적되는 파일 크기 증가를 막습니다 TPDFlibSaveOptions.GarbageCollect플래그와TPDFlib.SetGarbageCollect/GetGarbageCollectAPI를 통해 호출자가 전체 저장 중 GC 사용 여부를 선택할 수 있습니다(이전 버전과의 호환성을 위해 기본값은 끔).TPDFlib.GarbageCollectObjects는 GC를 즉시 실행하고 제거된 고아 객체 수를 반환합니다
Version 3.271.0
추가
- 피프홀 콘텐츠 스트림 최적화 도구(
TPDFContentPeepholeOptimizer)는 Flate 압축 전에 파싱된 페이지 콘텐츠 스트림을 다시 작성하여 의미상 중복되는 PDF 연산자를 제거합니다. 항등cm행렬, 빈q/Q쌍, 빈BT/ET객체, 클리핑 없이n으로 끝나는 무효 경로, 중복 그래픽 상태 설정자(색상, 선 너비, 캡/조인, 대시, 텍스트 상태), 페인팅 연산자 뒤의 불필요한n이 대상이며, 모든 변환은 출력이 동등하므로 화면에 표시되는 페이지 결과는 바뀌지 않습니다 TPDFlibSaveOptions.OptimizeContentStreams플래그와 이에 대응하는TPDFlib.SetOptimizeContentStreams/GetOptimizeContentStreamsAPI를 통해 호출자가CompressContent/CompressPage중 피프홀 재작성 사용 여부를 선택할 수 있으며 기본값은 활성화입니다
변경
- 이제
TPDFDocument.CompressPage가 최적화 플래그를 페이지 트리에 전달하므로, 기존 Flate 압축 전에TPDFPageTree.Compress내부에서 피프홀 패스가 실행되어 바이트 수준 압축에 연산자 수준 축소가 더해집니다
Version 3.270.0
추가
- 새로운
PLParseDefaultAppearance는/DA기본 모양 바이트 문자열(ISO 32000-2 12.7.4.3)을 글꼴 리소스 이름, 글꼴 크기 및 채우기 색상으로 디코딩하며,rg,k,G색상 연산자를 지원하여 양식 필드와 주석 모양 생성기가 작성자가 의도한 스타일로 텍스트를 그릴 수 있게 합니다
변경
- 이제 페이지 콘텐츠 스트림 조합(
TPDFRenderer.GetContents)은 여러 부분으로 구성된/Contents배열을TStringBuilder를 통해 연결하여, 반복되는Result := Result + chunk로 인해 콘텐츠 스트림 부분이 많은 페이지에서 발생하던 O(n^2) 문자열 증가를 없앱니다
Version 3.269.0
추가
- 새로운
BeginMarkedContent/EndMarkedContent는 접근성 속성(/Alt,/ActualText,/Lang,/E)을 포함한 인라인 마크 콘텐츠 시퀀스를 ISO 32000-2 14.9.2–14.9.5에 따라 BDC 속성 목록에 직접 기록하므로, 화면 읽기 프로그램과 접근성 도구가 구조 트리 항목 없이 대체 텍스트를 읽을 수 있습니다 - 주석 판독기는
GetAnnotEffectiveBorder를 제공하여 Errata #287 우선순위(테두리 스타일 사전/BS가 레거시/Border배열보다 우선)를 구현하고 너비, 스타일 및 대시 패턴을 한 번의 호출로 확인합니다 - 서명 문서는
GetSignatureSeedValue를 통해 시드 값 사전(/SV, ISO 32000-2 12.7.5.5 Tables 236–237)의 필수 필터, 허용된 SubFilters 및 허용된 다이제스트 메서드를 읽으므로 서명자가 작성자가 포함한 제약 조건을 준수할 수 있습니다 GetSignatureFieldLock은/LockFieldMDP 시드 사전(Table 238)을 읽어 동작(/All,/Include,/Exclude)과 서명 시 잠가야 하는 해당 필드 이름을 확인합니다
Version 3.268.0
추가
- 새로운
PLParsePDFDate는 ISO 32000-2 7.9.4 날짜 문자열(D:YYYYMMDDHHmmSSOHH'mm')을 로컬TDateTime으로 파싱합니다. 필수D:접두사, 필드 종속성 단계(앞선 모든 필드가 있을 때만 각 필드 허용) 및 UT 오프셋(+/-/Z, 선택적 아포스트로피 분 포함)을 준수하며 문서화된 시점의 로컬 등가 값을 반환합니다 - 이제 텍스트 문자열 디코딩(
PLDecodeTextString)이 7.9.2.2.1에 따른 PDF 2.0 UTF-8 BOM(EF BB BF)을 인식하므로, UTF-8로 작성된 메타데이터를 PDFDocEncoding으로 잘못 해석하지 않고 올바르게 디코딩합니다 - 파일 사양은 Errata #444에 따라 PDF 2.0 우선순위(Path > UF > F)를 준수하는
GetFileName과GetEmbeddedFileStream,GetRelatedFiles접근자를 제공하여/EF및/RF사전을 처리합니다 - 주석 판독기는 Errata #23/#34/#42/#170 규칙을 구현하는 모양 우선순위 도우미
GetAnnotNormalAppearance,GetAnnotDefaultAppearance,GetAnnotOffStateAppearance를 제공합니다(AP/N이 최우선이고, DA는 바이트 문자열 대체값이며, Off 상태는 이름Off아래에 위치) - 비표준 구조 유형이 역할 맵 체인을 통해 표준 유형에서 끝나지 않으면 PDF/UA 검증이 새로운 코드 10045를 보고하며(ISO 14289-1:2014 7.1), 깊이 8까지 순환을 방지합니다
- 이제 PDF/A 및 PDF/UA 글꼴 감사는 포함된 CIDFontType2 글꼴의
/CIDToGIDMap값이 단순히 존재하는 데 그치지 않고 이름Identity또는 스트림인지 검증합니다(ISO 32000-1 9.7.4)
변경
- 이제 이름 트리 조회(
NameTreeLookup)는 ISO 32000-2 7.9.6에 따라 정렬된Names배열을 이진 검색한 뒤 선형 검색으로 대체하여, 준수 파일의 대규모 EmbeddedFiles/JavaScript/Dests 조회를 O(n)에서 O(log n)으로 개선합니다 - PDF/UA 표준 구조 유형 집합에 PDF 2.0 추가 항목(
Artifact,DocumentFragment,FENote,MarkedContent,Title)을 포함하여 역할 맵의 재매핑 금지 및 체인 종료 검사가 전체 태그 어휘를 인식합니다
Version 3.267.0
추가
EnumPageContentStatesEx는 구성 가능한 깊이, 순환 방지 및 깊이 우선 실행 순서를 사용하여 Form XObject 명령을 재귀적으로 열거할 수 있습니다- 이제 콘텐츠 스냅샷은 호출 트리 ID, 포함 스트림과 상위 XObject 정보, 리소스 범위 ID, Form 순회 상태 및 하위 항목 수를 제공합니다
- 독립 실행형 콘텐츠 추적기는 범위 지정 글꼴을 등록하고 행렬 연결 및 경계 상자 클리핑을 사용하여 격리된 Form 실행 상태를 초기화할 수 있습니다
변경
- 재귀 콘텐츠 추적은 각 Form 리소스 사전을 독립적으로 선택하고, 호환되는 레거시 Forms에 대해 호출 리소스를 상속하며, 상속된 글꼴 ID를 유지하고 반복 호출 전반에서 디코딩된 Form 프로그램을 캐시합니다
Version 3.266.0
추가
- 이제
GetTextRuns가 반환하는 텍스트 런에는 표시 연산자와 함께 BT, Td, TD, Tm, T*를 재생하여 캡처한 글리프 원점(OriginX/OriginY)과 전체 텍스트 행렬 구성 요소(Tm11/Tm12/Tm21/Tm22/TmDX/TmDY)가 포함되므로, 사용자는 별도의 텍스트 퍼널 패스 없이 글리프 위치를 찾을 수 있습니다 - 이제 메시 음영 디코딩은 Lab, CalRGB 및 CalGray 색상 공간을 검정으로 처리하지 않고 색상 관리자를 통해 전달하여 DeviceRGB가 아닌 자유 형식 및 Coons 패치에도 올바른 채우기를 생성합니다
- 이제 교정은 실제
/Subtype /Redact주석과/Rect,/IC내부 색상 및 선택적 오버레이 텍스트를 기존 콘텐츠 제거와 함께 내보내므로, 교정을 인식하는 뷰어가 정리된 영역을 표시합니다 - 라이브러리 작업은 이전에 사용되지 않던
Logger를 통해 로드 및 저장 경계에서 구조화된 로그 레코드를 내보냅니다. ISO-8601 UTC 타임스탬프와 캐시된TStreamWriter파일 싱크를 사용하므로 더 이상 매 줄마다 로그 파일을 다시 열지 않습니다 - 새로운
Tests.Memory픽스처는 생성/그리기/저장/해제 및NewDocument주기에서 힙 회귀를 방지하며, 이제 콘솔 테스트 실행기가ReportMemoryLeaksOnShutdown을 활성화합니다 - 이제 EMF 해석은
UnknownRecordCount속성을 통해 알 수 없거나 비공개인 레코드 수를 세므로 조용히 누락되는 메타파일 부분을 관찰할 수 있습니다
변경
- 사전 키 조회(
TPDFDictionary.FindIndexByKeyName)는 항목이 16개보다 많은 사전에 지연 방식의 개방 주소 지정 해시 인덱스를 구축하여, 렌더러 Resources/ColorSpace/Font/ExtGState 조회를 지배하던 선형 검색을 O(1) 프로브로 바꿉니다 - sRGB 감마 변환(
XYZ2RGB)은 픽셀마다 세 번의Power(x, 1/2.4)호출 대신 공유 4096항목 조회 테이블을 사용하고, 이제 Lab-to-XYZ 세제곱은 직접 곱셈을 사용합니다. 둘 다 Lab 또는 ICC 기반 이미지를 디코딩할 때 픽셀당 비용을 지배합니다 - 페이지 조회(
TPDFPageTree.GetPage)는 반복 접근 시 매번 페이지 트리를 다시 순회하지 않고 캐시된 페이지 사전을 반환합니다 - 콘텐츠 스트림 연산자 디스패치(
ContentOperatorFromName)는 73개 연산자를 첫 번째 바이트별로 버킷화하여 토큰별 선형 검색을 짧은 잔여 비교로 줄입니다 - 이제 PDF/A 색상 공간 감사는 Indexed, Separation, DeviceN 및 ICCBased의 기본 또는 대체 공간을 깊이 8까지 재귀적으로 검사하므로, 숨겨진 DeviceCMYK 틴트 변환이나 단독 Lab 이름이 조용히 통과하지 않고 표시됩니다
- 이제 모양이 적용된 글꼴의 최종화는 저장할 때마다 65536개 글리프 슬롯을 네 번 스캔하는 대신 그리기 시 기록된 사용 글리프 집합을 순회합니다
- 문자열 이스케이프 루틴(리터럴 문자열, XFDF, 스탬프 및 변수 토큰 확장)은
TStringBuilder또는 2단계 할당으로 출력을 구성하여 저장 및 양식 내보내기 핵심 경로에서 O(n^2) 연결을 제거합니다 - AES 스트림 암호화/복호화는 블록마다 다시 할당하지 않고 루프 반복 간 청크 버퍼를 재사용합니다
- TrueType 파서의 복합 글리프 파싱은 구성 요소 배열을 한 번에 한 요소씩 늘리는 대신 기하급수적으로 확장합니다
- 메시 음영
ReadBits는 한 번에 필요한 최소 바이트를 읽고WriteBits는 출력 버퍼 크기를 미리 지정하여 비트별 재할당을 제거합니다 - Painter 원의 제어점은 미리 계산된 카파 상수를 사용하고 호 제곱은
Sqr를 사용하여Power를 대체합니다
수정
- 비 Windows 환경의
PDFlibParallel에서PDFlibRenderPagesParallel스텁 본문 시그니처가 인터페이스 선언과 일치하지 않아 발생하던 컴파일 오류를 수정했습니다
Version 3.265.0
추가
- C++Builder 데모 제품군을 Delphi와 맞추기 위해 C++Builder 콘솔 데모 59개를 추가하여, 동일한 API 영역을 다루는 데모 수를 33개에서 92개로 늘렸습니다
- Demo/C++Builder/index.html을 35개에서 92개 항목으로 확장하고 Navigation, Color & ICC, Barcode & media, Structure & compliance 섹션을 추가했습니다
수정
- 기존 C++Builder cbproj 파일 33개 모두에서 DelphiCompile 목록에 라이브러리 유닛 20개(PDFlibMeshShading, PDFlibGraphics, PDFlibWindows, PDFlibParallel, PDFlibLogger, PDFlibMail, PDFlibViewer 등)가 누락되어 모든 C++Builder 데모의 컴파일을 막던 문제를 수정했습니다
Version 3.264.0
추가
- 이제 콘텐츠 그래픽 상태 스냅샷은
Do피연산자를 이미지, 양식 또는 PostScript XObjects로 확인하고 해당 리소스 이름, 객체 번호 및 변환된 경계를 보고합니다 - Form 스냅샷은 원래
/Matrix와/BBox를 리소스, 그룹, 투명도 그룹 및 참조 양식 표시기와 함께 제공합니다 - 독립 실행형 콘텐츠 추적기는
RegisterXObject를 통해 XObject 스트림을 미리 등록할 수 있습니다
변경
- 이제 페이지 콘텐츠 상태 열거는 선택한 페이지의 XObject 리소스를 미리 컴파일하고 변환된 네 모서리 모두에서 호출 경계를 계산합니다
Version 3.263.0
추가
- 이제 콘텐츠 그래픽 상태 스냅샷은 현재 경로 경계, 현재 지점, 경로 복잡도, 보류 중인 클리핑 규칙 및 유효 클리핑 경계를 제공합니다
- 독립 실행형 콘텐츠 추적기는
SetInitialClipBounds를 통해 명시적 클리핑 경계를 초기화할 수 있습니다
변경
- 이제 페이지 콘텐츠 상태 열거는 지연된
W및W*클리핑, 정확히 변환된 3차 극값,q/Q클리핑 복원 및 선택한 페이지의CropBox경계를 따릅니다
Version 3.262.0
추가
- 이제 콘텐츠 그래픽 상태 스냅샷은 글꼴 쓰기 모드, 명령별 정확한 텍스트 변위 및 글꼴 메트릭 확인 여부를 보고합니다
- 독립 실행형 콘텐츠 추적기는
OnMeasureText를 통해 글꼴 측정값을 제공할 수 있습니다
변경
- 이제 페이지 콘텐츠 상태 열거는 단순 또는 복합 글꼴 메트릭, 수평 배율, 간격 및 세로 쓰기 규칙을 사용하여
Tj,TJ,',"의 텍스트 행렬을 전진시킵니다
Version 3.261.0
추가
- 이제 콘텐츠 그래픽 상태 추적은 투명도, 혼합, 중복 인쇄, 소프트 마스크, 장치 제어 및 포함된 글꼴 참조를 비롯한 페이지
ExtGState리소스를 확인할 수 있습니다 TPDFContentStateTracker는 독립 실행형 콘텐츠 프로그램 분석을 위해 외부 그래픽 상태 사전을 미리 등록할 수 있습니다
변경
- 이제 외부 그래픽 상태 매개변수는 누적 적용되고 완전한
q/Q저장 및 복원 스냅샷에 참여합니다
Version 3.260.0
추가
- 구조화된 콘텐츠 프로그램과 완전한 선택 페이지를 위한 단일 패스 유효 그래픽 상태 추적을 추가했습니다
- 스냅샷은 각 명령 전후의 CTM, 텍스트 행렬, 선 스타일, 대시 패턴, 색상, 텍스트 상태 및 그래픽 상태 스택 깊이를 제공합니다
변경
- 이제 이미지 배치 열거는 단위 정사각형의 네 모서리를 모두 매핑하여 회전 및 전단 변환에서도 올바른 경계를 생성합니다
Version 3.259.0
추가
- 대화형 양식 필드를 위한 형식화된 시간, 특수 패턴 및 임의 마스크 도우미를 추가했습니다
- 각각 독립적으로 선택 가능하며 0에 안전한 경계를 사용하는 범위 검증을 추가했습니다
- 계산 순서를 자동으로 등록하는 필드 합계, 평균, 곱, 최솟값 및 최댓값 계산을 추가했습니다
보안
- 이제 생성된 JavaScript 문자열 값에서 따옴표, 백슬래시, 제어 문자 및 JavaScript 줄 구분 기호를 이스케이프합니다
Version 3.258.0
추가
- 양식 필드 이벤트, 기존 동작 및 동작 체인을 위한 형식화된
SetOCGState동작 생성을 추가했습니다 - 선택적 콘텐츠 동작은 왼쪽에서 오른쪽 순서의 상태 변경, 반복 그룹 및 선택적 라디오 버튼 관계 기본 설정을 유지합니다
변경
- 이제 선택적 콘텐츠 동작 열거는 작성기 API를 통해 왕복 변환되는 정규 그룹 핸들을 반환합니다
Version 3.257.0
추가
- 0부터 시작하는 페이지, 모든 표준 맞춤 유형, nullable XYZ 값 및 3상태 창 기본 설정을 지원하는 완전한 명시적 원격 대상 작성을 추가했습니다
- 이식 가능한 파일, Windows 매개변수, 기본 디렉터리 및 열기 또는 인쇄 작업을 지원하는 완전한 실행 동작 작성을 추가했습니다
- 이제 기존 동작 핸들은 컨테이너별 중복 API 없이 이러한 페이로드를 업데이트하거나 동작 체인에 추가할 수 있습니다
보안
- 이제 원격 이동 및 실행 동작 빌더는 동작 체인을 수정하기 전에 PDF/A 모드를 거부합니다
Version 3.256.0
추가
- 이제 원격 이동 동작 검사는 명명된 대상과 명시적 대상, 0부터 시작하는 대상 페이지, 맞춤 유형, 좌표 및 확대/축소 값을 보고합니다
- 이제 실행 동작 검사는 Windows 애플리케이션 매개변수, 기본 디렉터리 및 열기 또는 인쇄 작업을 보고합니다
- 동작 정보는
/NewWindow기본 설정이 없는 경우와 명시적 false 값을 구분하고 배열 기반 대상을 식별합니다
Version 3.255.0
추가
- 원격 명명 대상 및 외부 애플리케이션 실행 동작을 위한 형식화된 빌더를 추가했습니다
- 이제 URI 동작 빌더는 표준
/IsMap플래그를 통한 좌표 맵 요청을 지원합니다 - 새 동작 종류는 기존 확장 빌더 인터페이스를 통해 수명 주기, 양식 필드 및 연결된 동작 API 전반에서 작동합니다
Version 3.254.0
추가
- 전용 데모가 없던 라이브러리 영역을 위한 Delphi API 범위 데모 14개를 추가했습니다: OutlineBuilder, NamedDestinations, DocumentActions, EmbeddedFiles, LinearizeDemo, BarcodeGallery, XfaFields, TaggedPDF, OutputIntent, HtmlTextFlow, RichMediaAnnotations, MailSendDemo, TextBlockExtraction, PadesDssDemo
- Delphi 데모 인덱스에 Navigation 섹션, Color & ICC 섹션, Barcode & media 섹션, Structure & compliance 섹션을 추가하여 나열된 데모 수를 56개에서 92개로 늘렸습니다
- 이전에 가이드 없이 제공되던 데모 20개에 Readme.en-us.html 가이드를 추가했습니다
변경
- 모든 Delphi 데모 소스에 프로젝트 Formatter.config를 적용하여 연산자 간격, 들여쓰기 및 키워드 대소문자를 하나의 스타일로 통일하고, If...Then이 한 줄에 유지되도록 NewLineBeforeThen을 False로 설정했습니다
- 기존 GUI 데모 전반의 오류 처리를 강화했습니다. 이제 SaveToFile 반환 값을 일관되게 검사하고, TPDFlib 및 보조 객체의 수명을 항상 try/finally로 보호하며, 실패 메시지에 LastErrorCode를 포함합니다
수정
- 성공을 실패로 처리하던 ImageToPdf의 반전된 SaveToFile 극성을 수정하고, 저장이 실패하면 AddTrueTypeSubsettedFont가 오래된 파일을 열지 않도록 했습니다
- CreateWithImageToStream, DoInTheStream, CanvasText, ExtractText, ExtractImage, PdfDecrypt, PdfEncrypt 및 PdfPermission에서 TPDFlib, TStream, TBitmap, TOpenDialog 또는 TStringList 인스턴스가 예외 경로에서 누출될 수 있던 리소스 누수를 수정했습니다
- AddFormattedTitle(사용되지 않는 RectParts 할당, StrToFloatDef 주변의 중복 try/except) 및 MultiFunction(덮어쓰이는 SetTextSize 호출)에서 사용되지 않는 코드를 제거했습니다
Version 3.253.0
추가
- 스레드, 소리, 동영상, 선택적 콘텐츠, 렌디션, 전환 및 3D 보기 동작을 위한 형식화된 동작 세부 정보를 추가했습니다
- 재사용 가능한 동작 핸들 조회와 순서가 지정된 선택적 콘텐츠 상태 열거를 추가했습니다
- 교체, Fly, Push, Cover, Uncover 및 Fade 스타일을 지원하는 완전한 PDF 전환 레코드를 추가했습니다
수정
- 이제 Wipe 및 Glitter 전환은 방향을
/Di에 저장하고, 페이지 사전에서 페이지 표시 지속 시간을 읽으며, 전환과 타이밍 항목을 모두 지웁니다 - 표준 PDF-1.5 이전 전환 스타일은 더 이상 PDF 1.5 출력 버전을 강제하지 않습니다
Version 3.252.0
추가
- 기본, 위젯 및 필드 트리거 전반에서 형식화된 동작 세부 정보를 제공하는 단일 패스 양식 필드 동작 검색을 추가했습니다
- 대화형 양식을 위한 완전한 계산 순서 열거, 필드별 조회 및 제거를 추가했습니다
- 대량 양식 필드 스냅샷에 계산 순서와 동작 수를 추가했습니다
변경
- 이제 위젯 수명 주기 트리거는 필수 PDF 1.5 버전 처리와 함께 페이지 열기, 페이지 닫기, 페이지 표시 및 페이지 숨김 동작을 지원합니다
Version 3.251.0
추가
- 확인된 페이지 및 보기 매개변수와 함께 레거시 카탈로그 항목 및 최신 이름 트리 전반을 처리하는 단일 패스 명명 대상 열거를 추가했습니다
- 명명 대상 제거, 완전한 누름 단추 캡션, 단추 텍스트 위치 지정 및 양식 필드 매핑 이름을 추가했습니다
- 대량 양식 필드 스냅샷에 매핑 이름, 단추 캡션 및 단추 텍스트 위치를 추가했습니다
수정
- 이제 이름 트리 편집은 직접 대상 값을 지원하고 모호하지 않은 다중 노드 인덱스 인코딩을 사용합니다
Version 3.250.0
추가
- 필드 ID, 유형, 페이지, 플래그, 값 및 Choice 상태를 포함하는 단일 패스 양식 필드 스냅샷을 추가했습니다
- 형식화된 Choice 필드 플래그 쿼리와 검증된 선택 인덱스 및 맨 위 표시 인덱스 접근자를 추가했습니다
수정
- 단일 선택 Choice 필드는 더 이상 다중 선택
/I배열을 유지하지 않으며, 다중 선택에서 단일 선택으로 전환하면 기존/V배열을 문자열 값으로 바꿉니다
Version 3.249.0
추가
- 애플리케이션이 페이지를 두 번 추출하지 않고 캐시된 검색 결과를 반복할 수 있도록 단일 패스 상태 저장 텍스트 검색 순회를 추가했습니다
- 선택적 읽기 전용 필드 보호와 함께 대량 양식 값 내보내기 및 이름 기반 적용을 추가했습니다
Version 3.248.0
추가
- 페이지 공간 도형, 추출된 텍스트, 열거, 지우기 및 취소 가능한 선택 영역 이벤트를 포함하는 유지형 Viewer 선택을 추가했습니다
- 영구 오버레이를 포함한 정확한 현재 뷰포트 비트맵 캡처 및 파일 출력을 추가했습니다
Version 3.247.0
추가
- 사용자 양식 편집과 주석 활성화를 위한 독립적인 Viewer 제어를 추가했습니다
- 텍스트 및 선택 양식 편집기에 구성 가능한 전경색을 추가했습니다
Version 3.246.0
추가
- 형식화된 선 끝 스타일, 도형 내부 색상, 링크 강조 모드, FreeText 정렬, Text 주석 열림 상태 및 Caret 기호를 추가했습니다
- 주석 설정자는 호환되는 하위 유형을 검증하고 필요한 경우 최소 PDF 버전을 자동으로 높입니다
Version 3.245.1
수정
- A4 보고서가 의도한 배율을 유지하고 텍스트가 메모 경계 안에 머물며 구성하지 않은 메모 프레임이 숨겨지도록 FastReport 내보내기의 페이지 크기와 메모 레이아웃을 수정했습니다
Version 3.245.0
추가
- 암호화된 문서가 초기 자격 증명을 거부한 뒤 애플리케이션이 다른 암호를 제공할 수 있도록
OnPassword를 추가했습니다 - 이제 파일, 스트림 및 문자열 로드에서 암호 재시도가 일관되게 작동하고 다음 시도 번호를 제공하며 처리기가 취소할 수 있습니다
보안
- 암호 콜백은 총 16회로 제한되며 모든 재시도는 새로운 파서와 복호화 상태를 사용합니다
Version 3.244.0
추가
- 호출자가 정의한 XMP 네임스페이스에 스칼라 속성을 안전하게 기록하는
SetXMPPropertyEx를 추가했습니다 - 사용자 지정 XMP 값은 XML DOM을 통해 이스케이프되고, 반복 기록은 일치하는 네임스페이스 속성을 대체하며, 유효하지 않거나 예약된 XML 이름은 거부됩니다
Version 3.243.0
추가
- 닫기 전, 저장 전, 저장 후, 인쇄 전 및 인쇄 후 트리거를 위한 형식화된 문서 수명 주기 동작을 추가했습니다
- URI, 명명 대상, JavaScript, 양식 및 대상 동작 빌더를 공통으로 지원하는 형식화된 페이지 열기 및 닫기 동작을 추가했습니다
- 모든 문서 및 페이지 수명 주기 트리거에 동작 검사 및 제거 메서드를 추가했습니다
Version 3.242.0
추가
- 원래 로드한 파일에 변경 사항을 추가하고 반복 증분 저장을 위해 업데이트된 xref 체인을 자동으로 다시 로드하는
SaveChanges를 추가했습니다 SaveChanges는 쓰기 전에 다시 로드할 암호를 검증하고 다시 로드한 뒤에도 선택한 공개 문서 핸들을 유지합니다
변경
- 이제
AppendToFile은 현재 길이가 로드한 원본과 다른 대상을 거부하여 외부에서 변경된 파일에 오래된 증분 오프셋이 추가되지 않도록 합니다
Version 3.241.0
추가
- 책갈피 목록의 끝에 직접 접근할 수 있도록
GetLastOutline과GetLastChildOutline을 추가했습니다 - 전체 트리 스냅샷을 할당하지 않고 가볍게 책갈피 트리를 검사할 수 있도록
GetOutlineChildCount와GetOutlineSiblingIndex를 추가했습니다
Version 3.240.0
추가
- 덮어쓰기, 건너뛰기 및 자동 이름 변경 충돌 정책과 첨부 파일별 명명 콜백을 제공하는
SaveAllAttachmentsEx를 추가했습니다 - 이제 첨부 파일 내보내기는 요청한 이름을 안전한 리프 이름으로 줄이고 Windows 예약 장치 이름을 보호합니다
수정
- 첨부 파일 스냅샷의 개수는 계산했지만 할당하고 채우지 않아 파일을 쓰지 않고 반환하던
SaveAllAttachments문제를 수정했습니다
Version 3.239.0
추가
- Viewer 호스트가 확대/축소, 스크롤 및 보기 회전과 무관하게 1부터 시작하는 페이지 번호와 위에서 아래 방향의 PDF 포인트 좌표를 받도록
OnPageMouseDown,OnPageMouseMove,OnPageMouseUp을 추가했습니다 - 포인터가 영역에 들어가거나 나갈 때 링크, 링크가 아닌 주석 및 양식 필드를 구분하도록
RegionAtClientPoint,ActiveRegion,OnActiveRegionChange를 추가했습니다 - 기존 Viewer 동작 클래스를 조합하여 복사, 확대/축소, 맞춤, 회전, 탐색, 저장 및 인쇄용 컨텍스트 메뉴를 바로 제공하는
CreatePDFlibViewerDefaultPopupMenu와InstallPDFlibViewerDefaultPopupMenu를 추가했습니다
Version 3.238.0
추가
- 형식화된 작업 종류, 수명 주기 단계, 현재 및 전체 단위, 백분율 및 세부 텍스트를 제공하는
OnOperationProgress를 추가하면서 기존OnProgress백분율 콜백을 유지했습니다 - 이제 파일, 스트림 및 문자열의 로드, 저장, 검색, 병합 및 페이지 렌더링 진입점이 시작 단계와 종료 단계를 보고하며, 중간 진행률이 있는 작업은
opRunning도 보고합니다 Cancel을opStarting또는opRunning중 설정하면 기존Abort상태가 활성화되어 이전 호출자와 새 호출자에 하나의 취소 경로를 제공합니다
수정
- 이제
LoadFromFile은 잘못된 암호에 대한 오류 코드 404를 정리 후 일반 로드 오류 401로 덮어쓰지 않고 유지합니다
Version 3.237.0
추가
- 결과 배열을 할당하거나 크기를 정하지 않고 모든 텍스트 검색 결과를 즉시 내보내도록
SearchTextEach와TPDFlibSearchHitEvent를 추가했습니다 - 이제
SearchText와SearchTextEach는OnProgress를 통해 페이지 진행률을 보고하고Abort와 콜백 취소를 모두 준수합니다. 콜백 취소는ResetAbort까지 기존 중단 상태를 사용합니다 - 이제 Viewer 검색 패널과 검색 강조 계층은 스트리밍 API를 단일 패스로 사용하여 기존의 256행 및 512개 강조 제한을 없앱니다
수정
- 이제 전체 단어 검색은 같은 텍스트 블록에서 앞서 나타난 부분 문자열을 지나 계속 검색하여 뒤에 있는 올바르게 경계가 지정된 일치 항목을 찾습니다
Version 3.236.0
추가
- 인쇄 작업을 시작하지 않고 실시간 프린터 드라이버 스냅샷을 캡처하는
GetPrinterCapabilities를 추가했습니다 - 형식화된
TPDFlibPrinterCapabilities결과에는 용지 ID, 이름과 밀리미터 치수, 입력함 ID와 이름, 양면, 컬러, 가로 방향 및 한 부씩 인쇄 지원, 프린터 포트 및 드라이버가 보고한 최대 복사 부수가 포함됩니다 - 용지 또는 입력함 메타데이터가 누락된 드라이버도 빈 배열과 함께 나머지 기능을 반환하고, 유효하지 않은 프린터 이름은 완전히 지워진 스냅샷을 반환합니다
Version 3.235.0
추가
- 로드한 문서를 임시 PDF로 저장하고 기본 제공 Windows CDO 공급자를 통해 SMTP 첨부 파일로 전송하는
SendDocumentByMail을 추가했습니다 - 애플리케이션이 다른 전송 방식을 제공하고, 비 Windows 호스트를 지원하며, 네트워크 접근 없이 메일 워크플로를 테스트할 수 있도록 참조 횟수 기반
IPDFlibMailProvider확장 지점을 추가했습니다 - 각 전송은 격리된 임시 디렉터리를 사용하고, 첨부 파일 표시 이름을 정리하며, 공급자가 반환한 뒤 PDF와 해당 디렉터리를 모두 제거합니다.
GetLastMailError는 검증, 저장, 전송 및 플랫폼 오류를 보고합니다
Version 3.234.0
추가
- 스탬프, 머리글 및 바닥글 텍스트에 변수 자리표시자를 추가했습니다.
<%PageNo%>,<%TotalPages%>,<%ShortDate%>,<%LongDate%>,<%ShortTime%>,<%LongTime%>은 기존 &-토큰과 함께 페이지마다 확장됩니다 - 모든 사용자 지정
<%name%>자리표시자는 새OnCalcVariable이벤트를 통해 확인됩니다. 이 이벤트는 이름과 페이지 번호를 받아 대체값을 제공하므로 실행 번호, 배치 코드 및 클라이언트 필드를 텍스트 전처리 없이 스탬프할 수 있으며, 처리기가 없으면 알 수 없는 자리표시자는 그대로 유지됩니다
Version 3.233.0
추가
- 텍스트 추출에 위 첨자/아래 첨자 감지를 추가했습니다. 새로운
GetTextBlockVAlign은 시각적 줄을 기준으로 추출된 각 텍스트 블록's 기준선 분류(0 = 기준선, 1 = 위 첨자, 2 = 아래 첨자)를 보고하므로 화학식, 지수 및 각주 표시를 인식할 수 있습니다 - 블록이 해당 줄's 주요 텍스트보다 현저히 작고 그 세로 중심이 텍스트 높이 하나 이내에서 주요 중심보다 위/아래에 있으면 위 첨자/아래 첨자로 분류합니다
Version 3.232.0
추가
- 텍스트 추출에 문자 수준 단어 분리를 추가했습니다.
SetTextExtractionOptions(17, 1)은 공백 문자가 없는 표시 텍스트 런에서 문자별 전진 간격이 런's 글리프 전진 중앙값보다 훨씬 넓은 지점을 기준으로 단어를 다시 분리하므로, 공백 대신 커닝 간격을 사용하여 전체 줄을 단일 연산자로 그리는 문서도GetPageText모드 7 및 9-11에서 별도 단어로 추출됩니다 - 전진 배열은 확장된 텍스트와 계속 정렬되므로 블록 사각형과 문자별 너비 출력이 일관되게 유지됩니다
Version 3.231.0
추가
- 레이아웃을 유지하는 고정 그리드 텍스트 내보내기를 추가했습니다.
GetPageText(11)은 페이지 도형을 고정 폭 문자 그리드에 매핑하여 기준선별로 행을 묶고, 평균 문자 너비로 계산한 열에 각 블록을 배치하며, 짧은 셀을 실제 공백으로 채웁니다. 따라서 탭 정지 위치에 의존하지 않고도 일반 텍스트 뷰어, 터미널 및 diff에서 표와 양식의 시각적 정렬을 유지합니다 - 이제
GetPageText참조 페이지에서 읽기 순서(9), 탭으로 구분된 표(10) 및 고정 그리드(11) 모드를 설명합니다
Version 3.230.0
추가
- 텍스트 추출에 하이픈 제거를 추가했습니다.
SetTextExtractionOptions(16, 1)은 줄 끝의 "inter-" 다음 줄에 "national"이 오면 "international"이 되도록 줄 바꿈을 사이에 두고 하이픈으로 연결된 단어를GetPageText모드 7 및 9의 줄 지향 출력에서 다시 결합합니다 - 이 휴리스틱은 하이픈 앞에 문자가 있고 다음 줄이 소문자로 시작할 때만 병합하므로 숫자 범위, 고유 명사 및 문장 시작 대문자는 하이픈을 유지합니다
Version 3.229.0
추가
OnBeforeSnapshot이벤트를TPDFlibViewer컨트롤에 추가했습니다. 드래그한 영역과 함께 스냅샷 드래그를 캡처하기 전에 발생하며, Handled를 설정하면 기본 클립보드 캡처가 취소되어 애플리케이션이 영역을 직접 처리할 수 있습니다PrefetchEnabled를 공개했습니다. 이제 백그라운드 사전 렌더링 작업자를 런타임에 끄고 켤 수 있으며, 끄면 작업자가 즉시 중지되고 켜면 열려 있는 문서에서 다시 시작됩니다DiskCacheMaxDocuments를 공개했습니다. 이제 세션 간 디스크 페이지 캐시가 정리 전에 유지하는 문서 수를 조정할 수 있습니다(기본값 10)
Version 3.228.0
추가
TPDFlibViewer컨트롤에 정밀 탐색을 추가했습니다.GoToPagePoint는 페이지로 이동하고 지정된 페이지 지점을 뷰포트 왼쪽 위로 스크롤하여 링크 대상과 검색 결과를 정확히 보이는 위치에 배치합니다- 프로그래밍 방식의 스크롤 제어를 추가했습니다.
ScrollBy픽셀 이동, 읽기/쓰기HScrollPos/VScrollPos속성(같은 문서를 나란히 표시하는 두 뷰어의 동기화에 적합) 및 연속 모드에서 각 페이지's 스크롤 앵커를 보고하는GetScrollPosForPage를 제공합니다 - 확대/축소, 회전 및 스크롤을 거쳐 클라이언트 픽셀과 페이지 사용자 공간 사이를 변환하는 공개 좌표 브리지
ClientPointToPage와PageRectToClientRect를 추가했습니다. 이제 내부 적중 검사는 페인트 경로와 정확히 같은 도형을 공유하며 부모가 없는(헤드리스) 컨트롤에서도 작동합니다
Version 3.227.0
추가
TPDFlibViewer컨트롤에 보기 상태 이벤트를 추가했습니다.OnZoomChange는 모든 유효 확대/축소 이동(명시적 확대/축소, 프리셋 단계, 크기 조정·회전·DPI 변경 시 맞춤 모드 재계산)에서 발생하고OnHScroll/OnVScroll은 스크롤 위치를 따라가므로, 폴링 없이 도구 모음과 상태 표시를 동기화할 수 있습니다- 이제 세로 스크롤 막대 썸을 드래그하면 보기가 이동할 페이지를 미리 보여 주는 부동 "Page N / M" 말풍선이 표시되어 긴 문서에서 특히 유용합니다. 기본적으로 켜져 있는
ScrollHintEnabled속성으로 끌 수 있습니다
Version 3.226.0
추가
TPDFlibViewer컨트롤의 채우기 및 저장 루프를 완성했습니다.SaveToFile과SaveToStream은 커밋된 양식 편집 내용을 포함하여 표시된 문서를 디스크나 스트림에 기록하며, 열려 있는 인플레이스 편집기는 먼저 커밋됩니다- 이제 여러 줄 텍스트 필드는 올바른 다중 행 메모에서 편집됩니다. Enter는 줄 바꿈을 삽입하고 Ctrl+Enter는 커밋하며 Escape는 취소합니다. 한 줄 필드는 기존의 일반 Enter 커밋 동작을 유지합니다
- Tab과 Shift+Tab은 각 필드's 페이지를 따라 문서's 편집 가능한 텍스트 및 선택 필드를 순환하며 인플레이스 편집기를 이동합니다.
FocusNextFormField는 같은 탐색 기능을 프로그래밍 방식으로 제공합니다
Version 3.225.0
추가
TPDFlibViewer컨트롤에 프리셋 사다리 확대/축소를 추가했습니다.ZoomInStep과ZoomOutStep은 확대/축소를 표준 프리셋 시퀀스(1, 5, 10, 25, 50, 75, 100, 150, 200, 400, 800, 1600, 2400, 3200퍼센트)에 맞추며, 현재 적용된 확대/축소에서 시작하므로 맞춤 모드에서도 자연스럽게 단계 이동합니다. 이제 도구 모음 확대/축소 동작도 같은 사다리를 사용합니다- 이제 Ctrl+마우스 휠은 프리셋 사다리를 따라 확대/축소하고 일반 휠은 계속 스크롤합니다
- 키보드 단축키를 추가했습니다. Ctrl+'+'/'-'는 확대/축소를 단계 이동하고, Ctrl+1/2/3은 실제 크기, 너비 맞춤 및 페이지 맞춤으로 전환하며, Shift+Up/Down은 첫 페이지와 마지막 페이지로 이동합니다
Version 3.224.0
추가
- Delphi, DLL 및 ActiveX 진입점을 제공하는
CreateSelfSignedCertificate를 추가했습니다. 자체 서명 RSA 인증서(SHA-256 서명, 구성 가능한 주체, 유효 기간 및 키 길이)를 생성하고 개인 키와 함께 암호로 보호된 PFX 파일로 내보내SignFile및 서명 프로세스 API에서 사용할 수 있으므로, 외부 인증 기관 없이 서명 워크플로를 구축하고 테스트할 수 있습니다 - 인증서는 내보내기 후 삭제되는 일회용 키 컨테이너에서 생성되며 키 자료는 PFX에만 남습니다. 자체 서명 인증서는 테스트 및 내부 문서용이며, 명시적으로 설치하지 않으면 뷰어에서 신뢰할 수 없는 것으로 표시됩니다
Version 3.223.0
추가
- 조합 가능한 워터마크 계층에
TPDFlibShapeWatermark를 추가했습니다. 사각형, 원, 타원, 다각형, Bezier 곡선 체인 및 직선을 텍스트 및 이미지 워터마크와 같은ApplyWatermark진입점을 통해 채우기 및 선 색상, 선 너비, 불투명도를 사용하여 페이지 범위에 찍습니다 - 사각형, 원 및 타원 도형은 Width/Height로 크기를 정하고, 다각형, 곡선 및 선 도형은
SetPoints(로컬 X,Y 쌍)에서 도형을 가져오므로 9점 Position 그리드와 사용자 지정 배치가 모든 도형 종류에 적용됩니다. 퇴화 도형(점 부족)은 거부됩니다
Version 3.222.0
추가
- Delphi, DLL 및 ActiveX 진입점을 제공하는
AddLinkToEmbeddedPDF를 추가했습니다. 현재 문서에 포함된 PDF를 EmbeddedFiles 이름으로 열고 그 안의 선택한 페이지로 이동하는 페이지 핫스폿으로, 선택적 새 창 요청과 함께 ISO 32000-1 §12.6.4.4의 표준 포함 이동(/GoToE) 동작을 사용하며 문서 버전은 PDF 1.6으로 자동 상승합니다 - 이제
GetAnnotActionInfo와 해당 개요/양식 필드 형제 항목은 포함된 이동 동작을 인식하고 새로운akGoToE종류와 함께 포함된 대상 이름, 상위/하위 대상 관계, 선택적 파일 사양 및 /NewWindow 플래그를 보고합니다
Version 3.221.0
추가
- Delphi, DLL 및 ActiveX 진입점을 제공하는
SetSignProcessAppearanceText를 추가했습니다. 이제 디지털 서명은 비트 마스크를 통해 선택한 선택적 설명 레이블("Signed by:", "Reason:", ...)과 함께 서명자 이름, 이유, 위치 및 서명 날짜로 구성된 자동 생성 가시적 텍스트 모양을 표시할 수 있습니다 - 텍스트 블록은 구성 가능한 색상의 Helvetica로 서명 필드 사각형 안에 배치되며, 글꼴 크기 0은 필드에 맞게 줄을 자동 조정합니다.
SetSignProcessFieldImageFromFile을 통해 설정한 필드 이미지는 우선순위를 유지하고 문서 타임스탬프 프로세스는 텍스트 모양을 무시합니다
Version 3.220.0
추가
TPDFlibViewer컨트롤에 대화형 양식 채우기를 추가했습니다. 확인란이나 라디오 버튼을 클릭하면 전환되고 텍스트 또는 선택 필드를 클릭하면 필드 위에 인플레이스 편집기가 열립니다(Enter는 커밋, Escape는 취소, 편집기를 벗어나면 커밋). 읽기 전용 필드는 그대로 두며 변경된 페이지는 자동으로 다시 렌더링됩니다- 모든 쓰기는 새
OnFormFieldValueChanged이벤트를 발생시키며,HighlightFormFields는FormHighlightColor를 사용해 채울 수 있는 각 영역 위에 반투명 배경을 그려 사용자가 양식 필드를 찾기 쉽게 합니다 - 마우스 입력 없이 같은 기능을 구동하는 프로그래밍 방식의 대응 항목
FormFieldAtPagePoint,GetFormFieldPageRect,ToggleCheckBoxField,SetFormFieldValueAndRefresh,BeginEditFormField,CommitInplaceEditor를 추가했습니다
Version 3.219.0
추가
TPDFlibViewer컨트롤에 주석 상호작용을 추가했습니다. 링크가 아닌 주석을 클릭하면 페이지, 주석 인덱스 및 하위 유형과 함께 새OnAnnotClick이벤트가 발생하고,AnnotAtPagePoint는 적중 검사를 프로그래밍 방식으로 제공합니다(Popup 동반 항목은 건너뜀)- 이제 주석 위에 마우스를 올리면 해당 Contents 텍스트가 컨트롤's 힌트로 표시됩니다(기본적으로 켜져 있는
AnnotHints스위치는 표준ShowHint속성과 함께 작동) - FileAttachment 주석's 포함 파일을 디스크에 기록하는
SaveAnnotAttachmentToFile을 추가하여 뷰어에서 클릭하여 첨부 파일을 저장하는 워크플로를 완성했습니다
Version 3.218.0
추가
TPDFlibViewer컨트롤에 세션 간 디스크 페이지 캐시를 추가했습니다.DiskCacheFolder를 설정하면 렌더링된 페이지를 디스크에 유지하므로 최근에 본 문서를 다시 렌더링하지 않고 즉시 열 수 있습니다- 캐시된 페이지는 문서's 경로, 크기 및 마지막 쓰기 시간의 지문을 키로 사용하므로 파일을 편집하면 오래된 페이지가 자동으로 무효화됩니다. 캐시는 최대 10개 문서를 유지하고 가장 오래 사용하지 않은 항목을 정리합니다
- 디스크 캐시가 절약한 페이지 렌더링 수를 보고하는
DiskCacheHits카운터를 추가했습니다
Version 3.217.0
추가
PDFlibViewerActions유닛에 바로 사용할 수 있는TAction파생 클래스 20개를TPDFlibViewer용으로 추가하여 도구 모음과 메뉴를 연결 코드 없이 사용할 수 있게 했습니다. 페이지 탐색(First/Prior/Next/Last), 확대/축소(In/Out/FitWidth/FitPage/ActualSize), 보기 회전(시계/반시계 방향), 인쇄, 파일 열기 및 다른 이름으로 저장 대화 상자, 선택한 텍스트 복사, 다섯 가지 마우스 도구 모드 전환을 제공합니다- 각 동작은
Viewer속성을 통해 뷰어를 대상으로 하며 활성화 상태(문서 열림, 페이지 위치, 선택 존재)와 선택 상태(활성 확대/축소 맞춤 또는 마우스 도구)를 자동으로 최신으로 유지합니다. 모든 동작은 Action List 편집기의 losLab PDF 범주에 등록됩니다 - 실제로 적용된 확대/축소(계산된 너비 맞춤/페이지 맞춤 계수 포함)를 보고하는
TPDFlibViewer.EffectiveZoomPercent를 추가하여 확대/축소 단계가 이를 기반으로 작동할 수 있게 했습니다
Version 3.216.0
추가
TPDFlibViewer컨트롤에 검색 결과 강조를 추가했습니다.HighlightSearchHits는 전체 문서를 검색하고 스크롤, 확대/축소 및 회전 중에도 제자리에 유지되는 반투명 막대를 모든 일치 항목 위에 그리며,ClearSearchHighlights,SearchHighlightCount및 구성 가능한SearchHighlightColor를 제공합니다- 이제
TPDFlibSearchPanel.RunSearch도 연결된 뷰어에 검색 결과 막대를 그리므로(기본적으로 켜져 있는 새HighlightInView속성으로 끌 수 있음) 검색 결과가 결과 목록뿐 아니라 페이지에도 표시됩니다
Version 3.215.0
추가
TPDFlibViewer컨트롤에 새ViewerMode속성을 통한 마우스 도구 모드를 추가했습니다.vmSelect텍스트 선택(기본값), 잡기 커서로 드래그하여 이동하는vmHand(일반 클릭은 계속 링크를 따라감), 드래그한 띠를 뷰포트에 맞게 확대하는vmZoom선택 영역 확대, 클립보드로 영역을 캡처하는vmSnapshot, 영구 반투명 영역을 강조하는vmHighlight를 제공합니다- 클라이언트 영역(페이지와 강조 포함)을 호출자 소유 비트맵으로 렌더링하는
CaptureRegion, 스냅샷 처리용OnSnapshot이벤트 및SnapshotToClipboard스위치, 확대/축소·회전·탐색 후에도 유지되는 페이지 고정 강조를 위한AddHighlightRegion/ClearHighlightRegions/HighlightRegionCount와 구성 가능한HighlightColor를 추가했습니다
Version 3.214.0
추가
TPDFlibViewer컨트롤에 인쇄를 추가했습니다.PrintDoc은 표준 Windows 인쇄 대화 상자(프린터 선택, 페이지 범위, 복사 부수, 한 부씩 인쇄)를 표시하고 작업을 라이브러리's 인쇄 엔진에 넘기며,PrintDoc(False)는 UI 없이 전체 문서를 기본 프린터로 인쇄합니다- 명시적 프린터 이름, 페이지 범위, 복사 부수 및 한 부씩 인쇄 플래그를 사용하는 완전한 프로그래밍 방식의 뷰어 인쇄를 위해
PrintDocRange를 추가했습니다
Version 3.213.0
추가
TPDFlibViewer컨트롤에 보기 회전을 추가했습니다.RotateClockwise90과RotateAntiClockwise90은 표시된 페이지를 90도 단위로 돌리고,ViewRotation속성은 각도(0, 90, 180 또는 270)를 직접 읽거나 설정합니다- 회전은 순수 보기 속성입니다. 문서는 수정되지 않고 모든 각도에서 링크 클릭과 텍스트 선택이 계속 작동하며, 너비 맞춤 및 페이지 맞춤 확대/축소 모드는 회전된 페이지 모양에 적응하고 새 문서를 열면 보기가 0도로 재설정됩니다
- 회전된 페이지 비트맵은 각도별로 캐시되므로 각도를 전환할 때 다시 렌더링하지 않고 이전 렌더링을 재사용합니다
Version 3.212.0
변경
- XFA datasets SOM 경로 호환성을 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가$data.Receipt.Detail.[Total_Price > 200].Description같은 단순 FormCalc 스타일 조건자 선택기를 허용하고, 조건자가 하위 집합을 선택하면 일치하는 모든 데이터 노드를 업데이트합니다
Version 3.211.0
변경
- XFA datasets SOM 경로 호환성을 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가 숫자 또는 와일드카드 발생 항목과 함께 Data DOM 클래스 선택기#dataGroup및#dataValue를 허용하여$data.Receipt.#dataGroup[0].#dataValue[0]같은 클래스 기반 경로를 사용할 수 있습니다
Version 3.210.0
변경
- XFA datasets SOM 경로 호환성을 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가 비 레코드 처리 패킷에서$record루트를 허용하므로$record.Tax및$record/Detail[0]/Total_Price같은 경로를 외부 데이터 레코드 요소에서 확인합니다
Version 3.209.0
변경
- XFDF 주석 교환을 개선했습니다. 이제 주석 내보내기가 표준 테두리 스타일 특성
width,style,dashes를 PDF 주석/BS값에서 기록하고, 주석 가져오기가 삽입된 주석에 이러한 특성을 복원합니다
Version 3.208.0
변경
- XFDF 주석 교환을 개선했습니다. 이제 주석 내보내기가 표준
creationdate및opacity특성을 PDF 주석/CreationDate및/CA값에서 기록하고, 주석 가져오기가 삽입된 주석에 이러한 특성을 복원합니다
Version 3.207.0
변경
- XFDF 주석 교환을 개선했습니다. 이제 주석 내보내기가 표준
flags이름을 PDF 주석/F값에서 기록하고, 주석 가져오기가 해당 이름을 삽입된 주석 플래그에 복원합니다
Version 3.206.0
변경
- XFA datasets SOM 경로 호환성을 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가$data.Receipt.*.Total_Price같은 직접 하위 와일드카드 선택기를 허용하여 상위 노드의 같은 이름 필드를 선택하지 않고 일치하는 하위 분기를 읽거나 업데이트합니다
Version 3.205.0
변경
- XFA datasets SOM 경로 호환성을 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가$data..Total_Price및$data.Receipt..Total_Price같은 하위 항목 선택기를 허용하여 처음 일치하는 하위 데이터 노드를 읽거나 업데이트합니다
Version 3.204.0
변경
- XFA datasets SOM 경로 호환성을 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가parent속성을$data.Receipt.Detail[1].parent.Tax같은 경로에서 허용하여 선택한 노드의 상위 형제 데이터를 읽거나 업데이트합니다
Version 3.203.0
변경
- XFA datasets SOM 발생 항목 처리를 개선했습니다. 이제
GetXFAFormFieldValue와SetXFAFormFieldValue가[*]선택기를 지원하여$data.Receipt.Detail[*].Total_Price같은 경로에서 일치하는 모든 반복 데이터 노드를 읽거나 업데이트합니다
Version 3.202.0
변경
- XFA SOM 경로 호환성을 개선했습니다. 이제 XFA datasets 및 템플릿 필드 API가 슬래시로 구분된 필드 경로의 리터럴 마침표를 유지하고 점으로 구분된 SOM 경로에서
Line\.Item같은 이스케이프된 마침표를 허용합니다
Version 3.201.0
변경
- XFA datasets 경로 호환성을 개선했습니다. 이제 XFA 필드 값 API가
$data/...,xfa.datasets.data/...,xfa.datasets/...같은 표준 데이터 SOM 루트 뒤에 슬래시로 구분된 경로를 허용합니다
Version 3.200.0
변경
- XFA datasets SOM 호환성을 개선했습니다. 이제 XFA 필드 값 API가 표준
!data...축약형을 허용하며 슬래시로 구분된!data/...경로도 포함합니다
Version 3.199.0
변경
- XFA 템플릿 경로 호환성을 개선했습니다. 이제 템플릿 편집 API가
$template/...경로를 포함하여 XFA 필드 이름 열거에서 반환되는 슬래시 구분 필드 경로를 허용합니다
Version 3.198.0
변경
- XFA datasets 네임스페이스 호환성을 개선했습니다. 이제 datasets 패킷 안의 비즈니스 데이터가 자체 네임스페이스 접두사를 사용할 때 필드 값 API가 로컬 XML 이름으로 데이터 노드를 읽고 업데이트하며, 필드 이름 열거는 접두사 없는 경로를 반환합니다
Version 3.197.0
변경
- XFDF 주석 교환을 개선했습니다. 이제 주석 내보내기가 공통
name및date특성을 PDF/NM및/M에서 포함하고, 주석 가져오기가 삽입된 주석에 해당 값을 복원하며,SetAnnotStrProperty이 주석 수정 날짜용 태그 104를 허용합니다
Version 3.196.0
변경
- XFA 필드 이름 열거를 개선했습니다. 이제 필드 목록 API가 datasets 패킷의 모든 최상위 데이터 레코드를 스캔하고 컨테이너 그룹을 필드로 추가하지 않고 리프 데이터 필드를 반환합니다
Version 3.195.0
변경
- XFA datasets 호환성을 개선했습니다. 이제 XFA 필드 값 API가 접두사 없는
data요소를 사용하는 datasets 패킷이 포함된 완전한 XDP 패킷을 읽고 업데이트합니다
Version 3.194.0
수정
- XFA 템플릿 필드 업데이트를 개선했습니다. 이제 XFA 템플릿 필드 API가
$template및xfa.template같은 표준 템플릿 SOM 루트를 허용하고, 완전한 XDP 스트림의 템플릿 전용 변경 사항도 올바르게 저장됩니다
Version 3.193.0
변경
- XFA 필드 주소 지정을 개선했습니다. 이제 XFA 필드 값 API가 상대 필드 경로뿐 아니라
$data및xfa.datasets.data같은 표준 데이터 SOM 루트도 허용합니다
Version 3.192.0
변경
- XFA XML 패킷 처리를 개선했습니다. 이제 UTF-16 바이트 순서 표시 또는 UTF-16 XML 바이트 패턴이 있는 XFA 스트림을 XML 파싱 전에 디코딩하므로 UTF-16으로 인코딩된 양식 값을 XFA 필드 읽기/쓰기 API에서 계속 사용할 수 있습니다
Version 3.191.0
변경
- XFA 패킷 작성을 개선했습니다. 이제
SetXFAFromString이 문서에 양식 데이터가 없을 때 필수AcroForm컨테이너를 생성하고, 완전한 XFA 패킷을 저장할 때 오래된 파싱 XFA 상태를 대체하며, 저장된 패킷을 XFA 필드 읽기/쓰기 API에서 사용할 수 있도록 유지합니다
Version 3.190.0
변경
- XFDF 주석 교환을 개선했습니다. 이제 주석 내보내기가 공통
color특성을 PDF/CRGB 배열에서 기록하고, 주석 가져오기가color="#RRGGBB"값을 삽입된 주석 색상 배열에 복원합니다
Version 3.189.0
추가
- XFDF 주석 교환 API를 추가했습니다. 이제
ExportAnnotationsToXFDF,ExportAnnotationsToXFDFString,ImportAnnotationsFromXFDF,ImportAnnotationsFromXFDFString이 페이지, 사각형, 제목, 주제 및 일반 콘텐츠 데이터를 포함한 텍스트 스타일 주석 설명용 ISO 19444<annots>데이터를 읽고 씁니다
Version 3.188.0
변경
- XFDF 서식 있는 텍스트 필드 가져오기를 개선했습니다. 이제
<value-richtext>가 있는 필드는 서식 있는 텍스트 XML을 필드RV값에 유지하면서 일반<value>대체값이 있으면 이를 계속 적용합니다
Version 3.187.0
변경
- 다중 선택 Choice 필드의 XFDF 양식 데이터 교환을 개선했습니다. 이제 반복되는
<value>요소를 선택 값 배열로 가져오며, 다중 선택 Choice 필드를 내보낼 때 선택한 항목을 하나의 이스케이프된 텍스트 노드로 평면화하지 않고 항목마다 하나의<value>요소를 기록합니다
Version 3.186.0
변경
- 서식 있는 텍스트 필드의 XFDF 양식 데이터 내보내기를 개선했습니다. 이제
RV서식 있는 텍스트 값이 있는 필드는<value-richtext>요소를 포함하면서 일반<value>대체값을 유지합니다
Version 3.185.0
변경
- 서식 있는 텍스트 필드의 XFDF 양식 데이터 가져오기를 개선했습니다. 필드가
<value-richtext>를 일반<value>없이 제공하면 이제 가져오기 도구가 필드를 건너뛰지 않고 XHTML 텍스트 콘텐츠를 추출하여 일치하는 AcroForm 필드에 적용합니다
Version 3.184.0
변경
- XFDF 양식 데이터 교환을 개선했습니다. 이제 내보내기가
xml:space="preserve"와 함께 표준 XFDF 네임스페이스를 사용하고, 계층형 AcroForm 이름에 중첩된<field>요소를 내보내며, 비종단 상위 필드 값을 건너뛰고, 파일 내보내기를 UTF-8로 기록하며, 중첩 필드, 작은따옴표 특성, CDATA, XML 엔터티 및 숫자 문자 참조가 있는 공백 유연 XFDF를 가져옵니다
Version 3.183.0
추가
- 한 번의 호출로 민감한 콘텐츠를 제거하는
SanitizeDocument(Flags)를 추가했습니다. 모든 전역 JavaScript를 제거하고, 카탈로그 OpenAction을 제거하며, 모든 주석에서 /A 동작을 없애고, Author/Subject/Keywords/Creator/Producer 메타데이터(/Info와 XMP 모두)를 비우며, 선택적으로 모든 주석을 삭제합니다. 플래그 비트SANITIZE_JAVASCRIPT/SANITIZE_ACTIONS/SANITIZE_METADATA/SANITIZE_ANNOTATIONS/SANITIZE_OPEN_ACTION을 조합할 수 있고SANITIZE_ALL은 모든 제거 작업을 적용합니다. 교정이 보이는 콘텐츠는 제거하지만 메타데이터나 숨겨진 스크립트를 복구 가능하게 남기는 기존 데이터 누출 허점을 막습니다 - 개별 주석에서 /A 동작 사전을 제거하는
TPDFAnnots.RemoveAnnotAction(Index)를 추가했습니다(SanitizeDocument에서 사용되며 독립적으로도 유용)
Version 3.182.0
추가
- 이제
EnumPageElements가 반환하는 이미지 요소는 0 대신 실제 배치 사각형(Left/Top/Right/Bottom)을 포함합니다. 새TPDFContentProgram.EnumImagePlacements메서드가 콘텐츠 스트림을 순회하면서 CTM(cm/q/Q)을 추적하고 각Do연산자의 1x1 단위 정사각형을 페이지 좌표에 매핑하여 지원합니다 - 대표 데모 4개를 추가했습니다. DocumentProperties(DocInfo/page-box/rotation/transition/viewer-preferences/XMP 왕복), FormProperties(필드별 속성 그리드: type/value/readonly/MaxLength/MultiLine/description), SignatureValidator(서명 필드 열거 + 검증 + 서명자 인증서), Reader(열기/탐색/확대/축소/텍스트 복사를 지원하는 VCL TPDFlibViewer)
Version 3.181.0
추가
- 기존 스키마 인식 XMP 엔진(PDFlibXMP)을 공개 파사드를 통해 제공하는
SetXMPProperty를 추가했습니다. RDF XML을 직접 작성하지 않고도 네임스페이스 + 키로 모든 Dublin Core(dc:), XMP Basic(xmp:), Adobe PDF(pdf:), PDF/A ID(pdfaid:), PDF/UA ID(pdfuaid:) 또는 XMP Media Management(xmpMM:) 속성을 설정할 수 있습니다 ImportFormDataFromFDF/ImportFormDataFromFDFString을 추가했습니다. FDF /Fields 배열(각각<< /T (name) /V (value) >>)을 파싱하고 EscapePDFText 8진수/괄호 이스케이프를 역변환하여 각 값을 제목이 일치하는 AcroForm 필드에 적용하므로 비대칭이던 내보내기 전용 공백을 해소합니다- FDF의 최신 XML 대응 형식인 XFDF(XML Forms Data Format)의 양방향 교환을 위해
ExportFormDataToXFDF/ExportFormDataToXFDFString/ImportFormDataFromXFDF/ImportFormDataFromXFDFString을 추가했습니다 - 고급 호출자가 엔진을 직접 구동할 수 있도록 네임스페이스 범위 XMP 설정자 6개(
SetDublinCore,SetXMPBasic,SetAdobePDF,SetPDFA,SetPDFUA,SetXMPMM)를TPDFlibXMP에 공개했습니다
Version 3.180.0
추가
SearchAndReplaceTextInContent를 추가했습니다.TPDFContentProgram.ReplaceTextRun을 통해 Tj/TJ/'/" 표시 텍스트 연산자를 제자리에서 재작성하는 진정한 콘텐츠 스트림 텍스트 대체를 수행하며, 원래 글리프 위에 사각형만 덮는 기존 마스크 기반SearchAndReplaceText와 다릅니다. 원본 텍스트는 스트림에서 사라져 복구할 수 없습니다.SearchText를 통해 결과를 찾고, 각 결과 사각형을FindInstructionsInRect를 통해 이를 포함하는 명령에 매핑한 뒤 재작성하고 계층에 다시 기록합니다
Version 3.179.0
추가
- 구조화된 내부 로거(
TPDFlibLogger)를 새Lib/PDFlibLogger.pas유닛에 추가했습니다. 네 가지 수준(Debug/Info/Warn/Error), 호스트 콜백(OnLog), 선택적 스레드 안전 파일 싱크 및 기존 숫자 코드(1xx/3xx/4xx/5xx)에 마침내 사람이 읽을 수 있는 텍스트를 제공하는 오류 코드-메시지 맵(PDFlibErrorMessage)을 갖추며,TPDFlib의Logger속성을 통해 공개됩니다 RenderPagesToFilesParallel을 추가했습니다.TTask풀과 작업자마다 하나의TPDFlib인스턴스(TPDFlib은 스레드 안전하지 않음), GDI+ 아파트 안전성을 위한 스레드별CoInitialize를 사용하여 페이지 범위를 페이지당 하나의 파일로 렌더링하며, CPU 바운드 래스터 출력에서 CPU 코어 수에 거의 선형으로 확장됩니다
Version 3.178.0
추가
- Windows 시스템 저장소의 모든 인증서("MY", "Root", ...)를 열거하여 주체, 발급자, 일련번호, 유효 기간, HasPrivateKey 및 Qualified(eIDAS QCStatements 확장, OID 0.4.0.1862.1.7, PDFlibASN1의 새 내장 DER 디코더로 감지)를 반환하는
EnumCertificates를 추가했습니다. 이전의 CN별 단일 인증서SetSignProcessCertFromStore제한을 대체합니다 - 열거에서 얻은 원시 PCCERT_CONTEXT 핸들로 서명 인증서를 선택하는
SetSignProcessCertFromStoreByHandle을 추가하여 호출자가 Subject CN뿐 아니라 모든 기준(qualified 필터, 유효성, 지문)으로 선택할 수 있게 했습니다 - 그려진 영역이 사각형과 교차하는 텍스트, 벡터 경로 및 이미지 XObjects를 실제로 제거하는
RedactRegion을 추가했습니다. 원래 콘텐츠를 덮기만 하는MaskRect와 달리 제거된 콘텐츠를 복구할 수 없도록 콘텐츠 스트림을 편집하며 선택적 검정 채우기와 /Redact 주석을 지원합니다. PDFlibContentModel의 CTM 추적 콘텐츠 스트림 분석기(FindInstructionsInRect)가 이를 지원합니다 - CryptDecodeObjectEx 없이 프로세스 내에서 인증서 확장을 검사하도록 최소 DER 디코더 함수(
DERDecodeLength,DERFindExtensionByOID)를 PDFlibASN1에 추가했습니다
Version 3.177.0
추가
- 벡터 Form XObject 캡처를 통해 기존 페이지를 새 레이아웃으로 구성하는 페이지 이어 붙이기 API를 추가했습니다(콘텐츠 스트림 연결과 달리 완전한 벡터 충실도를 유지).
StitchPageOverlay는 선택적 불투명도와 함께 한 페이지를 다른 페이지의 지정 위치에 겹치고,StitchPagesSideBySide는 새로 만든 더 넓은 페이지에 두 페이지를 좌우로 배치하며,StitchPagesVertically는 페이지 범위를 새로 만든 세로로 긴 포스터 스타일 페이지에 쌓습니다 - 새
Lib/PDFlibWatermark.pas유닛에 조합 가능한 워터마크 템플릿 계층을 추가했습니다.TPDFlibWatermarkBase는 9점 위치 지정(wpTopLeft..wpBottomRight및wpCustom)을 지원하고,TPDFlibTextWatermark,TPDFlibImageWatermark및 공유 페이지 범위 전반에서 하위 워터마크 목록을 재귀적으로 적용하는TPDFlibCompositeWatermark를 제공합니다 - 워터마크 템플릿 자체의 페이지 범위와 설정에 위임하는 편의 진입점
TPDFlib.ApplyWatermark를 추가했습니다
Version 3.176.0
추가
- 명명된 렌더링 출력 형식 상수(
PDF_RENDER_BMP,PDF_RENDER_EMF,PDF_RENDER_EMFPLUS,PDF_RENDER_EMF_DUAL등)를 추가했습니다. 정수Options값과 1:1로 매핑되며RenderPageToFile,RenderPageToStream,RenderPagesToFiles,RenderDocumentToFile에서 허용됩니다 - 숫자만 사용하는 대신 명명된 메타파일 변형(mfEMF, mfEMFPlus, mfEMFDual, mfWMF)을 허용하는
TPDFlibMetafileFormat열거형과 편의 메서드RenderPageToMetafileStream,RenderPageToMetafileFile을 추가했습니다 - 같은 메타파일에 GDI 및 GDI+ 명령을 모두 기록하여 이전 GDI 전용 소비자와 호환되는 EMF+ Dual 출력 모드(Options 값 11 / mfEMFDual)를 추가했습니다
- 렌더링된 페이지를 향상된 메타파일(CF_ENHMETAFILE), DIB 비트맵(CF_DIB), 페이지 Unicode 텍스트(CF_UNICODETEXT) 또는 세 형식 모두로 Windows 클립보드에 넣는
TPDFlibClipboardFormat열거형과RenderPageToClipboard를 추가했습니다 - 새
Lib/PDFlibClipboard.pas유닛에RenderPageToClipboard에서 사용하는 저수준 Win32 클립보드 배치 도우미를 추가했습니다 TPDFlibViewer에 완전한 모니터별 DPI 인식을 추가했습니다. 새 공개ScreenDPI속성, 호스트 모니터 DPI를 자동 감지하는CreateWnd재정의(GetDpiForWindow사용 및GetDeviceCaps대체 경로 포함), 창이 모니터 사이를 이동할 때 레이아웃을 다시 구성하고 비트맵 캐시를 지우는WM_DPICHANGED처리기를 제공합니다- 렌더러 수준에서 EMF+ Only와 EMF+ Dual 기록 중 하나를 선택하는
TPDFRenderer.SetEMFPlusMetafileType을 추가했습니다
수정
- Options 값 목록이 Page 행에 잘못 배치되고 Options 셀이 비어 있던
RenderPageToFile참조 페이지를 수정했습니다
Version 3.175.3
추가
- 모든 TDataSet(FireDAC, ClientDataSet, 쿼리 결과)을 스타일 지정 머리글, 지브라 줄무늬, 오른쪽 정렬 숫자 열 및 자동 페이지 연속 기능을 갖춘 페이지 구분 PDF 표로 렌더링하는 Lib/PDFlibTableExport.pas 유닛을 추가했습니다. FireDAC을 통해 RAD Studio customer.FDS 샘플을 로드하고 내보내는 Demo/Delphi/DataSetExport 콘솔 데모도 포함합니다
Version 3.175.2
추가
- FastReport, QuickReport 및 ReportBuilder에서 최소 보고서를 구축하고 일치하는 Addons 브리지를 통해 PDF로 내보내는 엔드투엔드 Demo/ReportBridges 프로젝트를 추가했습니다. 전용 build-ReportBridges.cmd가 엔진 소스 경로와 게이팅 기호를 제공하므로 표준 데모 빌드에서도 프로젝트를 스텁으로 컴파일합니다
Version 3.175.1
추가
- CCITT G4 및 Flate 기준과 비교하여 SymbolExtract, SkipBlackDots, BlackDotSize, LossyLevel 조합을 순회하고 행별 PDF, CSV 및 요약 출력을 생성하는 Delphi JBIG2 옵션 매트릭스 데모를 추가했습니다
- 축 방향 및 방사형 RGB 셰이더, Coons 패치 메시 셰이더, 채우기·선·텍스트 색상으로 적용하는 사용자 지정 타일링 패턴을 다루는 Delphi Pattern 대표 데모를 추가했습니다
- Group 3 1-D, Group 3 2-D 및 Group 4 압축을 BlackIs1 및 Interpolate 옵션 비트와 비교하고 각 출력 크기와 결과 /Filter 이름을 보고하는 Delphi CCITT 팩스 매트릭스 데모를 추가했습니다
- 준비된 보고서를 각 엔진의 네이티브 객체, 메타파일 및 DrawCommand 표면을 통해 PDF Library for Delphi PDF로 렌더링하는 FastReport, QuickReport, ReportBuilder 내보내기 브리지를 Addons 아래에 추가했습니다
Version 3.175.0
변경
- 동반 CSV 및 HTML 보고서에 텍스트 강조 채우기, 마크업 스타일, 메모 아이콘, 자유 텍스트, 캐럿 및 스탬프 주석을 기록하는 주석 변형 매트릭스로 WorkflowGallery 데모를 확장했습니다
Version 3.174.0
변경
- 생성된 매트릭스 보고서에서 동작 탐색, PDF/A 및 AcroForm 워크플로, 글꼴 진단, 스트리밍 전송 및 최신 스캔 압축 도우미를 매핑하도록 C++Builder AdvancedWorkflowMatrix 데모를 확장했습니다
Version 3.173.0
추가
- 하나의 생성된 PDF 바이트 버퍼를 사용하여 스트리밍 Web 및 CGI PDF 출력, 페이지 썸네일 검증 및 워터마크 전송 워크플로를 보여 주는 DeliveryWorkflowMatrix Delphi 데모를 추가했습니다
Version 3.172.0
추가
- 순서가 지정된 형제 삽입, 하위 항목 생성, 하위 트리 삭제 및 상위 항목, 형제, 수준, 대상 페이지, 열림 상태와 제목 세부 정보를 포함하는 전위 순회 개요 열거를 위한 개요 트리 편의 API를 추가했습니다
Version 3.171.0
추가
- CJK 및 Unicode 글꼴 경로, TrueType 하위 집합 업데이트, 설치된 글꼴 프로브, 문서 글꼴 열거 및 글꼴 진단 보고서를 위한 FontDiagnosticsMatrix Delphi 콘솔 데모를 추가했습니다
Version 3.170.0
추가
- Canvas DC 마이그레이션, 원시 콘텐츠 및 경로 진입점, Delphi 색상 도우미, 패턴으로 채운 텍스트, 워터마크, 페이지 썸네일 워크플로 및 렌더링된 검증 미리 보기를 위한 CanvasMigrationMatrix Delphi 콘솔 데모를 추가했습니다
Version 3.169.0
추가
- 선택적 콘텐츠 인쇄/내보내기 정책, Pattern/Form XObject 조합, 투명도 마스크 비교, PDF/A-1b 성공 및 실패 예제, AcroForm 동작 워크플로, 모양 재구성 및 가시적 서명 템플릿을 위한 전용 LayerCompositionMatrix, TransparencyMaskMatrix, ComplianceFormWorkflowMatrix Delphi 콘솔 데모를 추가했습니다
Version 3.168.0
추가
- 이미지 압축 전략 선택, 스캔 압축, JPEG 렌더링 품질 및 암호화된 권한 프로필 감사를 위한 PDF, CSV 및 HTML 보고서를 생성하는 전용 ImageCompressionMatrix 및 SecurityPermissionMatrix Delphi 콘솔 데모를 추가했습니다
Version 3.167.0
추가
- 호출자가 정수 비트 마스크를 직접 조합하지 않고 명시적 옵션 스위치를 사용할 수 있도록 JBIG2 비트맵 인코딩, EMF 가져오기 옵션, AcroForm 이벤트 동작 및 연결 동작용 명명 도우미 API를 추가했습니다
Version 3.166.0
추가
- 고급 Canvas 마이그레이션, EMF 가져오기, 이미지 압축, AcroForm, 서명, 보안, PDF/A, 선택적 콘텐츠, 패턴 및 Form XObject 워크플로를 C++Builder 프로젝트 진입점에 매핑하는 PDF, CSV 및 HTML 출력의 실행 가능한 C++Builder AdvancedWorkflowMatrix 콘솔 데모를 추가했습니다
Version 3.165.0
추가
- PDF, CSV 및 HTML 출력과 함께 문서 열기 동작, 문서 수준 JavaScript, 포함 파일 링크, 원격 GoTo 링크, AcroForm 이벤트 동작, Submit/Reset/Hide 링크 도우미 및 연결된 Next 동작을 보여 주는 Delphi 동작 탐색 매트릭스 데모를 추가했습니다
수정
- AddLinkToFile, AddLinkToFileEx, AddLinkToFileDest 및 로컬 파일 실행 링크가 무한 반복하지 않고 하나의 주석을 생성한 뒤 반환하도록 원격 파일 링크 도우미를 수정했습니다
Version 3.164.0
추가
- PDF/A 모드 설정, 투명도, 블렌드 모드, 암호화, JavaScript, 멀티미디어, 임베디드 파일, 그리고 PDF/A-3 연결 파일 워크플로에 대해 조기 거부 또는 허용 경로 결정을 검사하는 Delphi PDF/A 가드 매트릭스 데모를 추가했으며, 생성된 PDF, CSV, HTML 보고서를 제공
Version 3.163.0
추가
- FastReport, QuickReport, ReportBuilder, DBGrid, 그리고 사용자 지정 캔버스 내보내기 경로를 위한 명시적 ReportAdapter 브리지 매트릭스를 추가했으며, 재사용 가능한 어댑터 전략을 보여 주는 PDF 페이지와 함께 생성된 CSV 및 HTML 매핑 출력도 포함
Version 3.162.0
추가
- canvas 마이그레이션, EMF 가져오기 옵션, 이미지 압축 비교, AcroForm 작업 워크플로, 표시되는 빈 서명, 보안 권한, PDF/A-1b 검사, 선택적 콘텐츠, 타일링 패턴, Form XObject, DBGrid 스타일 테이블 내보내기, 대용량 파일 피크 메모리 보고를 위한 구체적 출력을 생성하는 고급 워크플로 데모 매트릭스를 추가
Version 3.161.0
추가
- compact open-document action 구성, 폼 필드 표시 이벤트 작업, TColor 및 회색 색상 설정, direct raw content, path, text, matrix content stream 삽입을 위한 Delphi 헬퍼를 추가
Version 3.160.0
추가
- 비트맵-to-JBIG2 스캔 이미지 압축, 한 번에 수행하는 이미지 마스크 및 color-key 투명도 설정, GoTo 작업 연결, JavaScript 또는 기존 작업 할당을 위한 읽기 쉬운 AcroForm 이벤트 이름용 Delphi 헬퍼를 추가했습니다
ImportEMFFromFileEx와ImportEMFFromStreamEx를 확장하여Options플래그로 비트맵 가져오기를 강제하고, EMF 컬러 이미지 JPEG 재압축을 활성화하며, GDI+ 처리 제어를 요청할 수 있게 했다
Version 3.159.1
변경
SaveToStream과 bound output stream 저장을 개선하여 큰 PDF stream object를 각 stream object마다 하나의 중간 출력 문자열로 복사하는 대신 제한된 청크로 기록하도록 했다
Version 3.159.0
추가
- 지정한 이미지를 그리거나 맞춘 뒤 즉시 핸들을 해제하는 image placement 헬퍼를 추가하고, 1회용 이미지 생성 워크플로에서 피크 메모리를 낮추기 위한 Delphi, DLL, ActiveX 엔트리 포인트를 제공
- 임계값 변환과 isolated black-pixel cleanup을 거친 뒤 스캔 이미지 압축 워크플로로 넘기는 1-bit BMP 렌더링용
RenderPageToMonochromeFileEx를 추가
Version 3.158.1
추가
- 재사용 가능한 report-style export, RichEdit-to-EMF rich text import, page-thumbnail, annotation, form XObject, table, compression, JavaScript, bound-stream 출력 시나리오를 결합한 Delphi 워크플로 데모를 추가
Version 3.158.0
추가
- Delphi, DLL, ActiveX 엔트리 포인트를 가진 metadata encryption control APIs를 추가하고, SetEncryptMetadata로 unencrypted XMP metadata streams를 가진 Standard-security PDF를 쓸 수 있으며, GetEncryptMetadata는 대기 중이거나 로드된 /EncryptMetadata 상태를 보고하게 했습니다
Version 3.151.0
추가
DrawPie,DrawChord,DrawEllipticPie,DrawEllipticChord를 추가해 명시적인 closed circular 및 elliptic arc drawing을 outline, fill, fill-and-outline 모드로 수행할 수 있게 했다
Version 3.150.0
추가
NewGraphicsState와SetGraphicsState를 추가해 호출자가 fill transparency, stroke transparency, line width, line cap, line join, miter-limit 설정을 묶은 재사용 가능한 ExtGState resource를 만들 수 있게 했다
Version 3.149.1
수정
- Form XObject와 miter-limit 메서드의 중복된 ActiveX dispatch ID를 수정해 late-bound COM 호출자가 각 메서드를 모호함 없이 해석할 수 있게 했다
Version 3.149.0
추가
- miter join을 사용하는 path의 stroke miter-limit ratio를 제어하는
SetMiterLimit를 추가 BeginFormXObject,EndFormXObject, 및CancelFormXObject를 DLL 및 ActiveX API를 통해 공개했습니다
Version 3.148.0
추가
- 재사용 가능한 Form XObject builder APIs를 추가해
BeginFormXObject,EndFormXObject,CancelFormXObject로 일반 page drawing calls를 사용해 재사용 가능한 template를 그리고 captured-page drawing APIs로 반복 배치할 수 있게 했다
Version 3.147.0
추가
SetTextTilingPattern와SetLineTilingPattern을 추가해 captured-page tiling patterns를 text, underline, stroked graphics에 대해 drawing commands를 복제하지 않고 재사용할 수 있게 했다
수정
- 획질 셰이더와 타일링 패턴 색상은 이제 비스트로킹 색 상태를 갱신하는 대신 스트로킹 패턴 색 연산자를 기록합니다
Version 3.146.0
추가
BeginOptionalContent와EndOptionalContent를 추가해 기존 content stream을 다시 쓰지 않고 이후 drawing commands만 optional content group으로 표시할 수 있게 했다
수정
- optional content, tagged PDF, artifact scope가 content stream 끝에서 닫힐 때 scope-closing marked-content operators를 즉시 flush하도록 했다
Version 3.145.0
추가
SetTransparencyEx를 추가해 기존 PDF 1.4 auto-upgrade 동작을 유지하면서 이후에 그리는 text와 graphics에 대해 fill 및 stroke transparency 값을 각각 설정할 수 있게 했다
Version 3.144.0
추가
AddLinkToNamedDestination를 추가해 페이지 hotspot이 링크 생성 시 target page를 해결하지 않고도 같은 문서의 named destination으로 이동할 수 있게 했다
수정
- annotation이 없는 페이지에서는 annotation action readers가 비어 있는 annotation cache를 역참조하지 않고 action 없음으로 반환하도록 했다
Version 3.143.0
추가
- form-field action management APIs를 추가해 호출자가 기존 action을 field trigger에 연결하고, typed trigger action을 검사하고, primary 또는 additional field actions를 제거할 수 있게 했다
수정
FormFieldJavaScriptAction가 PDF/A 문서와 잘못된 trigger 이름을 거부하고 비준수 field action dictionaries를 쓰지 않도록 했다
Version 3.142.0
추가
- action chaining APIs를 추가해 호출자가 URI, named, JavaScript next-actions를 기존 annotation, outline, form-field action에 추가하고
GetActionNextCount와GetActionNextInfo로 연결된 action을 검사할 수 있게 했다
Version 3.141.0
추가
- 페이지 핫스폿이 JavaScript 없이 표준 PDF 동작을 통해 AcroForm 필드를 제출하거나 재설정할 수 있도록
AddLinkToSubmitForm과AddLinkToResetForm을 추가했습니다
Version 3.140.0
추가
AppendToStream을 추가하여 증분 업데이트 워크플로가 업데이트를 먼저AnsiString으로 구체화하지 않고 호출자가 제공한 스트림에 직접 쓸 수 있도록 했습니다
변경
- 이제
SaveToStream이 대상 스트림으로 직접 직렬화하고,AppendToString(1)은 원본 소스 바이트를 임시 버퍼로 복사하지 않고 증분 업데이트 섹션만 반환합니다
Version 3.139.0
추가
- 스레드형 주석 회신을 일반 주석 속성 태그 대신 명명된 읽기 측 접근자를 통해 검사할 수 있도록
GetAnnotReplyTo와GetAnnotReplyType을 추가했습니다
Version 3.138.0
추가
- 결합된 글꼴 진단, 이미지 샘플링, 색상 공간 검색, 로드 시간 측정 및 JSON, CSV, HTML 보고서로 PDF를 일괄 검사하는 Delphi
DocumentInspectionWorkbench샘플을 추가했습니다
Version 3.137.0
추가
- 페이지 이미지 검색, 디코딩된 이미지 바이트 및 페이지 색상 공간 검색을 CSV 및 HTML 타이밍 보고서와 함께 측정하는 Delphi
ImageDecodeBenchmark샘플을 추가했습니다
Version 3.136.0
추가
- 한 번의 호출로 문서 글꼴 포함, 하위 집합, Standard 14, CID, Type3 및 알 수 없는 글꼴 수를 요약하는
GetDocumentFontDiagnostics와TPDFlibFontDiagnostics를 추가했습니다
Version 3.135.0
추가
TPDFlibSignatureVerifier.VerifySignerCertificateChain은 이제 Windows CryptoAPI를 사용하여 내장된 서명자 인증서 체인을 구축하고, 체인이 Windows 기본 신뢰 정책을 만족할 때만vsValid를 반환하며, 자체 서명되거나 신뢰할 수 없는 서명자 인증서는VerifySignature의 콘텐츠 무결성 결과에 영향을 주지 않고vsInvalid를 반환합니다.
Version 3.134.0
수정
TPDFlibSignatureVerifier.VerifySignature는 이제 레거시adbe.pkcs7.sha1서명을 검증하며, 서명된 다이제스트가 적용된/ByteRange바이트와 일치하면vsValid를 반환하고, 덮인 콘텐츠가 변경된 후에는vsInvalid를 반환합니다.
Version 3.133.0
추가
- 선택한 페이지 간에 렌더러 설정을 재사용하면서 임의의 페이지 범위를 번호가 매겨진 출력 파일로 렌더링하는
RenderPagesToFiles및DARenderPagesToFiles가 추가되었습니다.
Version 3.132.0
추가
- 왼쪽/가운데/오른쪽 정렬과 토큰 확장(
&P현재 페이지,&N전체 페이지,&D날짜,&T문서 제목,&&리터럴 앰퍼샌드)을 사용하여 지정된 범위의 모든 페이지의 고정된 위쪽 또는 아래쪽 여백에 텍스트를 배치하는AddPageHeader및AddPageFooter편의 스탬퍼가 추가되었습니다. soUnderlay를 사용하는StampText및StampImage는 이제 새로운 콘텐츠 레이어를 앞에 추가하여 기존 페이지 콘텐츠 아래에 콘텐츠를 확실하게 배치합니다(이전에는soOverlay처럼 위에 그렸습니다). 이는 새로운PrependContentLayer페이지 트리 메서드에 의해 지원됩니다.
Version 3.131.0
추가
- 모든 콘텐츠 레이어를
q sx 0 0 sy tx ty cm ... Q그래픽 상태 블록으로 감싸고 MediaBox 및 CropBox의 크기를 조정하여 선택한 페이지의 콘텐츠 비율을 조정하는ScalePage(ScaleX, ScaleY, Anchor)가 추가되었습니다. 앵커는 왼쪽 아래 원점을 유지하거나(0), 콘텐츠를 가운데로 맞추거나(1), 왼쪽 위를 유지합니다(2). - 새로운
ekPath요소 종류로EnumPageElements를 확장했습니다: 각 페이지는 구조화된 콘텐츠 모델을 통해 콘텐츠 스트림에서 추출된 경계 상자, 점 개수, 닫힘 플래그 및 페인트 연산자와 함께 벡터 경로를 보고합니다.
Version 3.130.0
추가
- 다시 저장할 때 로드된 문서를 축소하는 3개의 파일 크기 최적화 API가 추가되었습니다:
SubsetEmbeddedFonts는 FontSub.dllCreateFontPackage서비스를 통해 문서가 실제로 렌더링하는 유니코드 문자로 모든 내장된 TrueType 글꼴 프로그램(FontFile2)을 다시 작성합니다.DownsampleImages(MaxDPI, Quality, Filter)는 대상 DPI 이상의 각 이미지 XObject를 디코딩하고, 리샘플링(box 또는 bilinear)한 다음 JPEG 또는 PNG로 다시 인코딩합니다.NormalizeLZWStreams는 기존 LZW 디코더 및 Flate 인코더를 통해 Predictor 매개변수를 유지하면서 LZWDecode로 필터링된 모든 스트림을 FlateDecode로 다시 작성합니다.
Version 3.129.0
추가
- 이전에는 읽기/구문 분석만 지원했던 4가지 음영 유형에 대한 메시 음영 생성 API가 추가되었습니다:
NewRGBFreeFormTriangleMesh(ShadingType 4, 자유 형태 Gouraud 삼각형),NewRGBLatticeTriangleMesh(ShadingType 5, 격자 형태 Gouraud),NewRGBCoonsPatchMesh(ShadingType 6, Coons 패치 메시) 및NewRGBTensorPatchMesh(ShadingType 7, 텐서 제품 패치 메시) — 각각은 선택 가능한 좌표/색상 비트 깊이와 경계 상자가 있는 평면 정점 또는 패치 목록에서 명명된 메시 음영 패턴을 구축하며, 기존의 축 및 방사형 셰이더처럼SetFillShader/SetLineShader/SetTextShader로 선택할 수 있습니다.
Version 3.128.0
추가
- 뷰어용 축소판(thumbnail) 스트립 추가:
TPDFlibThumbnailBar는 모든 페이지의 미니어처를 보여주며 행이 화면에 스크롤될 때 지연 렌더링(lazy rendering)되고 그 아래에 페이지 번호를 표시합니다. 축소판을 클릭하면 연결된 뷰어가 해당 페이지로 이동합니다 — 이로써 뷰어 컨트롤 제품군(뷰어, 책갈피 패널, 검색 패널, 축소판)이 완성되었습니다.
Version 3.127.0
추가
- 뷰어용 검색 패널 추가:
TPDFlibSearchPanel.RunSearch는 연결된 전체 문서를 검색하고 검색 결과당 페이지 번호와 일치하는 텍스트를 한 행씩 나열합니다. 검색 결과를 클릭하면 뷰어가 해당 페이지로 이동합니다.
Version 3.126.0
추가
- 뷰어용 책갈피 패널 추가:
TPDFlibOutlineViewer는 들여쓰기와 함께 문서 개요 트리를 나열하고 클릭 시 연결된 뷰어(AttachViewer를 통해)를 책갈피의 대상 페이지로 이동시킵니다. 나중에 측면 패널이 공유할 재사용 가능한 패널 기본 클래스 위에 구축됩니다.
Version 3.125.0
추가
- 뷰어 컨트롤에 텍스트 선택 추가: 마우스 왼쪽 버튼을 드래그하여 선택하고 Ctrl+C를 누르거나
CopySelectedText를 호출하여 선택 항목을 클립보드에 복사할 수 있습니다. 캡처된 텍스트는SelectedText속성을 통해 사용할 수 있으며 위에서 아래로 순서대로 정렬되고 대역(band) 사이에 줄 바꿈이 있습니다. - 사각형 페이지 영역의 텍스트를 직접 반환하는
GetTextInRegion추가 — 마우스 선택이 사용하는 것과 동일한 블록 기반 조회로 사용자 지정 선택 인터페이스에서 사용할 수 있습니다.
Version 3.124.0
추가
- 이제 뷰어 컨트롤은 백그라운드 스레드에서 인접한 페이지를 사전 렌더링하므로 앞뒤로 페이지를 넘길 때 다음 페이지가 즉시 표시됩니다. 작업자는 자체 문서 인스턴스를 사용하고 UI를 차단하지 않고 완성된 렌더링을 캐시에 전달합니다.
- 뷰어에 링크 상호 작용 추가: 링크 주석을 클릭하면 페이지 번호 및
GetAnnotActionInfo가 생성하는 동일한 형식의 동작 요약(웹 주소, 문서 대상, 명명된 동작 등)과 함께OnLinkClick이 발생합니다.LinkActionAtPagePoint는 사용자 지정 처리를 위해 기본 적중 테스트(hit test)를 노출합니다.
Version 3.123.0
추가
- 뷰어 컨트롤에 연속 스크롤 추가:
SetDisplayMode는TPDFlibViewer를 단일 페이지 표시와 전체 문서의 연속 수직 스크롤 간에 전환하며, 뷰포트에 보이는 페이지만 렌더링되고 현재 페이지는 스크롤 위치를 추적합니다(페이지가 보일 때OnPageChange발생). - 렌더링된 페이지는 이제 LRU(least-recently-used) 비트맵 캐시에 보관되므로 앞뒤로 스크롤해도 다시 렌더링되지 않습니다. 메모리 예산은 기본적으로 128MB이며
SetCacheLimit으로 조정되어 예산이 줄어들거나 꽉 차면 가장 오래된 페이지를 축출합니다. - 뷰어에 마우스 휠 스크롤 및 키보드 탐색 추가: PageUp/PageDown(단일 페이지 모드에서는 페이지 단계, 연속 모드에서는 뷰포트 단계), 화살표 키, Home 및 End
Version 3.122.0
추가
- 대화형 PDF 뷰어 컨트롤 추가:
TPDFlibViewer는 파일에서 문서를 열거나 기존TPDFlib인스턴스에 연결하고, 선택한 렌더링 엔진(GDI+, Cairo 또는 PDFium)을 통해 페이지를 표시하며, 페이지 탐색(GoToPage/NextPage/PrevPage및OnPageChange이벤트)과 줌 컨트롤 — 고정 비율, 너비에 맞춤 또는 페이지에 맞춤, 컨트롤 크기가 조정될 때 자동으로 다시 계산됨 — 을 제공하는 VCL 스크롤 컨트롤입니다. 뷰포트보다 넓은 페이지는 스크롤되고, 좁은 페이지는 가운데에 맞춰집니다. - IDE에서 끌어서 놓기 용도로 사용할 수 있도록 컨트롤을 losLab PDF 팔레트 페이지에 등록하는 디자인 타임 패키지(
Package\PDFlibViewerPkg.dpk) 추가
Version 3.121.0
추가
DrawText의 자동 복잡한 스크립트 셰이핑(shaping): 아랍어, 히브리어, 인도계 및 기타 복잡한 스크립트 문자가 포함된 텍스트는 이제 자동으로 감지되고 모양이 지정됩니다 — contextual 문자 형식, 필수 합자 및 오른쪽에서 왼쪽 방향 지정이 코드 변경 없이 올바르게 출력됩니다. 표준 14 이름은 매트릭 호환 설치 글꼴(Helvetica는 Arial로, Times는 Times New Roman으로, Courier는 Courier New로)에 매핑되며GetTextWidth는 동일한 셰이핑 패스를 통해 측정되므로 정렬이 일관되게 유지됩니다. 라틴어, 키릴어, 그리스어 및 CJK 텍스트는 기존 그리기 경로를 바이트 단위로 유지합니다.- 자동 라우팅을 전환하는
SetTextShaping추가(기본적으로 사용 설정됨. 정확한 이전 셰이핑 동작을 복원하려면 0을 전달)
Version 3.120.0
변경
- 이제 셰이핑된 텍스트 컴패니언 글꼴은 저장 시 문서에 표시되는 글리프(glyph)로만 부분 집합화(subsetted)되어 출력 파일을 극적으로 축소시킵니다(1메가바이트가 넘는 전체 글꼴 프로그램이 사용된 글리프로 축소됨). 부분 집합 글꼴은 자체 글리프 번호 매기기를 유지하고, 부분 집합으로 태그가 지정된
BaseFont이름과 실제 글리프당/W너비를 가지며, 각 셰이핑된 글리프를 원본 문자로 다시 변환하는 ToUnicode 맵을 얻습니다 — 따라서DrawShapedText출력을 복사하거나 추출하면 lam-alef 합자 뒤의 두 글자를 모두 포함하여 원래 문자열이 반환됩니다.
Version 3.119.0
추가
- 복잡한 스크립트 텍스트 그리기 추가:
DrawShapedText는 아랍어, 히브리어 및 기타 복잡한 스크립트 문자열을 그리기 전에 셰이핑합니다 — contextual 문자 형식, lam-alef와 같은 필수 합자 및 오른쪽에서 왼쪽 방향 지정이 모두 올바르게 출력됩니다 — 그리고 전체 글꼴 프로그램을 포함하는 컴패니언 Type0 (Identity-H) 글꼴을 통해 모양이 지정된 글리프를 기록하므로, 자체 문자 코드가 없는 형식도 정확하게 렌더링됩니다. 컴패니언 글꼴은 글꼴 종류(face)당 하나씩 생성되어 호출 전반에 걸쳐 재사용됩니다. - 동일한 셰이핑 패스를 통해 텍스트를 측정하여 합자가 적용된 텍스트가 실제 그려진 너비로 측정되도록 하는
GetShapedTextWidth추가 — 셰이핑된 단락을 오른쪽 정렬하거나 가운데에 맞출 때 사용하세요.
Version 3.118.0
추가
- 복잡한 스크립트 텍스트 셰이핑을 위한 기반 추가: 새로운 Uniscribe(usp10.dll) 바인딩은 아랍어, 히브리어 및 기타 복잡한 스크립트 문자열을 올바르게 정렬되고 모양이 지정된 글리프 실행(contextual 아랍어 형식, lam-alef와 같은 필수 합자, 오른쪽에서 왼쪽 방향 지정 등)으로 변환하고 각 글리프의 글꼴 글리프 인덱스, advance 및 원본 문자 클러스터를 보고합니다. 이 셰이핑 엔진을 바탕으로 이후 버전에서 그리기 경로를 빌드하며, 지연 로드되므로 Uniscribe가 없는 플랫폼은 기존의 문자 단위 경로를 그대로 유지합니다.
Version 3.117.0
추가
- ICC 프로필 인트로스펙션(introspection) 추가:
GetOutputIntentICCInfo는 문서의 OutputIntent에 연결된 ICC 프로필을 구문 분석하고 그 버전, 디바이스 클래스, 데이터 색상 공간, 프로필 연결 공간, 렌더링 의도 및 구성 요소 수를 보고하므로 PDF/A 및 PDF/X 파일의 인쇄 조건을 검사할 때 유용합니다. 또한 렌더러의 ICCBased 색상 공간 처리는 이제 음영의 색상 공간에/Alternate나/N이 없을 때 프로필 헤더 자체에서 구성 요소 수를 파생합니다.
Version 3.116.0
추가
- 테이블 인지 텍스트 추출 모드 추가:
GetPageText옵션 10은 페이지 텍스트 블록의 왼쪽 가장자리를 전역 열 위치로 클러스터링하고 탭으로 구분된 행을 내보내므로 표 형식 레이아웃이 가져오기 준비가 완료된 TSV로 추출되며 세로로 정렬된 셀이 행 간에 계속 정렬된 상태를 유지합니다.
Version 3.115.0
추가
- 페이지 임포지션(터잡기) 추가:
ImposePagesNUp는 문서의 모든 페이지를 n-up 그리드(2-up, 4-up, 9-up 또는 임의의 열 x 행 배열)의 새 시트에 배치하며 각 페이지의 종횡비를 맞추고 셀의 중앙에 라이브 벡터 콘텐츠로 배치하거나 booklet 옵션을 사용하여 양면 인쇄 후 쌓을 때 책자로 접히는 중철 시트를 생성합니다.
Version 3.114.0
추가
- 입력된 동작 판독기인
GetAnnotActionInfo및GetOutlineActionInfo를 Hide(숨겨진 대상 수 및 숨기기/표시 플래그 포함), SubmitForm(제출 URL 및 필드 수), ResetForm(필드 수) 및 ImportData(원본 파일) 등 4가지 추가 동작 종류로 확장하고 Named 동작(예:NextPage)의 이름 페이로드를 노출합니다. 이제 두 판독기가 하나의 구문 분석기를 공유하므로 주석 링크와 북마크가 동일한 정보를 보고합니다.
Version 3.113.0
추가
- 양식 필드 서식 도우미 추가:
SetFormFieldNumberFormat(소수 자릿수, 구분 기호 스타일, 음수 스타일 및 통화 배치),SetFormFieldPercentFormat및SetFormFieldDateFormat(mm/dd/yyyy등 Acrobat 날짜 그림 문자열)은 각각 표준 Acrobat 서식 JavaScript 쌍을 필드의 추가 작업(키 입력 필터 + 표시 서식 지정자)에 기록하므로 호환되는 뷰어가 수기 JavaScript 없이 입력을 유효성 검사하고 서식이 지정된 값을 렌더링할 수 있습니다.
Version 3.112.0
추가
- 소리 주석 생성 추가:
AddSoundAnnotationFromFile은 압축되지 않은 PCM WAV 파일(8비트 또는 16비트, 모노 또는 스테레오)을 읽어와 그 샘플을 PDF 소리 메커니즘에서 예상하는 서명된 인코딩의/Sound스트림으로 스피커 아이콘 주석 뒤에 삽입하여 기존의GetAnnotSoundToFile/GetAnnotSoundToString판독기와 함께 라운드트립을 완료합니다.
Version 3.111.0
추가
- 스레드형 주석 답글 추가(ISO 32000-1 §12.5.6.3):
AddAnnotationReply는 기존 주석에 답글을 숨겨진 Text 주석으로 추가하며, 그/IRT는/RT답글 관계를 통해 대상을 참조하므로 Acrobat 및 기타 뷰어는 댓글 패널의 대상 아래에 스레드 형태로 이를 표시합니다.AddAnnotationState및 FDF 주석 교환과 결합하면 완벽한 협업 검토 라운드트립이 가능합니다.
Version 3.110.0
추가
- 메쉬 및 함수 기반 음영 렌더링을 추가하여 7가지 PDF 음영 유형의 지원을 완료했습니다. 자유 형식 Gouraud 삼각형 메쉬(유형 4), 격자 형식 Gouraud 메쉬(유형 5), Coons 패치 메쉬(유형 6) 및 텐서 곱 패치 메쉬(유형 7)는 비트 패킹된 데이터 스트림(공유 가장자리 패치 플래그,
/Decode값 매핑 및 선택적 색상/Function램프 포함)에서 디코딩되어 Cairo 엔진의 기본 메쉬 그레이디언트를 통해 그려집니다. 함수 기반 음영(유형 1)은 해당 도메인에 걸쳐 미세한 패치 그리드로 음영 함수를 샘플링하여 근사화되며, 지원되는 색상 공간은 DeviceRGB, DeviceGray, DeviceCMYK 및 ICCBased 대체 색상을 포함합니다(GDI+ 엔진에는 메쉬 그레이디언트 기본 형식이 없으므로 메쉬 음영 처리된 영역은 그려지지 않은 상태로 둡니다).
Version 3.109.0
추가
- 텍스트 수준 편집을 통해 콘텐츠 편집 프레임워크(4단계)를 완료했습니다.
TPDFContentProgram.GetTextRuns는 각각에서 활성화된 글꼴 리소스 및 크기와 함께 페이지의 텍스트 표시 명령을 열거하며(저장/복원 중첩을 통해 글꼴 상태 추적),ReplaceTextRun은 표시된 텍스트를 그 자리에서 바꿉니다. 이는 이전 텍스트를 마스킹하고 그 위에 다시 그리는 오버레이 기반 접근 방식과 달리 원본 위치, 글꼴 및 색상을 유지하는 진정한 콘텐츠 스트림 교체입니다.
Version 3.108.0
추가
- 페이지 지오메트리용 개체 모델을 콘텐츠 편집 프레임워크(3단계)에 추가했습니다.
TPDFContentProgram.LiftPath는 경로 개체(이동/선/곡선/사각형 구성 연산자 및 이를 종료하는 클리핑/페인팅 연산자)를 편집 가능한 하위 경로 및 세그먼트의TPDFPath로 끌어올립니다.TPDFPath.Transform은 모든 지점에 아핀 행렬을 적용하며(기존 아트워크 이동, 크기 조절, 회전 또는 기울이기),LowerPath는 수정된 기하학적 구조를 원래 명령 위에 다시 써WritePageContentLayer를 준비합니다.
Version 3.107.0
추가
TPDFContentProgram에서 명령어 수준의 편의 기능으로 콘텐츠 편집 프레임워크(2단계)를 확장했습니다.InsertFromSource는 콘텐츠 스니펫을 구문 분석하고 임의 위치에 해당 명령어를 연결하며,SetOperand는 소스 구문에서 단일 피연산자를 재작성하고(좌표 번호 변경, 채우기 색상 변경),OperandText는 피연산자를 다시 읽어옵니다.InstructionGroup,FindNextOp및FindNextGroup은 연산자 또는 ISO 32000-1 연산자 범주별로 명령 목록을 탐색합니다.
Version 3.106.0
추가
- 구조화된 콘텐츠 편집 프레임워크의 첫 번째 단계를 추가했습니다.
ParsePageContentLayer는 페이지 콘텐츠 레이어를 편집 가능한TPDFContentProgram(각 PDF 콘텐츠 연산자(ISO 32000-1 표 51의 73개 연산자 모두)와 디코딩된 피연산자 개체가 포함된 명령 목록)으로 디코딩하며,WritePageContentLayer는 프로그램을 페이지로 다시 직렬화하므로 호출자가 그리기 명령을 구문 분석, 검사, 삭제 또는 재정렬하고 페이지를 다시 작성할 수 있습니다.GetPageContentLayerCount는 개별적으로 편집되는 콘텐츠 레이어 수를 보고합니다. 에미터(emitter)는 동작을 보존하며(수정되지 않은 왕복은 픽셀이 똑같이 렌더링됨), 알 수 없는 연산자는 변경되지 않고 그대로 유지되고 인라인 이미지는 그대로 전달됩니다.
Version 3.105.0
추가
- 읽기 순서 텍스트 추출 모드 추가:
GetPageText옵션 9는 재귀적 공백 분석(XY 절단)을 사용하여 페이지 텍스트를 시각적 읽기 순서로 반환하므로 다단 레이아웃이 기존의 위에서 왼쪽 순서 방식처럼 여러 단을 줄 단위로 교차하는 대신 단 단위로 추출됩니다(전체 너비 제목을 먼저 추출한 후 전체 왼쪽 단, 전체 오른쪽 단 순서로 진행).
Version 3.104.0
추가
- 서명 확인자에 서명자 인증서 인트로스펙션(introspection) 추가:
GetSignerCertificate는 첫 번째 서명 필드의 PKCS#7 페이로드를 디코딩하고 포함된 서명자 인증서의 요약 정보(제목 및 발급자 표시 이름, 기존의 16진수 형식의 일련 번호, UTC 유효성 범위(NotBefore/NotAfter) 및 현재 인증서가 해당 범위 내에 있는지를 보고하는 편의 플래그)를 반환합니다. 서명자는 발급자와 일련 번호를 통해 포함된 인증서 중에서 일치 항목을 찾습니다.
Version 3.103.0
추가
NewRGBAxialShader의 방사형 버전에 해당하는NewRGBRadialShader추가: 원 밖으로 선택적 색상을 확장하여 두 RGB 색상 간에 혼합되는 명명된 두 원형 방사형 그레이디언트(ShadingType 3, ISO 32000-1 §8.7.4.5.3)를 등록합니다. 기존SetFillShader,SetLineShader또는SetTextShader를 사용하여 이 항목을 선택하여 원형 "글로우" 채우기, 선 및 텍스트를 칠합니다.
Version 3.102.0
추가
- 방사형(ShadingType 3) 그레이디언트 렌더링(ISO 32000-1 §8.7.4.5.4) 추가: 페이지 렌더러는 이전에 지원되던 축방향(ShadingType 2) 그레이디언트 외에도
sh연산자가 사용하는 2원 방사형 음영 및 음영 패턴 채우기를 칠합니다. 다중 중지 색상 함수, DeviceRGB/DeviceCMYK/DeviceN/Separation/ICCBased 색상 공간 및/Extend처리를 통해 GDI+ 및 Cairo 래스터 엔진에서 모두 지원됩니다.
Version 3.101.0
추가
- 구름 모양 테두리 효과 추가(ISO 32000-1 §12.5.4):
SetAnnotCloudyEffect는 강도 1 또는 2를 적용해 Acrobat의 Cloudy 스타일과 일치시키고 0을 입력하면 효과를 제거하여/BE테두리 효과 딕셔너리를 기록함으로써 Square, Circle, Polygon 또는 FreeText 주석의 테두리를 연결된 반원형 "수정 기호(revision cloud)"로 변환합니다.GetAnnotCloudyEffect는 이 설정을 읽어옵니다(0 = 구름 없음, 그렇지 않으면 강도 1~2).
Version 3.100.0
추가
- 주석 검토 상태 추가(ISO 32000-1 §12.5.6.3):
AddAnnotationState는 기존 주석의 검토 상태 변경 사항을 기록하기 위해 대상을 가리키는/IRT와 상태를 전달하는/State+/StateModel이 포함된 숨겨진 Text 주석을 추가하여 Acrobat의 주석-검토 워크플로에서 사용하는Review모델(없음/수락/거절/취소/완료)과Marked모델(표시 없음/표시됨)을 지원합니다.GetAnnotState및GetAnnotStateModel은 모든 주석에서 기록된 문자열을 읽어옵니다(없는 경우 빈 칸).
수정
- 최신 개발 버전으로 빌드된 응용 프로그램의 시작을 막았던 로드 시간 실패(Windows 인증서 이름 조회가 존재하지 않는 DLL 진입점에 바인딩됨)를 수정하고 FDF 주석 가져오기, 페이지 범위 회전 및 서명 플래그 경로의 컴파일 재발(regression) 버그를 복구했습니다.
Version 3.99.0
추가
- 문서 지문 및 전환 읽기 API 추가:
GetDocumentFileID는 트레일러의/ID배열에서 영구 문서 식별자(16진수로 인코딩된 첫 번째 요소)를 반환하며, 이는 안정적인 캐시 키나 문서 지문으로 유용합니다.GetPageTransition은SetPageTransition에 대응하는 읽기 전용 기능으로, 저장된/Trans의/S,/Dm및/M항목을 역으로 매핑하여 형식화된TPDFlibPageTransition값으로 된 전환 스타일과 표시 시간, 전환 시간을 반환합니다.
Version 3.98.0
추가
- 페이지 범위 회전 및 축소판 검사 추가:
RotatePageRange는 범위 내의 모든 페이지에 0/90/180/270도 회전을 적용합니다(기존 단일 페이지RotatePage를 래핑하여 호출자가 더 이상 페이지 단위 루프를 사용할 필요가 없습니다).HasPageThumbnail은 페이지에/Thumb항목이 포함되어 있는지 보고합니다.GetPageThumbnailInfo는 축소판 이미지 XObject의 너비, 높이 및 구성 요소당 비트(bits-per-component)를 읽습니다.
Version 3.97.0
추가
- 확장된 주석 속성 리더 추가:
GetAnnotColor는/C색상 배열(0..1 RGB, “명시적 색상 없음”과 “명시적 검은색”을 구분하는 HasColor 플래그 포함)을 읽습니다.GetAnnotBorderWidth는/BS /W를 읽고, 없으면 기존의/Border배열을 대신 읽습니다.GetAnnotOpacity는/CA획(stroke) 알파 값(기본값 1.0)을 읽습니다.GetAnnotCreationDate는/CreationDate타임스탬프를 읽습니다.GetAnnotFlags는/F가시성/인쇄 플래그 바이트를 읽습니다.
Version 3.96.0
추가
- 읽기 전용 보안 검사 API 추가:
IsEncrypted는 로드된 문서에/Encrypt딕셔너리가 있는지 보고합니다.GetEncryptionLevel은 쓰기 측 암호화 옵션과 일치하는 형식화된 강도(0=none, 1=RC4-40, 2=RC4-128, 3=AES-128, 4=AES-256, 5=AES-256 Acrobat X)를 반환합니다.GetUserPermissions는 직접 비트 테스트를 위한 원시/P권한 단어(permission word)를 반환합니다.IsOwnerPassword는 소유자 자격 증명으로 문서가 열렸는지 보고합니다.
Version 3.95.0
추가
- 고급 인쇄 및 텍스트 교체 추가:
PrintDocumentAdvanced는 부수/정렬과 함께, 형식화된TPDFlibPrintSettings레코드를 통해 전체 프린터 DEVMODE(양면, 방향, 색상, 인쇄 품질, 용지 크기, 용지함)를 제어하고, 기존 사용자 지정 프린터 프로필 메커니즘으로 각 비기본 필드를 적용합니다.SearchAndReplaceText는 페이지 범위를 검색하여 각 검색 결과마다 원래 텍스트 블록을 불투명한 흰색 사각형으로 가리고, 호출자가 선택한 글꼴을 사용해 블록 시작 지점에 교체 텍스트를 다시 그리며, PDFtoolkit SearchAndReplace의 오버레이 교체 동작을 동일하게 수행합니다.
Version 3.94.0
추가
- 주석 FDF 상호 변환 기능 추가 (Acrobat “주석 내보내기/가져오기”):
ExportAnnotationsToFDFString및ExportAnnotationsToFDF는 모든 페이지의/Annots를 탐색하고, 각 주석을 FDF/Annots배열 내에/Type /Annot항목으로 직렬화하여/Subtype,/Contents,/Rect,/T작성자 레이블,/Subj및 0부터 시작하는/Page인덱스와 함께 저장합니다.ImportAnnotationsFromFDFString및ImportAnnotationsFromFDF는 소규모 상태 기계(state machine)로 해당 FDF를 분석하고 스티키 노트로 축소하지 않은 채 전체 주석 딕셔너리를 보존하여 일치하는 페이지에 각 항목을 새 주석으로 다시 만듭니다.