1
1
"""Show metadata of a PDF file"""
2
2
3
+ import os
3
4
from enum import Enum
4
5
from pathlib import Path
5
- from typing import Optional , Tuple
6
+ from typing import Optional , Set , Tuple
6
7
7
8
from pydantic import BaseModel
8
9
from PyPDF2 import PdfReader
@@ -55,6 +56,7 @@ def main(pdf: Path, output: OutputOptions) -> None:
55
56
table .add_column ("Attribute" , justify = "right" , style = "cyan" , no_wrap = True )
56
57
table .add_column ("Value" , style = "white" )
57
58
59
+ table .add_row ("File Size" , f"{ os .path .getsize (pdf ):,} Bytes" )
58
60
table .add_row ("Title" , meta .title )
59
61
table .add_row ("Producer" , meta .producer )
60
62
table .add_row ("Pages" , f"{ meta .pages :,} " )
@@ -66,6 +68,14 @@ def main(pdf: Path, output: OutputOptions) -> None:
66
68
table .add_row ("PDF File Version" , meta .pdf_file_version )
67
69
table .add_row ("Page Layout" , meta .page_layout )
68
70
table .add_row ("Page Mode" , meta .page_mode )
71
+ embedded_fonts : Set [str ] = set ()
72
+ unemedded_fonts : Set [str ] = set ()
73
+ for page in reader .pages :
74
+ emb , unemb = page ._get_fonts ()
75
+ embedded_fonts = embedded_fonts .union (set (emb ))
76
+ unemedded_fonts = unemedded_fonts .union (set (unemb ))
77
+ table .add_row ("Fonts (unembedded)" , ", " .join (sorted (unemedded_fonts )))
78
+ table .add_row ("Fonts (embedded)" , ", " .join (sorted (embedded_fonts )))
69
79
70
80
console = Console ()
71
81
console .print (table )
0 commit comments