เรามีปัญหาเล็กน้อยเกี่ยวกับแบบอักษรในเอกสาร PDF เพื่อที่จะวางนิ้วบนปัญหาที่ฉันต้องการตรวจสอบว่าแบบอักษรใดที่ฝังอยู่ในเอกสาร pdf จริงและมีการอ้างอิงเท่านั้น มีวิธีที่ง่าย (และราคาถูกเหมือนฟรี) ในการทำเช่นนั้นหรือไม่?
เรามีปัญหาเล็กน้อยเกี่ยวกับแบบอักษรในเอกสาร PDF เพื่อที่จะวางนิ้วบนปัญหาที่ฉันต้องการตรวจสอบว่าแบบอักษรใดที่ฝังอยู่ในเอกสาร pdf จริงและมีการอ้างอิงเท่านั้น มีวิธีที่ง่าย (และราคาถูกเหมือนฟรี) ในการทำเช่นนั้นหรือไม่?
คำตอบ:
pdffonts
เครื่องมือบรรทัดคำสั่งมีพื้นเพมาจากxpdfนี้เป็นส่วนหนึ่งของPoppler
เครื่องมือนี้มีอยู่ในลีนุกซ์ส่วนใหญ่เป็นส่วนหนึ่งของpoppler-utils
แพ็คเกจ
ตัวอย่างการใช้งานและผลลัพธ์:
$ pdffonts some.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
BAAAAA+Arial-Black TrueType yes yes yes 53 0
CAAAAA+Tahoma TrueType yes yes yes 28 0
DAAAAA+Wingdings-Regular TrueType yes yes yes 43 0
EAAAAA+Webdings TrueType yes yes yes 38 0
FAAAAA+Arial-BoldMT TrueType yes yes yes 33 0
GAAAAA+Tahoma-Bold TrueType yes yes yes 23 0
HAAAAA+OpenSymbol TrueType yes yes yes 48 0
brew install poppler
สามารถpdffonts
รับคำสั่งได้อย่างง่ายดาย
ง่ายกว่ามากหากคุณต้องการค้นหาชื่อแบบอักษร: เรียกใช้สิ่งนี้จากเทอร์มินัล
strings yourPDFfilepath.pdf | grep FontName
pdffonts
แสดงแบบอักษรที่ฝังอยู่สองแบบ สิ่งนี้ไม่แสดง เห็นได้ชัดว่าวิธีนี้ใช้ได้ผลบ้าง แต่ไม่น่าเชื่อถือ
ในที่สุดฉันก็ได้ไฟล์ตัวอย่างที่ดูเหมือนจะมีฟอนต์ฝังอยู่
ใช้ Adobe Reader ปกติ (หรือ Foxit ถ้าคุณต้องการ) เลือกไฟล์ -> คุณสมบัติบนกล่องโต้ตอบผลลัพธ์เลือกแท็บฟอนต์ คุณจะเห็นรายการแบบอักษร คนที่ฝังไว้จะระบุข้อเท็จจริงนี้ใน () หลังชื่อแบบอักษร
CAM :: PDFมีตัวรายงานแบบอักษรพร้อมใช้งานในรูปแบบยูทิลิตี้บรรทัดคำสั่งหรือผ่านการเรียกไลบรารี หากคุณเรียกใช้ "listfont.pl file.pdf" คุณจะได้ผลลัพธ์ดังนี้:
Page 1:
Name: F1.0
Type: TrueType
BaseFont: NZUXSR+Impact
Encoding: MacRomanEncoding
Widths: yes
Characters: 0-255
Embedded: yes
Name: F2.0
Type: TrueType
BaseFont: XSFKRA+ArialMT
Encoding: MacRomanEncoding
Widths: yes
Characters: 0-255
Embedded: yes
คุณสามารถแยกแบบอักษรจาก PDF โดยใช้Online Font Converter
โดยใช้ iText ฟรี (หรือ iTextSharp หากคุณใช้. NET) คุณสามารถเขียนยูทิลิตี้ที่จะดึงข้อมูลนี้ให้คุณโดยใช้เมธอด BaseFont.GetDocumentFonts
อ่านลิงค์นี้เพื่อดูรหัส