답변:
몇 가지 옵션이 있습니다. 이러한 모든 방법은 Windows 및 Mac OS X뿐만 아니라 Linux에서도 작동합니다. 그러나 대부분의 PDF에는 글꼴이 포함되어있을 때 완전한 글꼴이 포함되어 있지 않습니다. 대부분 문서에 사용 된 글리프 의 하위 집합 만 포함 합니다.
pdftops
* nix 시스템에서 가장 자주 사용되는 방법 중 하나는 다음 단계로 구성됩니다.
pdftops
: Windows : pdftops.exe
도우미 프로그램) PDF를 포스트 스크립트로 변환하십시오 ..pfa
(PostScript) 형식 으로 임베드되고 텍스트 편집기를 사용하여 추출 할 수 있습니다 ..pfa
A를 (ASCII)를 .pfb
사용하여 (바이너리) 파일 t1utils
과 pfa2pfb
..pfm
없거나 .afm
파일 (글꼴 메트릭 파일)이 포함되어 있습니다 (PDF 뷰어는이 파일에 대한 내부 지식을 가지고 있기 때문에). 이러한 글꼴이 없으면 글꼴 파일을 시각적으로 만족스럽게 사용할 수 없습니다.fontforge
또 다른 방법은 Free font editor FontForge 를 사용하는 것입니다 .
FontForge 매뉴얼을 확인하십시오. 추출 된 글꼴 데이터를 재사용 가능한 파일로 저장하기 위해 반드시 간단한 것은 아닌 몇 가지 특정 단계를 수행해야 할 수도 있습니다.
mupdf
다음으로 MuPDF . 이 응용 프로그램에는 PDF에서 글꼴과 이미지를 추출 할 수 있는 유틸리티 pdfextract
(Windows pdfextract.exe
:)가 있습니다. (여전히 비교적 알려지지 않은 새로운 MuPDF에 대해 모르는 경우 : "MuPDF는 휴대용 C로 작성된 무료 경량 PDF 뷰어 및 툴킷입니다."( Artifex Software 개발자, Ghostscript를 제공 한 회사) )
( 업데이트 : 최신 버전의 MuPDF는 이전 'pdfextract' 기능을 'mutool extract' 명령으로 옮겼 습니다. 여기에서 다운로드하십시오 : mupdf.com/downloads )
참고 : pdfextract.exe
명령 줄 프로그램입니다. 사용하려면 다음을 수행하십시오.
c:\> pdfextract.exe c:\path\to\filename.pdf # (on Windows)
$> pdfextract /path/tofilename.pdf # (on Linux, Unix, Mac OS X)
이 명령은 현재 디렉토리로 참조되는 pdf 파일에서 추출 가능한 모든 파일을 덤프합니다. 일반적으로 이미지뿐만 아니라 글꼴과 같은 다양한 파일이 표시됩니다. 여기에는 PNG, TTF, CFF, CID 등이 포함됩니다. 이미지 의 PDF 객체 번호가 412 인 경우 이미지 이름은 img-0412.png 와 같습니다 . 글꼴 이름은 글꼴의 경우 FGETYK + LinLibertineI-0966.ttf 와 같습니다. PDF 객체 번호는 966입니다.
CFF ( Compact Font Format ) 파일은 다양한 운영 체제에서 사용하기 위해 다양한 변환기를 통해 다른 형식으로 변환 할 수있는 인식 된 형식입니다.
다시 말하지만, 이러한 글꼴 파일의 대부분 은 문자 의 일부만 가질 수 있으며 완전한 서체를 나타내지 않을 수도 있습니다.
업데이트 : (2013 년 7 월) 최신 버전에서는 mupdf
바이너리가 한 번이 아니라 여러 번 내부로 전환되고 이름이 바뀌 었습니다. 주 유틸리티는 '스위스 나이프'와 비슷한 바이너리 ( mubusy
(busybox에서 영감을받은 이름?))였으며 최근에는 이름이로 변경되었습니다 mutool
. 이러한 하위 명령을 지원 info
, clean
, extract
, poster
와 show
. 불행히도 이러한 도구에 대한 공식 문서는 아직 최신 상태가 아닙니다. 'MacPorts'를 사용하는 Mac에있는 경우 : 동일한 이름을 사용하는 다른 유틸리티와 이름이 충돌하지 않도록 유틸리티 이름이 바뀌 었으므로를 사용해야 mupdfextract
합니다.
mutool
이전 도구 와 동일한 결과를 얻으려면 . *를 pdfextract
실행하십시오 mubusy extract ...
. *
글꼴과 이미지를 추출하려면 다음 명령 줄 중 하나를 실행해야합니다.
c:\> mutool.exe extract filename.pdf # (on Windows)
$> mutool extract filename.pdf # (on Linux, Unix, Mac OS X)
다운로드는 여기 : mupdf.com/downloads
gs
(고스트)그런 다음 Ghostscript 는 PDF에서 직접 글꼴을 추출 할 수도 있습니다. 그러나 extractFonts.ps
Postscript 언어로 작성된 특수 유틸리티 프로그램 인 Ghostscript 소스 코드 저장소 에서 사용할 수 있는 특수 유틸리티 프로그램의 도움이 필요 합니다 .
이제이 파일 extractFonts.ps
과 PDF 파일을 모두 실행해야 합니다. 그런 다음 Ghostscript는 PostScript 프로그램의 지침을 사용하여 PDF에서 글꼴을 추출합니다. Windows에서는 다음과 같이 보입니다 (예, Ghostscript는 Windows에서도 경로 구분 기호로 '슬래시'를 이해합니다).
gswin32c.exe ^
-q -dNODISPLAY ^
c:/path/to/extractFonts.ps ^
-c "(c:/path/to/your/PDFFile.pdf) extractFonts quit"
또는 Linux, Unix 또는 Mac OS X에서 :
gs \
-q -dNODISPLAY \
/path/to/extractFonts.ps \
-c "(/path/to/your/PDFFile.pdf) extractFonts quit"
몇 년 전에 고스트 스크립트 방법을 테스트했습니다. 당시에는 * .ttf (TrueType)를 잘 추출했습니다. 다른 글꼴 유형도 전혀 추출되는지, 그렇다면 재사용 가능한 방식으로 알 수 없습니다. 유틸리티가 보호 된 것으로 표시된 글꼴의 추출을 차단하는지 여부를 모르겠습니다.
pdf-parser.py
마지막으로 Didier Stevens의 pdf-parser.py : 내부 PDF 구조에 대한 노하우가 필요하기 때문에 사용하기 쉽지 않을 것입니다. pdf-parser.py
파이썬 스크립트는 다른 많은 것들도 할 수 있습니다. 또한 개체에서 임의의 스트림을 압축 해제하고 추출 할 수 있으므로 포함 된 글꼴 파일도 추출 할 수 있습니다.
그러나 무엇을 찾아야하는지 알아야합니다. 예를 들어 봅시다. big.pdf 라는 파일이 있습니다 . 첫 번째 단계로 -s
매개 변수를 사용하여 FontFile 키워드가 있는지 PDF를 검색합니다 ( pdf-parser.py
대소 문자 구분 검색이 필요하지 않음).
pdf-parser.py -s fontfile big.pdf
필자의 경우 big1.pdf의 경우 다음 결과를 얻습니다.
obj 9 0
Type: /FontDescriptor
Referencing: 15 0 R
<<
/Ascent 728
/CapHeight 716
/Descent -210
/Flags 32
/FontBBox [ -665 -325 2000 1006 ]
/FontFile2 15 0 R
/FontName /ArialMT
/ItalicAngle 0
/StemV 87
/Type /FontDescriptor
/XHeight 519
>>
obj 11 0
Type: /FontDescriptor
Referencing: 16 0 R
<<
/Ascent 728
/CapHeight 716
/Descent -210
/Flags 262176
/FontBBox [ -628 -376 2000 1018 ]
/FontFile2 16 0 R
/FontName /Arial-BoldMT
/ItalicAngle 0
/StemV 165
/Type /FontDescriptor
/XHeight 519
>>
그것은 FontFile2
PDF 내부에 두 개의 인스턴스가 있으며 , 이는 PDF 객체 no에 있다고 알려줍니다 . 15와 아니오. 각각 16. 개체 번호 15는 /FontFile2
for font / ArialMT , 오브젝트 번호 를 보유합니다 . 16은 /FontFile2
for 글꼴 / Arial-BoldMT 를 보유합니다 .
이것을 더 명확하게 나타내려면 :
pdf-parser.py -s fontfile big1.pdf | grep -i fontfile
/FontFile2 15 0 R
/FontFile2 16 0 R
PDF 파일 사양으로 빠른 엿 키워드가 계시 /FontFile2
(A)에 관한 '트루 타입 폰트 프로그램을 포함하는 스트림' ( /FontFile
(A)에 관한 것이다 '타입 1 폰트 프로그램을 포함하는 스트림' 와 /FontFile3
(A)에 관한 것이다 형식 폰트 프로그램을 포함하는 '스트림 스트림 사전의 하위 유형 항목으로 지정됩니다 ( 따라서 Type1C 또는 CIDFontType0C 하위 유형}).
PDF 객체 번호를 구체적으로 보려면 15 (글꼴 / ArialMT 보유 ) -o 15
매개 변수를 사용할 수 있습니다 .
pdf-parser.py -o 15 big1.pdf
obj 15 0
Type:
Referencing:
Contains stream
<<
/Length1 778552
/Length 1581435
/Filter /ASCIIHexDecode
>>
이 pdf-parser.py
출력은이 객체에 길이가 1.581.435 바이트이고 ASCIIHexEncode로 인코딩 (== "압축") 된 스트림 (직접 표시되지 않음)을 포함하고 있으며 디코딩해야합니다 (== "de- 표준 /ASCIIHexDecode
필터를 사용하여 압축 "또는"필터링 ")하십시오 .
객체에서 스트림을 덤프하려면 매개 변수를 pdf-parser.py
사용하여 호출 할 수 있습니다 -d dumpname
. 해보자 :
pdf-parser.py -o 15 -d dumped-data.ext big1.pdf
추출 된 데이터 덤프는 dumped-data.ext 파일에 있습니다 . 그것이 얼마나 큰지 보자.
ls -l dumped-data.ext
-rw-r--r-- 1 kurtpfeifle staff 1581435 Apr 11 00:29 dumped-data.ext
아 봐, 그것은 1.581.435 바이트입니다. 이전 명령의 출력에서이 그림을 보았습니다. 텍스트 편집기로이 파일을 열면 해당 내용이 ASCII 16 진수로 인코딩 된 데이터임을 확인합니다.
otfinfo
(이것은 lcdf-typetools
패키지 의 일부입니다) 와 같은 글꼴 읽기 도구로 파일을 열면 처음에는 약간 실망합니다.
otfinfo -i dumped-data.ext
otfinfo: dumped-data.ext: not an OpenType font (bad magic number)
이것은 pdf-parser.py
필터링 된 디코딩 된 스트림을 덤프하는 완전한 마법을 사용 하지 않았기 때문 입니다. 이를 위해 -f
매개 변수 를 추가해야합니다 .
pdf-parser.py -o 15 -f -d dumped-data-decoded.ext big1.pdf
이 새 파일의 크기는 얼마입니까?
ls -l dumped-data-decoded.ext
-rw-r--r-- 1 kurtpfeifle staff 778552 Apr 11 00:39 dumped-data-decoded.ext
아,보세요 : 정확한 숫자는 이미 PDF 객체 번호에 저장되어 있습니다. 15 키 값으로서의 사전 /Length1
...
file
그것이 무엇 이라고 생각합니까?
file dumped-data-decoded.ext
dumped-data-decoded.ext: TrueType font data
otfinfo
그것에 대해 무엇을 알려 줍니까?
otfinfo -i dumped-data-decoded.ext
Family: Arial
Subfamily: Regular
Full name: Arial
PostScript name: ArialMT
Version: Version 5.10
Unique ID: Monotype:Arial Regular:Version 5.10 (Microsoft)
Designer: Monotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982
Manufacturer: The Monotype Corporation
Trademark: Arial is a trademark of The Monotype Corporation.
Copyright: © 2011 The Monotype Corporation. All Rights Reserved.
License Description: You may use this font to display and print content as permitted by
the license terms for the product in which this font is included.
You may only (i) embed this font in content as permitted by the
embedding restrictions included in this font; and (ii) temporarily
download this font to a printer or other output device to help
print content.
Vendor ID: TMC
따라서 Bingo!에는 당첨자가 있습니다. pdf-parser.py
실제로 유효한 글꼴 파일을 추출했습니다. 이 파일의 크기 (778.552 바이트)를 고려하면이 글꼴이 PDF에 완전히 포함 된 것 같습니다 ...
arial-regular.ttf로 이름을 바꾸고 그대로 설치하여 즐겁게 사용할 수 있습니다.
어쨌든 글꼴에 적용되는 라이센스를 따라야합니다. 일부 글꼴 라이센스는 무료 사용 및 / 또는 배포를 허용하지 않습니다. 불법 복제 글꼴은 소프트웨어 또는 기타 저작권이있는 자료를 불법 복제하는 것과 같습니다.
어쨌든 전체 PDF 파일은 전체 글꼴을 포함하지 않고 하위 세트 만 포함합니다. 글꼴의 하위 집합을 추출하는 것은 매우 제한된 범위에서만 유용합니다.
폰트 추출 노력에 관한 찬반 양론에 대한 다음 내용도 읽어보십시오 :
mupdf
. 참조 이 ...
온라인 서비스 http://www.extractpdf.com을 사용 하십시오 . 아무것도 설치할 필요가 없습니다.
~/.fonts
에서 복사했으며 복사하여 붙여 넣기가 작동했습니다!
결국 FontForge Windows 설치 프로그램 패키지를 찾고 설치된 프로그램을 통해 PDF를 열었습니다. 대접을 받아 너무 행복했습니다.
http://www.verypdf.com/app/pdf-font-extractor/pdf-font-extracting-tool.html 글꼴을 추출하는 가장 쉬운 IMO 방법 (Windows).
이 질문은 10 년이되었지만 여전히 유효하며 기술이 변경됨에 따라 유효한 답변도 있습니다.
현재 답변을 검색 할 때 WOFF (Web Open Font Format) ( W3C ) ( Wikipedia ) 메모를 발견하지 못했습니다.이 문자는 개별 문자 (글리프)를 다시 만들어 웹 페이지에 정확하게 표시하는 데 사용할 수 있습니다.
IDR 솔루션의 무료 온라인 웹 페이지를 사용하여 PDF에서 HTML5 ( 링크 )로 PDF를 zip 파일로 변환하십시오. 결과 zip은 woff 파일 유형의 글꼴 디렉토리입니다. 현재 인터넷 브라우저는 모르는 경우 woff 파일을 지원합니다. ( 참조 ) 온라인 사이트 FontDrop에서 확인할 수 있습니다! ( 링크 ).
WOFF 파일을 WOFFer – WOFF 글꼴 변환기 에서 OTF 또는 TTF로 /에서 변환 할 수 있습니다
또한 PDF에서 HTML5 로의 zip 파일에는 인터넷 브라우저에서 열 수있는 PDF의 각 페이지에 대한 HTML 파일이 포함되어 있으며 내가 찾거나 보았던 가장 정확하고 가장 정확한 PDF 번역 중 하나입니다.
WOFF 파일을 사용하는 방법을 배우는 동안 이것만으로도 가치가 있습니다. 즐겨.
추신 : woff 파일 형식 사용에 대해 더 많이 배우면서 더 많은 정보로 업데이트 할 것입니다. 그러나 이것은 일반적인 공통 사항이므로 전달할 가치가있는 경우이 답변을 자유롭게 편집하십시오.
Is it because WOFF handles incomplete fonts better?
나는 모른다. 당신의 추측은 좋은 광산 일 것입니다. 내가 지적했듯이 나는 WOFF에 대해 배우고있다.
Is it because WOFF handles incomplete fonts better?
새로운 SO 질문으로 게시해야 하며 더 많은 지식을 가진 사람들은 의미있는 답변을보고 희망적으로 제공 할 것입니다.
PDF2SVG의 에서 버전 6.0 PDFTron은 합리적인 작업을 수행합니다. .otf
기본적으로 OpenType ( ) 글꼴을 생성합니다 . --preserve_fontnames
"소스 파일에서 얻은 글꼴 / 글꼴 패밀리 이름 지정 체계"를 유지하는 데 사용하십시오 .
PDF2SVG는 상용 제품이지만 무료 데모 실행 파일을 다운로드 할 수 있습니다 (SVG 출력에 워터 마크를 포함하지만 사용을 제한하지는 않음). 글꼴을 추출하는 다른 PDFTron 제품이있을 수 있지만 최근에는 PDF2SVG 만 발견했습니다.
--preserve_fontnames
겹치는 부분 글꼴이있는 경우 불행히도 작동하지 않습니다. 접두사를 포함하지 않는 것 같습니다 (예 : MSCIYG
in MSCIYG+Ge'ez-1
). 이전 부분을 덮어 씁니다.
현재 PDF 글꼴을 추출 할 수있는 최고의 온라인 도구 중 하나는 http://www.pdfconvertonline.com/extract-pdf-fonts-online.html 입니다 .
이것은 @Kurt Pfeifle의 답변font-forge
섹션에 대한 후속 조치 이며 Red Hat 및 기타 Linux 배포판과 관련이 있습니다.
TTF 파일이 있으면 다음 방법으로 시스템에 설치할 수 있습니다.
/usr/share/fonts
루트로 복사fc-cache -f /usr/share/fonts/
(루트로)