ฉันจะแยกแบบอักษรที่ฝังจาก PDF เป็นไฟล์แบบอักษรที่ถูกต้องได้อย่างไร


161

ฉันตระหนักถึงpdftk.exeยูทิลิตี้ที่สามารถระบุแบบอักษรที่ใช้โดย PDF และพวกเขาจะฝังหรือไม่

ขณะนี้ปัญหา: เนื่องจากฉันมีไฟล์ PDF ที่มีแบบอักษรฝังตัว - ฉันจะแยกแบบอักษรเหล่านั้นในลักษณะที่พวกเขาสามารถใช้งานได้เป็นไฟล์แบบอักษรปกติได้อย่างไร มีเครื่องมือ (ฟรีหรือไม่) ที่สามารถทำเช่นนั้นได้? นอกจากนี้: สามารถทำได้ด้วยการเขียนโปรแกรมพูด iText?

คำตอบ:


405

คุณมีหลายทางเลือก วิธีการทั้งหมดเหล่านี้ทำงานบน Linux เช่นเดียวกับ Windows หรือ Mac OS X อย่างไรก็ตามโปรดทราบว่า PDF ส่วนใหญ่ไม่รวมถึงแบบอักษรที่สมบูรณ์และสมบูรณ์แบบเมื่อมีแบบอักษรฝังอยู่ ส่วนใหญ่จะมีเพียงชุดย่อยของร่ายมนตร์ที่ใช้ในเอกสาร


การใช้ pdftops

หนึ่งในวิธีที่ใช้บ่อยที่สุดในการทำเช่นนี้ในระบบ * nix ประกอบด้วยขั้นตอนต่อไปนี้:

  1. แปลง PDF เป็น PostScript ตัวอย่างเช่นโดยใช้ XPDF's pdftops(บนโปรแกรม Windows: pdftops.exehelper
  2. ตอนนี้ตัวอักษรจะถูกฝังอยู่ใน.pfaรูปแบบ (PostScript) + คุณสามารถสกัดพวกเขาโดยใช้โปรแกรมแก้ไขข้อความ
  3. คุณอาจจะต้องแปลง.pfa(ASCII) ไปยัง.pfbไฟล์ (binary) ใช้และt1utilspfa2pfb
  4. ใน PDF ไม่มีไฟล์.pfmหรือ.afmไฟล์ (ไฟล์เมตริกแบบอักษร) (เนื่องจากโปรแกรมดู PDF มีความรู้เกี่ยวกับสิ่งเหล่านี้) หากไม่มีสิ่งเหล่านี้ไฟล์ฟอนต์จะใช้งานได้แทบจะไม่เป็นที่ชื่นชอบ

การใช้ fontforge

วิธีอื่นคือการใช้ตัวแก้ไขแบบอักษรฟรีFontForge :

  1. ใช้กล่องโต้ตอบ"Open Font" ที่ใช้เมื่อเปิดไฟล์
  2. จากนั้นเลือก"แยกจาก PDF"ในส่วนตัวกรองของกล่องโต้ตอบ
  3. เลือกไฟล์ PDF ที่มีแบบอักษรที่จะแตกออกมา
  4. "เลือกแบบอักษร" DialogBox เปิด - เลือกที่นี่ซึ่งตัวอักษรที่จะเปิด

ตรวจสอบคู่มือ FontForge คุณอาจต้องทำตามขั้นตอนบางอย่างซึ่งไม่จำเป็นต้องตรงไปตรงมาเพื่อบันทึกข้อมูลแบบอักษรที่แยกออกมาเป็นไฟล์ที่สามารถใช้งานได้อีกครั้ง


การใช้ mupdf

ถัดไปMuPDF แอปพลิเคชันนี้มาพร้อมกับยูทิลิตี้ที่เรียกว่าpdfextract(บน Windows:) pdfextract.exeซึ่งสามารถแยกแบบอักษรและรูปภาพจาก PDF (ในกรณีที่คุณไม่ทราบเกี่ยวกับ MuPDF ซึ่งยังไม่เป็นที่รู้จักและใหม่: "MuPDF เป็นโปรแกรมดู PDF และเครื่องมือเขียนน้ำหนักเบาฟรีที่เขียนด้วยพกพา C"ซึ่งเขียนโดยนักพัฒนาซอฟต์แวร์ Artifex ซึ่งเป็น บริษัท เดียวกันที่ให้ Ghostscript แก่เรา )
( อัปเดต: MuPDF เวอร์ชันที่ใหม่กว่าได้ย้ายฟังก์ชันการทำงานเดิมของ'pdfextract'ไปเป็นคำสั่ง'สารสกัด mutool'ดาวน์โหลดได้ที่นี่: 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 และอื่น ๆ ชื่อภาพจะเป็นเหมือนimg-0412.pngหากหมายเลขออบเจ็กต์ PDF ของภาพเท่ากับ 412 ชื่อตัวอักษรจะเป็นเช่นFGETYK + LinLibertineI-0966.ttfหากตัวอักษรของ หมายเลขวัตถุ PDF คือ 966

ไฟล์ CFF ( รูปแบบอักษรขนาดกะทัดรัด ) เป็นรูปแบบที่เป็นที่รู้จักซึ่งสามารถแปลงเป็นรูปแบบอื่นผ่านตัวแปลงที่หลากหลายเพื่อใช้ในระบบปฏิบัติการที่แตกต่างกัน

อีกครั้ง: โปรดทราบว่าไฟล์ฟอนต์เหล่านี้ส่วนใหญ่อาจมีเพียงชุดย่อยของอักขระและอาจไม่แสดงแบบอักษรทั้งหมด

อัปเดต: (ก.ค. 2556) เวอร์ชันล่าสุดmupdfเห็นการปรับเปลี่ยนภายในและเปลี่ยนชื่อไบนารีไม่เพียงครั้งเดียว แต่หลายครั้ง ยูทิลิตี้หลักที่ใช้จะเป็น 'ไบนารี knife' เหมือนกันเรียกว่าสวิสmubusy(ชื่อแรงบันดาลใจจาก busybox?) ซึ่งเมื่อเร็ว ๆ mutoolนี้ได้รับการเปลี่ยนชื่อเป็น การสนับสนุนเหล่านี้ย่อยคำสั่งinfo, clean, extract, และposter showโชคไม่ดีที่เอกสารทางการของเครื่องมือเหล่านี้ยังไม่เป็นปัจจุบัน (ยัง) หากคุณบน Mac โดยใช้ 'MacPorts' แล้วยูทิลิตี้ถูกเปลี่ยนชื่อเพื่อที่จะหลีกเลี่ยงการปะทะกันชื่อกับสาธารณูปโภคอื่น ๆ mupdfextractโดยใช้ชื่อเหมือนกันและคุณอาจจำเป็นต้องใช้

เพื่อให้ได้ผลลัพธ์ที่เทียบเท่า (คร่าวๆ) mutoolเหมือนที่เคยpdfextractทำกับเครื่องมือก่อนหน้านี้ให้เรียกใช้mubusy extract ...*

ดังนั้นหากต้องการแยกแบบอักษรและรูปภาพคุณอาจต้องเรียกใช้หนึ่งใน commandline ต่อไปนี้:

c:\>  mutool.exe extract filename.pdf      # (on Windows)
$>    mutool     extract filename.pdf      # (on Linux, Unix, Mac OS X)

ดาวน์โหลดอยู่ที่นี่: mupdf.com/downloads


การใช้gs(Ghostscript)

จากนั้นGhostscriptยังสามารถแยกแบบอักษรได้โดยตรงจาก PDF แต่ก็ต้องการความช่วยเหลือของโปรแกรมพิเศษยูทิลิตี้ชื่อextractFonts.psที่เขียนในภาษา PostScript ซึ่งสามารถใช้ได้จากพื้นที่เก็บข้อมูล Ghostscript รหัสแหล่งที่มา

ตอนนี้ใช้คุณจะต้องเรียกใช้ทั้งไฟล์นี้extractFonts.psและไฟล์ PDF ของคุณ Ghostscript จะใช้คำแนะนำจากโปรแกรม PostScript เพื่อแยกแบบอักษรจาก PDF ดูเหมือนว่าใน Windows (ใช่ Ghostscript เข้าใจ 'forward slash', /, เป็นตัวคั่นพา ธ บน 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"

ฉันได้ทดสอบวิธี Ghostscript เมื่อไม่กี่ปีที่ผ่านมา ในเวลานั้นมันแตก * .ttf (TrueType) ได้ดี ฉันไม่รู้ว่าตัวอักษรประเภทอื่น ๆ จะถูกดึงออกมาด้วยหรือไม่และถ้าเป็นเช่นนั้นจะสามารถใช้งานได้อีกครั้ง ฉันไม่ทราบว่ายูทิลิตี้บล็อกการแยกแบบอักษรที่ถูกทำเครื่องหมายว่าได้รับการป้องกันหรือไม่


การใช้ pdf-parser.py

ท้ายที่สุดไฟล์ pdf-parser.pyของ Didier Stevens : อันนี้อาจไม่ง่ายต่อการใช้งานเพราะคุณจำเป็นต้องมีความรู้เกี่ยวกับโครงสร้าง PDF ภายใน pdf-parser.pyเป็นสคริปต์ Python ซึ่งสามารถทำสิ่งอื่น ๆ ได้มากมายเช่นกัน นอกจากนี้ยังสามารถขยายและแยกกระแสข้อมูลแบบสุ่มจากวัตถุดังนั้นจึงสามารถแยกไฟล์แบบอักษรที่ฝังได้ด้วย

แต่คุณต้องรู้ว่าต้องหาอะไร ลองดูด้วยตัวอย่าง ผมมีไฟล์ชื่อbig.pdf ในขั้นตอนแรกฉันใช้-sพารามิเตอร์เพื่อค้นหา PDF สำหรับการเกิดขึ้นของคำสำคัญใด ๆFontFile ( 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 15 และไม่ 16 ตามลำดับ หมายเลขวัตถุ 15 ถือ/FontFile2สำหรับฟอนต์/ ArialMT , หมายเลขอ็อบเจ็กต์ 16 ถือ/FontFile2สำหรับตัวอักษร/ Arial-BoldMT

หากต้องการแสดงสิ่งนี้ให้ชัดเจนยิ่งขึ้น:

pdf-parser.py -s fontfile big1.pdf | grep -i fontfile
  /FontFile2 15 0 R
  /FontFile2 16 0 R

การดูข้อมูลจำเพาะ PDF อย่างรวดเร็วเผยให้เห็นคำสำคัญที่/FontFile2เกี่ยวข้องกับ 'สตรีมที่มีโปรแกรมแบบอักษร TrueType' ( /FontFileจะเกี่ยวข้องกับ'สตรีมที่มีโปรแกรมแบบอักษร Type 1'และ/FontFile3เกี่ยวข้องกับ'สตรีมที่มีโปรแกรมฟอนต์ที่มีรูปแบบคือ ที่ระบุโดยรายการย่อยในพจนานุกรมสตรีม ' {จึงเป็น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

การถ่ายโอนข้อมูลของเราสกัดจะอยู่ในไฟล์ที่ชื่อว่าทิ้ง-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 hex

การเปิดไฟล์ด้วยเครื่องมืออ่านฟอนต์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 ส่วนใหญ่ที่อยู่ใน wild นั้นไม่ได้ฝังฟอนต์แบบเต็มอยู่แล้ว แต่เป็นชุดย่อยเท่านั้น การแยกชุดย่อยของแบบอักษรจะมีประโยชน์ในขอบเขตที่ จำกัด มากเท่านั้น

โปรดอ่านต่อไปนี้เกี่ยวกับข้อดีและข้อเสียเพิ่มเติม (เพิ่มเติม) เกี่ยวกับความพยายามในการแยกแบบอักษร:


3
@ kizzx2: อย่าลังเลที่จะ upvote หรือ downvote คำตอบอื่น ๆ ของฉัน [PDF] หรือ [Ghostscript] :-)
Kurt Pfeifle

หากคุณอยู่บน Mac และติดตั้ง mupdf จากพอร์ต (หรืออาจมาจากไบนารีด้วย) การดึงข้อมูลก็จะเรียกว่า mupdfextract คุณสามารถเรียกใช้จากเทอร์มินัลตราบใดที่มันอยู่ในเส้นทาง
Orwellophile

@Orwellophile: ขอบคุณสำหรับคำใบ้ mupdfฉันเอามันเป็นโอกาสที่จะปรับปรุงบางส่วนของคำแนะนำของฉันเกี่ยวกับ ดูสิ่งนี้ ...
Kurt Pfeifle

ฉันจะตรวจสอบพวกเขาออก และนี่ก็ไม่ใช่ความคิดเห็นที่ไม่มีจุดหมาย: กระบวนการของคุณใช้งานได้ยอดเยี่ยม ... (โหวตแล้ว) ... มันถูกแยกและตั้งชื่อฟอนต์ 3 รูปแบบแล้วฉันก็ใช้ฟอนต์ฟอร์จ น่าเสียดายที่แบบอักษรของฉันยังขาดตัวอักษรตัวใหญ่ "X" ... อัตราเดิมพันคืออะไร: p
Orwellophile

1
@Chris: ใช่เหล่านี้เป็นสองชุดย่อยที่แตกต่างกัน (ซึ่งอาจทับซ้อนกันในส่วนใหญ่แม้) ไม่มีตัวเลือกที่จะรวมพวกเขาโดยอัตโนมัติ
Kurt Pfeifle

27

การใช้บริการออนไลน์http://www.extractpdf.com ไม่จำเป็นต้องติดตั้งอะไรเลย


ในกรณีของฉันมันสามารถแยกแบบอักษร Type 1 เท่านั้นและไม่ใช่ TrueType
koppor

ฉันแยกแบบอักษรโดยใช้ไซต์นี้และคัดลอกมาที่~/.fontsและการคัดลอกและวางใช้งานได้!
Eduardo Santana



3

แม้ว่าคำถามนี้มีอายุ 10 ปี แต่ก็ยังใช้ได้และเป็นเทคโนโลยีที่เปลี่ยนแปลงดังนั้นคำตอบที่ถูกต้อง

ในการค้นหาคำตอบปัจจุบันพบว่าไม่มีใครสังเกตเห็น WOFF (รูปแบบฟอนต์ Open Web) ( W3C ) ( Wikipedia ) ซึ่งสามารถใช้สร้างอักขระแต่ละตัว (ร่ายมนตร์) และแสดงในเว็บเพจได้อย่างถูกต้อง

ใช้เว็บเพจออนไลน์ฟรีโดย IDR Solutions, PDF เป็น HTML5 ( ลิงค์ ), แปลงไฟล์ PDF เป็นไฟล์ zip ในผลลัพธ์ zip จะเป็นฟอนต์ไดเร็กทอรีของชนิดไฟล์ woff เบราว์เซอร์อินเทอร์เน็ตปัจจุบันรองรับไฟล์ woff หากคุณไม่ทราบ ( อ้างอิง ) เหล่านี้สามารถตรวจสอบได้ที่เว็บไซต์ออนไลน์ FontDrop! ( ลิงก์ )

ไฟล์ WOFF สามารถแปลงเป็น / จาก OTF หรือ TTF ที่WOFFer - ตัวแปลงฟอนต์ WOFF

นอกจากนี้ไฟล์ zip จาก PDF เป็น HTML5 จะมีไฟล์ HTML สำหรับแต่ละหน้าของ PDF ที่สามารถเปิดได้ในอินเทอร์เน็ตเบราว์เซอร์และเป็นหนึ่งในการแปล PDF ที่ดีที่สุดและแม่นยำที่สุดที่ฉันพบหรือเห็น

ในขณะที่ฉันเพิ่งเรียนรู้วิธีใช้ไฟล์ WOFF สิ่งนี้มีค่ามาก สนุก.

ป.ล. ฉันอาจจะอัปเดตด้วยข้อมูลเพิ่มเติมเมื่อฉันเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ประเภทไฟล์ woff แต่เนื่องจากนี่เป็นคอมมอนส์ที่สร้างสรรค์คุณสามารถแก้ไขคำตอบนี้ได้หากคุณมีค่าพอที่จะส่งต่อ


ขอบคุณ! วิธีนี้ใช้ได้ผลสำหรับฉัน (เช่นเดียวกับการสร้าง TTF ที่ถูกต้อง) ในขณะที่วิธีอื่น ๆ ที่ฉันได้ลองทำไม่ได้ เป็นเพราะ WOFF จัดการกับแบบอักษรที่ไม่สมบูรณ์ดีขึ้นหรือไม่
Daan

@Danan Is it because WOFF handles incomplete fonts better?ฉันไม่มีความคิด การเดาของคุณน่าจะเป็นของฉัน ตามที่ฉันสังเกตฉันเพิ่งเรียนรู้เกี่ยวกับ WOFF ตัวเอง
Guy Coder

@Danan บางทีคุณควรโพสต์Is it because WOFF handles incomplete fonts better?เป็นคำถาม SO ใหม่และคนอื่น ๆ ที่มีความรู้มากขึ้นจะเห็นและหวังว่าจะให้คำตอบที่มีความหมาย
Guy Coder

ฉันอาจทำอย่างนั้น ขอบคุณ
Daan

2

PDF2SVGเวอร์ชัน 6.0 จากPDFTronทำงานได้อย่างสมเหตุสมผล มันสร้างแบบอักษร OpenType ( .otf) โดยค่าเริ่มต้น ใช้--preserve_fontnamesเพื่อรักษา "รูปแบบการตั้งชื่อแบบอักษร / แบบอักษรตระกูลที่ได้รับจากไฟล์ต้นฉบับ"

PDF2SVG เป็นผลิตภัณฑ์เชิงพาณิชย์ แต่คุณสามารถดาวน์โหลดโปรแกรมสาธิตการใช้งานได้ฟรี (ซึ่งรวมถึงลายน้ำบนเอาต์พุต SVG แต่ไม่ จำกัด การใช้งาน) อาจมีผลิตภัณฑ์ PDFTron อื่น ๆ ที่แยกแบบอักษรด้วย แต่ฉันเพิ่งค้นพบ PDF2SVG ด้วยตัวเอง


น่าเสียดายที่--preserve_fontnamesใช้งานไม่ได้หากคุณซ้อนทับแบบอักษรบางส่วน - ดูเหมือนจะไม่รวมคำนำหน้าเช่นMSCIYGin MSCIYG+Ge'ez-1, ดังนั้นเขียนทับ partials ก่อนหน้า
คริส


0

นี่คือการติดตามfont-forgeส่วนของคำตอบของ@Kurt Pfeifleเฉพาะกับ Red Hat (และ Linux distros อื่น ๆ )

  1. หลังจากเปิด PDF แล้วเลือกแบบอักษรที่คุณต้องการคุณจะต้องเลือกตัวเลือก "ไฟล์ -> สร้างแบบอักษร ... "
  2. หากมีข้อผิดพลาดในไฟล์คุณสามารถเลือกที่จะละเว้นหรือบันทึกไฟล์และแก้ไขได้ ข้อผิดพลาดส่วนใหญ่สามารถแก้ไขได้โดยอัตโนมัติหากคุณคลิก "แก้ไข" เวลาเพียงพอ
  3. คลิก "องค์ประกอบ -> ข้อมูลตัวอักษร ... " และ "ชื่อตัวอักษร", "ชื่อครอบครัว" และ "ชื่อมนุษย์" ถูกตั้งค่าเป็นค่าที่คุณต้องการ หากไม่มีให้แก้ไขและบันทึกไฟล์ไว้ที่ใดที่หนึ่ง ชื่อเหล่านี้จะเป็นตัวกำหนดว่าแบบอักษรของคุณจะปรากฏในระบบอย่างไร
  4. เลือกชื่อไฟล์ของคุณและคลิก "บันทึก ... "

เมื่อคุณมีไฟล์ TTF ของคุณคุณสามารถติดตั้งในระบบของคุณโดย

  1. คัดลอกไปยังโฟลเดอร์/usr/share/fonts(เป็น root)
  2. เล่นfc-cache -f /usr/share/fonts/(เหมือนรูท)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.