다음을 통해 공유


CreateFontPackage 함수(fontsub.h)

CreateFontPackage 함수는 일반적으로 프린터에 전달하기 위해 지정된 TrueType 글꼴의 하위 집합 버전을 만듭니다. 문서의 뒷부분에 있는 페이지에 첫 번째 페이지에서 사용되지 않은 문자 또는 문자 모양이 필요할 수 있음을 허용하기 위해 이 함수는 초기 하위 집합 글꼴 패키지를 만든 다음 원래 하위 집합 글꼴 패키지와 병합할 수 있는 "Delta" 글꼴 패키지를 만들어 효과적으로 확장할 수 있습니다.

구문

unsigned long CreateFontPackage(
  [in]  const unsigned char  *puchSrcBuffer,
  [in]  const unsigned long  ulSrcBufferSize,
  [out] unsigned char        **ppuchFontPackageBuffer,
  [out] unsigned long        *pulFontPackageBufferSize,
  [out] unsigned long        *pulBytesWritten,
  [in]  const unsigned short usFlag,
  [in]  const unsigned short usTTCIndex,
  [in]  const unsigned short usSubsetFormat,
  [in]  const unsigned short usSubsetLanguage,
  [in]  const unsigned short usSubsetPlatform,
  [in]  const unsigned short usSubsetEncoding,
  [in]  const unsigned short *pusSubsetKeepList,
  [in]  const unsigned short usSubsetListCount,
  [in]  CFP_ALLOCPROC        lpfnAllocate,
  [in]  CFP_REALLOCPROC      lpfnReAllocate,
  [in]  CFP_FREEPROC         lpfnFree,
  [in]  void                 *lpvReserved
);

매개 변수

[in] puchSrcBuffer

하위 설정될 글꼴을 설명하는 원본 TTF 또는 TTC 데이터가 포함된 버퍼를 가리킵니다.

[in] ulSrcBufferSize

*puchSrcBuffer의 크기(바이트)를 지정합니다.

[out] ppuchFontPackageBuffer

부호 없는 char*형식의 변수를 가리킵니다. CreateFontPackage 함수는 lpfnAllocate 및 lpfnReAllocate를 사용하여 **puchFontPackageBuffer 버퍼를 할당합니다. 반환이 성공적이면 버퍼에 하위 집합 글꼴 또는 글꼴 패키지가 포함됩니다. 애플리케이션은 결국 버퍼를 해제해야 합니다.

[out] pulFontPackageBufferSize

부호 없는 long을 가리키며, 반환이 성공하면 **puchFontPackageBuffer 버퍼의 할당된 크기를 지정합니다.

[out] pulBytesWritten

부호 없는 long을 가리키며, 반환이 성공하면 버퍼 **puchFontPackageBuffer에 실제로 사용되는 바이트 수를 지정합니다.

[in] usFlag

이 글꼴을 하위 설정, 압축 또는 둘 다 지정할지 여부를 지정합니다. TTF 또는 TTC인지 여부; 및 *pusSubsetKeepListrepresents 문자 코드 또는 문자 모양 인덱스 여부입니다. 다음 플래그의 조합을 지정할 수 있습니다.

의미
TTFCFP_FLAGS_SUBSET
설정된 경우 하위 설정을 요청합니다.
TTFCFP_FLAGS_COMPRESS
설정되면 압축을 요청합니다. 이 함수의 현재 배송 버전은 압축을 수행하지 않습니다. 이 플래그를 사용하면 나중에 이 기능을 구현할 수 있지만 현재는 무시됩니다.
TTFCFP_FLAGS_TTC
설정된 경우 puchSrcBuffer 의 글꼴이 TTC임을 지정합니다. 그렇지 않으면 TTF여야 합니다.
TTFCFP_FLAGS_GLYPHLIST
설정된 경우*pusSubsetKeepListis를 문자 모양 인덱스 목록으로 지정합니다. 그렇지 않으면 문자 코드 목록이어야 합니다.

[in] usTTCIndex

0부터 시작하는 TTC 인덱스입니다. usFlags에서 TTFCFP_FLAGS_TTC 설정된 경우에만 사용됩니다.

[in] usSubsetFormat

만들 파일의 형식입니다. 다음 값 중 하나를 선택합니다. 결합할 수 없습니다.

의미
TTFCFP_SUBSET
나중에 병합할 수 없는 독립 실행형 하위 집합 글꼴을 만듭니다.
TTFCFP_SUBSET1
나중에 병합할 수 있는 하위 집합 글꼴 패키지를 만듭니다.
TTFCFP_DELTA
이전 하위 집합 글꼴과 병합할 수 있는 델타 글꼴 패키지를 만듭니다.

[in] usSubsetLanguage

유지할 Name 테이블의 언어입니다. 0으로 설정하면 모든 언어가 유지됩니다. 초기 하위 설정에만 사용됨: 즉, usSubsetFormat 이 TTFCFP_SUBSET 또는 TTFCFP_SUBSET1 있고 TTFCFP_FLAGS_SUBSET 플래그가 usFlags에 설정된 경우에만 사용됩니다.

[in] usSubsetPlatform

usSubsetEncoding과 함께 은 사용할 CMAP를 지정합니다. *pusSubsetKeepList 가 문자 목록인 경우에만 사용됩니다. 즉, usFlags에서 TTFCFP_FLAGS_GLYPHLIST 설정되지 않은 경우에만 사용됩니다. 이 경우 이 CMAP 하위 테이블은 pusSubsetKeepList 에 적용되어 출력 글꼴 또는 글꼴 패키지에 유지할 문자 모양 목록을 만듭니다.

사용하는 경우 다음 값 중 하나를 사용해야 합니다. 결합할 수 없습니다.

의미
TTFCFP_UNICODE_PLATFORMID
TTFCFP_APPLE_PLATFORMID
TTFCFP_ISO_PLATFORMID
TTFCFP_MS_PLATFORMID

[in] usSubsetEncoding

usSubsetPlatform과 함께 은 사용할 CMAP를 지정합니다. *pusSubsetKeepList 가 문자 목록인 경우에만 사용됩니다. 즉, usFlags에서 TTFCFP_FLAGS_GLYPHLIST 설정되지 않은 경우에만 사용됩니다.

사용하는 경우 다음 값 중 하나를 사용해야 합니다. 결합할 수 없습니다.

의미
TTFCFP_STD_MAC_CHAR_SET
usSubsetPlatform == TTFCFP_APPLE_PLATFORMID 경우에만 사용할 수 있습니다.
TTFCFP_SYMBOL_CHAR_SET
usSubsetPlatform == TTFSUB_MS_PLATFORMID 경우에만 사용할 수 있습니다.
TTFCFP_UNICODE_CHAR_SET
usSubsetPlatform == TTFSUB_MS_PLATFORMID 경우에만 사용할 수 있습니다.
TTFCFP_DONT_CARE

[in] pusSubsetKeepList

출력 글꼴 또는 글꼴 패키지에 유지해야 하는 문자 코드 또는 문자 모양 인덱스의 목록을 구성하는 정수 배열을 가리킵니다. 이 목록에 문자 코드가 포함된 경우(즉, usFlags에서 TTFCFP_FLAGS_GLYPHLIST 설정되지 않은 경우) 이 목록은 usSubsetPlatformusSubsetEncoding에서 지정한 Platform-Encoding CMAP에 따라 유니코드 또는 다른 유형의 인코딩일 수 있습니다.

[in] usSubsetListCount

목록 *pusSubsetKeepList의 요소 수입니다.

[in] lpfnAllocate

puchFontPackageBuffer 및 임시 버퍼에 대한 초기 메모리를 할당하는 콜백 함수입니다.

[in] lpfnReAllocate

puchFontPackageBuffer 및 임시 버퍼에 대한 메모리를 재할당하는 콜백 함수입니다.

[in] lpfnFree

lpfnAllocate 및 lpfnReAllocate에서 할당한 메모리를 해제하는 콜백 함수입니다.

[in] lpvReserved

NULL로 설정해야 합니다.

반환 값

함수가 성공하면 는 0을 반환합니다.

그렇지 않으면 0이 아닌 값을 반환합니다. 가능한 오류 반환은 Font-Package 함수 오류 메시지를 참조하세요.

설명

usSubsetFormat에 TTFCFP_SUBSET 값을 지정하면 글꼴 패키지가 아닌 작동하는 글꼴을 직접 만들 수 있습니다. 이렇게 하면 나중에 병합할 수 없지만 병합할 필요가 없는 경우 다운스트림 처리 단계를 건너뜁니다. 글꼴 패키지를 사용하려면 글꼴 패키지를 다시 작업 글꼴로 변환해야 합니다.

usSubsetFormat에 TTFCFP_SUBSET1 값을 지정하여 나중에 병합할 수 있는 글꼴 패키지를 만들 수 있습니다. 예를 들어 애플리케이션이 큰 인쇄 작업을 시작할 때 이 함수를 호출하는 경우를 고려해 보세요. 인쇄 작업을 통해 애플리케이션은 빌드한 하위 집합에 없는 문자 모양이 필요하다는 것을 발견합니다. 애플리케이션은 CreateFontPackage를 다시 호출할 수 있습니다. 이번에는 usSubsetFormat에 대한 TTFCFP_DELTA 값을 지정합니다. 프린터는 MergeFontPackage 를 사용하여 이러한 추가 문자 모양으로 병합할 수 있습니다.

CMAP는 문자 인코딩에서 문자 모양으로 매핑됩니다. *pusSubsetKeepList 가 문자 값 목록인 경우 애플리케이션은 usSubsetPlatformusSubsetEncoding 매개 변수를 사용하여 문자 값을 문자 모양에 매핑할 수 있도록 사용 중인 CMAP 유형을 지정합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 fontsub.h
라이브러리 FontSub.lib
DLL FontSub.dll

추가 정보

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

MergeFontPackage