losLab 소프트웨어 개발 블로그

PDFium Component

Software Development Blog

PDFium Component

Delphi에서 PDFium Component로 PDF 뷰어 구축하기

Delphi에서 PDFium Component를 사용해 작동하는 PDF 뷰어를 조립하세요: TPdf를 TPdfView에 연결하고 문서를 불러와 렌더링한 다음 페이징, 확대/축소, 맞춤 모드 탐색 기능을 추가합니다. Delphi의 PDF 뷰어는 두 개의 컴포넌트와 이들 사이의 연결로

PDFium Component

Delphi에서 PDFium Component로 PDF 페이지를 JPEG 이미지로 렌더링하기

Delphi에서 PDFium Component를 사용하여 PDF 페이지를 JPEG로 래스터화합니다: DPI를 픽셀 크기로 변환하고, 각 페이지를 비트맵으로 렌더링한 다음, 선택한 품질로 TJPEGImage를 사용해 인코딩합니다. PDF 페이지를 JPEG로 렌더링하는 것은 사람들이 종종

PDFium Component

Delphi에서의 PDFium DLL 배포: 로드 실패 해결 가이드

Delphi에서 pdfium.dll 로드 실패 문제를 해결합니다: 32/64비트 ERROR_BAD_EXE_FORMAT 193 아키텍처 불일치 해결, 구버전 DLL 판별 및 스레드 안정성이 확보된 PDFium 컴포넌트 로드 방식 고객의 로컬 PC 환경에서 pdfium.dll이 정상적으로

PDFium Component

PDFium을 사용한 Delphi에서의 XFA 서식 탐지 및 XML 데이터 추출

PDFium 컴포넌트를 사용하여 Delphi에서 XFA 대화형 서식을 탐지하고 template, datasets 및 config 패킷을 순수 XML 데이터로 추출합니다 — 정적 패킷 추출 시 V8 엔진이 요구되지 않습니다 예 — PDFium은 XFA 서식을 완벽히 지원하지만, 여기에는

PDFium Component

PDFium Component를 사용한 Delphi에서의 PDF 텍스트 추출

PDFium Component를 사용하여 Delphi에서 PDF 텍스트 추출하기: Character[]를 통한 원시 글리프 접근, ReadablePageContent를 통한 단락 구조 분석 및 Active 유효성 체크 적용 방법 PDF 텍스트 추출은 간단해 보이지만, 텍스트 레이어가

PDFium Component

Delphi에서의 PDF 디지털 서명 검사 및 PAdES 레벨 판별

Delphi 및 Lazarus용 PDFium 컴포넌트를 사용하여 PDF 서식을 판독합니다: SubFilter, ByteRange, CMS 구조를 정밀 분석하고 PAdES B-B부터 B-LTA 표준 규격 레벨을 식별합니다 서명이 날인된 PDF 문서를 전달받은 상황에서, 뷰어 프로그램

PDFium Component

Delphi에서의 장기 보존 PDF 디지털 서명: PAdES B-LT 및 B-LTA

Delphi용 PDFium 컴포넌트를 사용하여 장기 보존 PAdES 서명을 작성합니다: B-T, B-LT, B-LTA 레벨 준수를 위한 RFC 3161 타임스탬프, DSS 검증 저장소 및 DocTimeStamp 탑재 서명에 사용된 인증서가 만료되거나 발급 기관(CA)의 키 갱신이

PDFium Component

Delphi에서 안전한 PDF 사전 파싱: 이름 토큰

Delphi에서 서브스트링 키 조회가 PDF 사전 파싱을 손상시키는 이유: ISO 32000-1에 따른 전체 이름 토큰 매칭 및 악성 PDF 방지용 리소스 제한 PDF 이름 키는 접두사(prefixes)를 공유하므로 와 같은 부분 문자열(substring) 검색 방식은 PDF 사전을

PDFium Component

Delphi에서 PDF에 CID Type 2 폰트 임베드하기

PDFium Component는 Delphi에서 CID Type 2 폰트로 글리프 수준의 텍스트를 기록하며, CID-to-GID 맵과 ToUnicode 맵을 생성해 셰이핑된 텍스트도 추출 가능하게 유지합니다

PDFium Component

PDFium의 이모지·CJK 문자가 Delphi WideChar를 깨뜨리는 이유

PDFium 컴포넌트의 Character[] 속성이 U+FFFF를 넘는 코드 포인트를 16비트 WideChar에 담으려다 어떻게 깨지는지, 그리고 Text 속성으로 이모지와 CJK 확장 B 문자를 올바르게 추출하는 방법을 다룬다 PDF에서 이모지나 일본식 호적 이름을 텍스트로

PDFium Component

Delphi에서 암호화된 PDF를 조용히 패치할 수 없는 이유

PDFiumPas의 여섯 개 적합성 마커 주입기가 기존 /Encrypt 항목을 감지하면 왜 소스를 그대로 통과시키고, PAdES 서명기는 왜 아예 예외를 일으키는지, 그리고 적합성 스탬프·서명·암호화의 올바른 순서를 다룬다 이미 AES-256 암호화가 걸린 인보이스 PDF를 가져와,

PDFium Component

eIDAS 신뢰 목록과 적격 PDF 서명

PDFium 컴포넌트가 유럽연합 신뢰 목록을 파싱하기 전에 인증하는 방법과, 적격 서명 상태를 평범한 체인 신뢰와 분리해 기록하는 이유와 설계를 상세하게 정리해 봅니다

PDFium Component

FPC for 루프 버그: 취소를 눌러도 인쇄가 멈추지 않는다

PDFium 컴포넌트 뷰어에서 Free Pascal의 for 루프가 루프 진입 시 상한을 한 번만 고정하는 탓에 인쇄 취소 버튼이 왜 작동하지 않았는지, 그리고 Break 체인과 PrintSucceeded 플래그로 어떻게 고쳤는지 다룬다 PDFium 컴포넌트 뷰어에서 인쇄 작업 도중

PDFium Component

Delphi PDF 2.0 AES-GCM 암호화: ISO/TS 32003

PDFiumPas로 Delphi에서 ISO/TS 32003 AESV4-GCM 암호화 PDF를 작성합니다: R7 키 유도, 독립형 PDF MAC 무결성 토큰, ValidatePdfMac 상태 확인을 다룹니다

PDFium Component

Delphi에서 PDF 마크드 콘텐츠 읽고 쓰기

마크드 콘텐츠는 ISO 32000-1이 정의한 태깅된 PDF의 기반이 되는 BDC와 EMC 연산자 쌍이며 PDFium Component가 일반 Delphi 코드로 마크 이름과 타입 지정 속성 목록, MCID를 읽고 써서 접근성 검사와 구조 보수를 지원합니다

PDFium Component

델파이 PDFium 행렬 Prepend 대 Append: 피벗 회전

PDF 행 벡터 관례가 Delphi에서 Multiply를 append로, PreMultiply를 prepend로 만드는 이유와 PreTranslate가 선형 부분을 필요로 하는 이유, 피벗 헬퍼 합성 방식을 다룹니다

PDFium Component

Delphi에서 PDF Name Tree와 Number Tree 편집

PDFium Component가 Delphi에서 ISO 32000 name tree와 number tree를 재빌드하는 방식: 균형 잡힌 노드, 올바른 /Limits, 안정적인 루트 정체성, 검증된 저장

PDFium Component

Delphi에서 일부 PDF 객체 스트림이 쓰레기로 디코딩되는 이유

PDFiumPas가 v2.16.0에서 ISO 32000-1 Predictor 역변환을 어떻게 추가해, FlateDecode만으로는 놓치는 PNG·TIFF 방식으로 차분 처리된 객체 스트림 바이트를 올바르게 재구성하게 되었는지 다룬다 오류 없이 압축 해제되는데도 여전히 잡음처럼 읽히는

PDFium Component

PDFium VCL에서 OpenSSL로 PDF 서명 검증하기

PDFium VCL은 CMS 검증을 IPdfCmsVerifier 뒤의 교체 가능한 백엔드로 둡니다. 분리 콘텐츠 BIO 재구축, no-verify 플래그의 실제 범위, 빈 CRL 스토어의 함정을 다룹니다

PDFium Component

델파이 PDFiumPas의 연산자 수준 PDF 레닥션

PDFiumPas SaveAsRedacted가 연산자 수준에서 부분 가려진 텍스트, 직사각형 패스와 축 정렬 이미지를 분할한 뒤 참조되지 않는 리소스를 정리하는 방법을 다룹니다

PDFium Component

선택적 PDFium 익스포트: Delphi의 기능 게이트

pdfium.dll이 바인딩보다 오래되면 익스포트 하나만 빠져도 로드 전체가 실패할 수 있습니다. PDFium Component가 Delphi에서 선택적 익스포트를 게이트하고 안전하게 저하시키는 방법을 다룹니다

PDFium Component

Delphi의 PDFium VCL로 PDF/A 보관 적합성 만들기

Delphi의 PDFium Component로 veraPDF를 통과하는 PDF/A 아카이브를 만드는 방법을 설명한다. SaveAsPdfA, XMP와 ICC OutputIntent 주입, a/b/u 적합성, 실제 함정을 다룬다. 모든 파일을 PDF/A-1b라고 표시하는 변환기를

PDFium Component

PDF/A 구현 한계와 폰트 인코딩 검사

PDF/A 파일이 ISO 19005-1 부록 C 컨테이너 한계나 심볼릭 TrueType 폰트의 Encoding 항목에서 실패하는 이유와 PDFium Component가 DLL 없이 Delphi에서 두 검사를 보고하여 사전에 규정 위반을 정확하게 잡는 방법을 설명합니다

PDFium Component

Delphi에서 PDFium VCL로 PDF/A 사전검사 검증하기

PDFium Component로 Delphi에서 PDF/A 사전검사기를 구축합니다. 29개 검증 이슈를 토큰 스캔으로 점검하고, 파트별 게이트와 object stream 처리까지 수행하며, 전체 콘텐츠 파싱은 하지 않습니다. 아카이브 수집 게이트가 데스크 위의 어떤 뷰어에서도 멀쩡히

PDFium Component

Delphi에서 스캔 문서 PDF/raster 검증하기

ISO 23504-1로 표준화된 PDF/R이 스캔 문서를 페이지당 정확히 하나의 스트립 이미지와 텍스트나 폰트 없이 유지하며 PDFium Component가 Delphi에서 ISO 23504-1 규정 준수를 검증하고 각 거부가 의미하는 바를 구체적인 이슈로 보고합니다

PDFium Component

Delphi에서 PDFium으로 PDF/UA 구조 트리 검증하기

PDFium VCL로 live PDF tag tree를 순회해 byte-level 스캔이 놓치는 PDF/UA 콘텐츠 오류를 잡습니다. Figure Alt, Formula 텍스트, Note ID 중복을 다룹니다. 사전검사 결과는 파일이 PDF/UA clean 하다고 말합니다

PDFium Component

Delphi에서 PDFium VCL로 PDF/VT 가변 데이터 인쇄 처리하기

PDFium VCL로 Delphi에서 PDF/VT-1 가변 데이터 인쇄 파일을 생성하고 검증합니다. DPart 트리, 필수 PDF/X-4 짝맞춤, ISO 16612-2 함정을 다룹니다. 트랜잭션 인쇄소가 8만 페이지 명세서 작업을 한 줄로 반려합니다 트랜잭션 인쇄소가 8만 페이지

PDFium Component

Delphi PKCS#11: CK_ULONG과 패킹 함정

PDFiumPas는 Windows와 Linux 및 macOS의 CK_ULONG 폭과 PKCS#11 struct packing을 검증해 token function table이 조용히 잘못 해석되는 일을 막습니다

PDFium Component

Delphi에서 렌더 락을 빠뜨렸던 PDFium 호출 여섯 곳

PDFiumPas v2.26.0이 TPdf와 TPdfView에 걸쳐 렌더 락을 빠뜨렸던 여섯 개의 메서드를 어떻게 발견하고 고쳤는지, 그리고 이 경쟁 조건이 왜 재현하기 그토록 어려운지 다룬다 PDFiumPas의 렌더 락은 문서별 임계 구역이다 — 의 필드가 뒷받침하는 과 으로, 진행

PDFium Component

델파이 PDFiumPas의 희소 지연 PDF 객체 인덱스

PDFiumPas가 파일을 통째로 적재하지 않고 PDF 객체 하나를 읽는 방법. 희소 xref 섹션 디스크립터, 지연 객체 스트림, 하이브리드 XRefStm과 1 MiB 읽기 창을 다룹니다

PDFium Component

PDFium으로 Delphi에서 PDF 폰트 대체 제어하기

PDFium Component는 Delphi 애플리케이션이 임베드되지 않은 PDF 폰트에 사용할 폰트 바이트를 직접 공급하게 해 주며, 호스트 폰트 매핑을 결정론적 프로바이더로 대체합니다

PDFium Component

델파에서 레이아웃 및 자동 줄 바꿈을 위한 PDF 텍스트 측정하기

PDF 텍스트를 배치하려면 그리기 전에 문자열 너비가 필요합니다. 델파이에서 자동 줄 바꿈을 위해 PDFium 바인딩이 페이지를 건드리지 않고 텍스트를 어떻게 측정하는지 확인하세요. PDF 페이지에 텍스트를 배치하는 호출은 간단합니다. 에 문자열, 폰트, 크기 및 위치를 지정하면

PDFium Component

Delphi PDFium의 이중 회전과 Fit-Zoom 버그

PDFium 컴포넌트의 FPDF_RenderPageBitmap이 페이지의 /Rotate 값에 회전을 추가로 얹는 방식 때문에, 저장된 회전값을 그대로 다시 넘기면 페이지가 두 번 회전하는 문제와 그로 인한 썸네일 fit-zoom 종횡비 오류를 다룬다 PDFium 컴포넌트의

PDFium Component

Delphi PDFium 뷰어의 단어별 TTS 하이라이팅

PDFium 단어 상자를 사용하여 Delphi에서 텍스트 음성 변환(TTS)을 페이지 내 단어 하이라이트와 동기화하는 방법: TrackReadingWordAt, 렌더링 순서, 자동 스크롤 및 유니코드 함정 소리 내어 읽기 기능은 음성 외에도 눈에 띄는 한 가지 역할을 합니다

PDFium Component

델파이에서 PDFium 컴포넌트를 사용하여 PDF 문서 인쇄하기

델파이에서 PDFium 컴포넌트를 사용하여 PDF를 인쇄하세요: RenderPage와 rePrinting으로 페이지를 렌더링하고, StretchDIBits를 통해 비트맵을 TPrinter로 전송하며, 용지에 맞추고, 회전을 처리합니다. PDF 좌표는 포인트 단위이고, 프린터 좌표는

PDFium Component

델파이에서 PDFium으로 대용량 PDF 온디맨드 스트리밍하기

수 기가바이트의 PDF를 통째로 로드할 필요가 없습니다. TStream 어댑터가 PDFium의 온디맨드 FPDF_FILEACCESS 콜백에 어떻게 데이터를 제공하는지, 그리고 왜 델파이에서 4 GiB 제한에 대한 방어가 필요한지 알아보세요. 스캔된 아카이브는 단일 PDF에서 수

PDFium Component

압축된 PDF 유효성 검사: 객체 및 XRef 스트림

최신 PDF는 압축된 객체와 xref 스트림 안에 구조를 숨깁니다. 델파이 유효성 검사기가 어떻게 ObjStm을 확장하고 PDFium으로 xref-stream 트레일러를 읽는지 알아보세요. 작은 유효성 검사기를 작성합니다. PDF를 열고, 끝으로 이동하여 를 찾고, 오프셋을 읽은 다음