@@ -1017,7 +1017,20 @@ def __init__(self, filename, *, keep_empty=True, metadata=None):
1017
1017
self ._outputfile = filename
1018
1018
self ._n_figures = 0
1019
1019
self .keep_empty = keep_empty
1020
- self .metadata = metadata or {}
1020
+ self .metadata = (metadata or {}).copy ()
1021
+ if metadata :
1022
+ for key in metadata :
1023
+ canonical = {
1024
+ 'creationdate' : 'CreationDate' ,
1025
+ 'moddate' : 'ModDate' ,
1026
+ }.get (key .lower (), key .lower ().title ())
1027
+ if canonical != key :
1028
+ cbook .warn_deprecated (
1029
+ '3.3' , message = 'Support for setting PDF metadata keys '
1030
+ 'case-insensitively is deprecated since %(since)s and '
1031
+ 'will be removed %(removal)s; '
1032
+ f'set { canonical } instead of { key } .' )
1033
+ self .metadata [canonical ] = self .metadata .pop (key )
1021
1034
1022
1035
# create temporary directory for compiling the figure
1023
1036
self ._tmpdir = tempfile .mkdtemp (prefix = "mpl_pgf_pdfpages_" )
@@ -1028,27 +1041,28 @@ def __init__(self, filename, *, keep_empty=True, metadata=None):
1028
1041
1029
1042
def _write_header (self , width_inches , height_inches ):
1030
1043
supported_keys = {
1031
- 'title ' , 'author ' , 'subject ' , 'keywords ' , 'creator ' ,
1032
- 'producer ' , 'trapped '
1044
+ 'Title ' , 'Author ' , 'Subject ' , 'Keywords ' , 'Creator ' ,
1045
+ 'Producer ' , 'Trapped '
1033
1046
}
1034
1047
infoDict = {
1035
- 'creator' : f'matplotlib { mpl .__version__ } , https://matplotlib.org' ,
1036
- 'producer' : f'matplotlib pgf backend { mpl .__version__ } ' ,
1048
+ 'Creator' : f'matplotlib { mpl .__version__ } , https://matplotlib.org' ,
1049
+ 'Producer' : f'matplotlib pgf backend { mpl .__version__ } ' ,
1050
+ ** self .metadata
1037
1051
}
1038
- metadata = {k .lower (): v for k , v in self .metadata .items ()}
1039
- infoDict .update (metadata )
1040
1052
hyperref_options = ''
1041
1053
for k , v in infoDict .items ():
1042
1054
if k not in supported_keys :
1043
1055
raise ValueError (
1044
1056
'Not a supported pdf metadata field: "{}"' .format (k )
1045
1057
)
1046
- hyperref_options += 'pdf' + k + '={' + str (v ) + '},'
1058
+ hyperref_options += k + '={' + str (v ) + '},'
1047
1059
1048
1060
latex_preamble = get_preamble ()
1049
1061
latex_fontspec = get_fontspec ()
1050
1062
latex_header = r"""\PassOptionsToPackage{{
1051
- {metadata}
1063
+ pdfinfo={{
1064
+ {metadata}
1065
+ }}
1052
1066
}}{{hyperref}}
1053
1067
\RequirePackage{{hyperref}}
1054
1068
\documentclass[12pt]{{minimal}}
0 commit comments