Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_font.cpython-313.pyc150 linesDownload Raw Back to __pycache__
1�

2s�j�X���SSKJr SSKJr SSKJrJr SSKJrJ	r	J3r4 SSKJrJ
r
JrJrJr SSKJr SSKJr SS	KJr SS5KJr SSKJr \(aSSKJr SS
KJr SSKJ r  SSK!J"r" SSK#J$r$ Sr%Sr'Sr(Sr)Sr*Sr+Sr,Sr-Sr.\"SS9"SS55r/\"SS9"SS55r0\"SS 55r1g!!\&a Sr%NPf=f)"�)�annotations)�Sequence)�	dataclass�field)�
TYPE_CHECKING�Any�cast)�ArrayObject�DictionaryObject�6NameObject�NumberObject�StreamObject�)�get_encoding��adobe_glyphs)�logger_warning)�	FontFlags)�PdfReadError)�BytesIO)�table__h_e_a_d)�table__p_o_s_t)�table_O_S_2f_2)�TTFontTF�����	�7�)�frozenc��\rSrSr%SrSrS\S'SrS\S'SrS\S'Sr	S	\S8'Sr9S	\S'S
rS	\S'SrS	\S'Sr
S	\S'SrS\S'\"SS9rS\S'SrS\S'Srg)�FontDescriptor�(z�10Represents the FontDescriptor dictionary as defined in the PDF specification.11This contains both descriptive and metric information.12 13The defaults are derived from the mean values of the 14 core fonts, rounded14to 100.15�Unknown�str�name�family�weightg��@�float�ascent�i��descentg��@�16cap_heightg@@�x_height��italic_angle� �int�flagsc��g)N)gY�r-�@�@g �@�r8��QD:\code\apps\devtools\python\user_packages\Python313\site-packages\pypdf/_font.py�<lambda>�FontDescriptor.<lambda><s��Lkr9��default_factoryz!tuple[float, float, float, float]�bboxNzStreamObject | None�	font_filer8)�__name__�17__module__�__qualname__�__firstlineno__�__doc__r(�__annotations__r)r*r,r.r/r0r2r5rr?r@�__static_attributes__r8r9r:r$r$(s~����D�#���F�C���F�C���F�E���G�U���J����H�e���L�%���E�3�O�.3�Dk�.l�D�18+�l�%)�I�"�)r9r$c�*�\rSrSr%S\S'S\S'Srg)�CoreFontMetrics�@r$�font_descriptor�dict[str, int]�character_widthsr8N)rArBrCrDrFrGr8r9r:rIrI@s��#�#�$�$r9rIc��\rSrSr%SrS\S'S\S'\"\S9rS\S	'S19r	S\S'\"\20S9rS\S
'\"SS9rS\S'Sr
S\S'SrS\S'\S#Sj5r\S$Sj5r\S%Sj5r\S&Sj5r\S'Sj5r\S(Sj5r\S)Sj5r\S*Sj5rS+SjrS,S-S jjrS!rg").�Font�Fa�21A font object for use during text extraction and for producing22text appearance streams.23 24Attributes:25    name: Font name, derived from font["/BaseFont"]26    character_map: The font's character map27    encoding: Font encoding28    sub_type: The font type, such as Type1, TrueType, or Type3.29    font_descriptor: Font metrics, including a mapping of characters to widths30    character_widths: A mapping of characters to widths31    space_width: The width of a space, or an approximation32    interpretable: Default True. If False, the font glyphs cannot33        be translated to characters, e.g. Type3 fonts that do not define34        a '/ToUnicode' mapping.35 36r'r(�str | dict[int, str]�encodingr=�dict[Any, Any]�
character_mapr&�sub_typer$rKc�37�SS0$)N�default��r8r8r9r:r;�
Font.<lambda>_s38��i�QT�EUr9rLrM��zfloat | int�space_widthT�bool�
interpretablec
���[[US5nURSS5n[U[5(dNUR[
U5VVs0sH%upgURXe-[Xe-55U_M' snn5 g[
U5HYupgXe-n[U/5RUS5n	URU	5n39U40(a[U5X:'ML[U5X9'M[ gs snnf)zcParses a TrueType or Type1 font's /Widths array from a font dictionary and updates character widths�/Widthsz41/FirstCharrN�
surrogatepass)r	r42�get�43isinstancer'�update�	enumerate�chr�bytes�decoder4)�
pdf_font_dict�char_maprR�current_widths�widths_array�44first_char�idx�width�	char_code�raw_char�unicode_chars           r:�_collect_tt_t1_character_widths�$Font._collect_tt_t1_character_widthscs����K��y�)A�B��"�&�&�|�Q�7�45��(�C�(�(��!�!�"+�L�"9�#�"9�J�C����S�-�s�3�3C�/D�E�u�L�"9�#�
�
�$�L�1�J�C��(�I��i�[�)�0�0��?�K�H�#�<�<��1�L��/2�5�z��,�+.�u�:��(�2��#s�,C246c�|�UR5VVs0sH(up4[U[5(dM[U5U_M* nnnSnUR	S/5n[U5GH�up�U	R
5n	U(aUS-nM$[U	[[45(d[SU	S3[5 MUXxS-R
5n47[U48[5(asX�p�UR[[[[U5[[U5[!U5-S5U5V
Vs0sHup�X�;dMX]U_M snn
5 SnM�[U49[[45(a�[XxS-R
5[[45(asU	U50XxS-R
5np�UR[[[U5[[US-5S5V
s0sHn
X�;dM51X]U_M sn
5 SnGM�[SU	S3[5 GM� g	s snnfs snn
fs sn
f)52zRParses the /W array from a DescendantFont dictionary and updates character widths.rz/Wrz&Expected numeric value for width, got z. Ignoring it.rz-Invalid font width definition. Last element: �.N)�itemsrbr'�ordrard�53get_objectr4r+rrArrc�zip�ranger	�len)�d_fontrirj�_target�54_surrogate�ord_map�55skip_count�_wrm�w_entry�w_next_entry�	start_idx�56width_list�_cidx�_width�stop_idx�const_widths                 r:�_collect_cid_character_widths�"Font._collect_cid_character_widths�s:��(0�~�~�'7�57�'7�#���'�3�'�
%�C��L�*�$�'7�	�58��59�
�Z�Z��b�
!��%�b�M�L�C��(�(�*�G���a��60���g��U�|�4�4��!G��y�P^�_�ai�j���A�g�;�1�1�3�L��,��1�1�(/�:��%�%�.1�!� $�S�)� 4� $�S�)� 4�s�:�� F� !��61'�
.��.�M�E�!�+�/����.�.��
��62��L�3��,�7�7�J���7��&�&�(�3��,�=�=�� ��Q�w�K�*�*�,�&1�8�63�%�%�&+� ��i�0�$�s�H�q�L�2I�1�&��&�E�!�+�	4����3�&����64��C�G�9�A�N���g*��65��6��0s"�H-�H-�3H3�	H3�1	H966�>	H967c�`�U(dSUS'gSU;aLUSS:waCU[R-[R:Xa	USUS'g[SUS-5US'gUR5Vs/sHo"S:�dM68UPM nnU(a[	U5[U5-OSUS'gs snf)NrXrW� rr)r�FIXED_PITCHr4�values�sumr{)rjr5�w�valid_widthss    r:�_add_default_width�Font._add_default_width�s����(+�N�9�%���.� �^�C�%8�A�%=��	�-�-�-�)�2G�2G�G�,:�3�,?��y�)��(+�A��s�0C�,C�(D�N�9�%��$2�#8�#8�#:�D�#:�a�!�e��#:��D�NZ�C��$5��\�9J�$J�`c��y�!��Es�2	B+�?B+c��URSS5nUS:waU$U[R-[R:XaUS$USS-$)Nr�rrWr)rarr�)rMr5r[s   r:�_add_space_width�Font._add_space_width�sV��&�*�*�3��2���!�����I�)�)�)�i�.C�.C�C�#�I�.�.��	�*�a�/�/r9c69��0nSHup#X ;dMXX'M SU;a6[[[US55n[U5S:XdU5eXAS'SH5nX ;dM70SU;a[	SU35eXR5nXQS'M7 U$![a%n[
SU<SUS	U3[5 SnAMeSnAff=f)71N)72)z	/FontNamer()z/FontFamilyr))z/FontWeightr*)z/Ascentr,)z/Descentr.)z73/CapHeightr/)z/XHeightr0)z/ItalicAngler2)z/Flagsr5)�	/FontBBoxr?r?r)z	/FontFilez74/FontFile2z75/FontFile3r@z!More than one /FontFile found in zFailed to get z in z: )�tuple�mapr+r{rrxrrA)�font_descriptor_obj�font_descriptor_kwargs�76source_key�77target_key�78bbox_tupler@�es       r:�_parse_font_descriptor�Font._parse_font_descriptor�s���13��'79�"�J��0�5H�5T�&�2�'80��+�+��s�5�*@��*H�I�J�J��z�?�a�'�3��3�'�-7�6�*�D�J��0��"8�8�&�)J�K^�J_�'`�a�a�l� 3� ?� J� J� L�I�:C�;�7�D�&�%��$�l�"�^�J�>��FY�EZ�Z\�]^�\_�#`�bj�k�k��l�s�8B�81C�B>�>Cc���SSKJn URSS5RS5nURSS5RS5n[	U5upVSn0nSn	URS5S;Ga;US	:Xa0S82U;a*[SURS5=(d /55n	U	(a�S
U;aUR
XXX5 O!X2;aX#RnX#RnSU;anURS[55R5n83SU84;a$[[U85SR55US'[S0URU865D6nGO'SU;aI[[!["[[$US555n['U5S:XdU5e[X;S9nO�[)[[$US55H�up�[[U
R55n
U
[[$US5U'UR+X�U5 SU
;a$[[U
SR55US'U
RS[55R5n87[S0URU885D6nM� U(d	[US9nURSS5S:XaUR-X�R.5 UR1X�R.5nU"UUUUUUUU	S9$)Nr)�CORE_FONT_METRICS�	/BaseFontr&�/�/SubtypeT)�/Type1z/MMType1z	/TrueTypez/Type3�Type3z89/ToUnicodec3�4# �UHnU[;v� M g7f)Nr)�.0�cnames  r:�	<genexpr>�*Font.from_font_resource.<locals>.<genexpr>$s���$�!F���\�)�!F�s�z90/CharProcsr_z/FontDescriptorz
/MissingWidthrWr�r)r(r?z/DescendantFontsz/DW)r(�r(rUrRrKrTrMr[r]r8)�pypdf._codecs.core_font_metricsr�ra�removeprefixr�allrrrKrMrrxr	r4r$r�r�r�r+r91r{rdr�r�r5r�)�clsrhr�r(rUrRrTrKrMr]r�r��92d_font_idxr|r[s               r:�from_font_resource�Font.from_font_resources���93	F�� � ��i�8�E�E�c�J�� �$�$�Z��;�H�H��M��".�}�"=�����+-���
����Z�(�,Y�Y�94�7�"�|�=�'H� #�$�!.�!2�!2�<�!@�!F�B�!F�$�!�
���
�-��7�7�%�h���.�&7�&=�&M�&M�O�'8�'>�'O�'O�$�$�
�5�*7�*;�*;�<M�O_�Oa�*b�*m�*m�*o�'�&�*=�=�6:�3�@S�Tc�@d�@o�@o�@q�6r�(��3�&4�&g�s�7Q�7Q�Re�7f�&g�O� �M�1�!&�s�5�$�{�M�R]�D^�2_�'`�!a�J��z�?�a�/�;��;�/�&4�$�&P�O��'0��[�-�0B�"C�D�'�"�95��.��0A�0A�0C�D��SY��[�-�0B�"C�D�Z�P��1�1��+;���F�?�26�s�F�5�M�<T�<T�<V�2W�$�Y�/�&,�j�j�1B�DT�DV�&W�&b�&b�&d�#�"0�"c�3�3M�3M�Na�3b�"c��'��,�$�7�O����	�1�-��2��"�"�#3�5J�5J�K��*�*�+;�=R�=R�S������+�'�-�#�'�	96�		97r9c�j�U(aURnURS-	nSnUR[-(dU(a+UR[98-(aU[R-nU(a%URnUS:waU[R-nU(aWR[:XdU(a#URS:�aU[R-nU(a1W[:XdWR[:XaU[R -nU(aASWR"s=::aS::dO SWs=::aS::dO US:XaU[R$-nU(a9W[&:XdWR[([*1;aU[R,-nU$U[R.-nU$)	N�rr1rr rr�)�panose�sFamilyClass�macStyle�HEADER_MACSTYLE_ITALIC�fsSelection�OS2_FSSELECTION_ITALICr�ITALIC�italicAngle�bProportion�!OS2_PANOSE_BPROPORTION_MONOSPACED�isFixedPitchr��OS2_SFAMILYSCLASS_SCRIPTS�bFamilyType�OS2_PANOSE_BFAMILYTYPE_SCRIPT�SCRIPT�bSerifStyle�SERIF�OS2_SFAMILYSCLASS_SYMBOLIC�!OS2_PANOSE_BFAMILYTYPE_DECORATIVE� OS2_PANOSE_BFAMILYTYPE_PICTORIAL�SYMBOLIC�NONSYMBOLIC)�header�99postscript�os2r��family_classr5r2s       r:�%_font_flags_from_truetype_font_tables�*Font._font_flags_from_truetype_font_tables`sd����Z�Z�F��+�+�q�0�L����?�?�3�3�����Rh�@h��Y�%�%�%�E��%�1�1�L��s�"���)�)�)���V�'�'�+L�L�
�J�3�3�a�7��Y�*�*�*�E���5�5��9K�9K�Ol�9l��Y�%�%�%�E��
��#�#�)�r�)��L�%�A�%���):��Y�_�_�$�E���6�6����#D�Ff�"g�g��Y�'�'�'�E���
�Y�*�*�*�E��r9c��[(d[S5e[U5nUSnUSnUSRnUR	SS5nUR	SS5nUR100nSU-n	0n101UR	SS5nU(a9UR
5U102S'UR5U103S	'UR5U104S105'[[URU	-S55U106S'[[URU	-S55U107S
'U(aK[[URU	-S55U108S'[[URU	-S55U109S'UR!X6U5U110S'[UR"U	-S5[UR$U	-S5[UR&U	-S5[UR(U	-S54U111S'[+5nUR-5n
UR/U
5 UR1[3S5[5[7U
5505 X�S'[9S0U112D6nSn0n0nUR;5nUR	S5nU(a�UR=5n[?U5H�unnUR	U5nUcM[AU5nURCU5nURESS5nURGSS5nUUU'[[UUSU	-S55UU'M� O[IS5eURKUU113S5 URMUU114S5nSSS5 U"WRNSWUWWWSS9$![a GNf=f!,(df   N6=f)NzDThe 'fontTools' library is required to use 'from_truetype_font_file'�head�hhea�hmtx�postzOS/2r7r(r)r*rr,r.r/r0r5r?z/Length1r@�	utf_16_be�cmapr�bigz	utf-16-ber`z$Font file does not have a cmap table�TrueTypeTr�r8)(�
HAS_FONTTOOLS�ImportErrorr�metricsra�115unitsPerEm�getBestFullName�getBestFamilyName�getBestSubFamilyNamer4�roundr,r.�116sCapHeight�sxHeight�AttributeErrorr��xMin�yMin�xMax�yMaxr�getvalue�set_datarcrr
r{r$�
getGlyphOrder�buildReversedMinrdre�117getGlyphID�to_bytesrgrr�r�r()r�r@�tt_font_objectr��horizontal_headerr�r�r��units_per_em�scale_factorr��names�font_file_data�font_file_raw_bytesrKrRrMrT�glyph_order�tt_font_cmap_table�reverse_cmap�gid�glyphro�char�	gid_bytes�gid_key_stringr[s                            r:�from_truetype_font_file�Font.from_truetype_font_file�s����}��d�e�e�
�I�
�.�118$�F�+�F� .�v� 6��$�V�,�4�4�G�(�+�+�F�D�9�J� �$�$�V�T�2�C�"�,�,�L�!�L�0�L�68�"�"�&�&�v�t�4�E��16�1F�1F�1H�&�v�.�38�3J�3J�3L�&�x�0�38�3M�3M�3O�&�x�0�/2�5�9J�9Q�9Q�T`�9`�bc�3d�/e�"�8�,�03�E�:K�:S�:S�Vb�:b�de�4f�0g�"�9�-���;>�u�S�^�^�Vb�Eb�de�?f�;g�*�<�8�9<�U�3�<�<�R^�C^�`a�=b�9c�*�:�6�/2�.W�.W�X^�lo�.p�"�7�+��f�k�k�L�0�!�4��f�k�k�L�0�!�4��f�k�k�L�0�!�4��f�k�k�L�0�!�4�	.�"�6�*�*�^�N�"+�"4�"4�"6���#�#�$7�8��!�!�:�j�#9�<��L_�H`�;a�"b�c�2@�;�/�,�F�/E�F�O�"�H�/1��,.�M�(�6�6�8�K�"0�!3�!3�F�!;��!�1�B�B�D��"+�K�"8�J�C�� ,� 0� 0�� 7�I� �(� ��y�>�D�(�3�3�E�:�C� #���Q�� 6�I�%.�%5�%5�k�?�%S�N�48�M�.�1�7:�5����PQ�AR�Ua�Aa�cd�;e�7f�$�^�4�#9�#�#I�J�J��"�"�#3�5K�G�5T�U��.�.�/?�AW�X_�A`�a�K�W�Z� �%�%���+�'�-�#��	119�		120��_&�����=�
�s2�C4M8�A121M'�!G'M8�'122M5�1M8�4M5�5M8�8123Nc��[[S5[S5[S5[SUR35[S5[S5[S5[SUR35[S5[S	505$)124Nr�r�z/Namer�z/Typez/Fontr�z	/Encodingz/WinAnsiEncoding)rrr()�selfs r:�as_font_resource�Font.as_font_resource�sv��
��:�&�125�8�(<��7�#�Z�!�D�I�I�;��%@��7�#�Z��%8��;�'��a��	�	�{�O�)D��;�'��4F�)G��
�	126r9c127��[UVs/sH*o RRX RS5PM, snS5$s snf)zDSum of character widths specified in PDF font for the supplied text.rWr1)r�rMra)r�textrs   r:�128text_width�Font.text_width�sD���[_�`�[_�SW�
"�
"�
&�
&�t�-B�-B�9�-M�
N�[_�`�be�129�	130��`s�1Ar8N)131rhrrirSrRrQrjrL�return�None)r|rrirSrjrLrr)rjrLr5r4rr)rMrLr5r4rr4)r�rrzdict[str, Any])rhrrrO)r�rr�rr�rrr4)r@rrrO)rr)�)rr'rr+)rArBrCrDrErFr�dictrTrUr$rKrMr[r]�staticmethodrrr�r�r�r��classmethodr�r�rrrrGr8r9r:rOrOFs����$�I�"�"�$)�$�$?�M�>�?��H�c��&+�N�&K�O�^�K�',�=U�'V��n�V�"�K��"��M�4���6�'�6� �6�'�6�'�	6�132133�6��6�>�F� �F�,:�F�LZ�F�	
�F��F�P�d��d�$�0��0��!&��!&�F�O134�'�O135�136�O137��O138�b�2�"�2�&�2� �2��	2��2�h�Y139��Y140�v141142�143�144r9rON)2�145__future__r�collections.abcr�dataclassesrr�typingrrr	�
pypdf.genericr146rrr
r�_cmapr�_codecs.adobe_glyphsr�_utilsr�	constantsr�errorsr�ior�fontTools.ttLib.tables._h_e_a_dr�fontTools.ttLib.tables._p_o_s_tr�fontTools.ttLib.tables.O_S_2f_2r�fontTools.ttLibrr�r�r�r�r�r�r�r�r�r�r$rIrOr8r9r:�<module>r#s���"�$�(�+�+�_�_��.�"� � ���>�>�>��&��M����� !��$%�!�#$� �$%�!������$��*�*��*�.�$��%�%��%�147�z148�z149��z150��]���M��s�+B9�9C�C
codekingpro/portable-devtools · Team Ai