@@ -2768,9 +2768,14 @@ def as_pdf(
27682768 self ,
27692769 * ,
27702770 refresh : bool = False ,
2771- prefix : str = "" ,
27722771 pdfa : bool = False ,
27732772 add_page_numbers : bool = True ,
2773+ page_number_prefix : str = "" ,
2774+ page_number_digits : int = 5 ,
2775+ page_number_area = None ,
2776+ page_number_font_size : float = 10 ,
2777+ page_number_offset_horizontal : float = 15 ,
2778+ page_number_offset_vertical : float = 15 ,
27742779 add_cover_page : bool = True ,
27752780 filename : Optional [str ] = None ,
27762781 append_matching_suffix : bool = True ,
@@ -2812,7 +2817,15 @@ def as_pdf(
28122817 )
28132818
28142819 if add_page_numbers :
2815- concatenated_pages .bates_number (prefix = prefix , start = self .start_page )
2820+ concatenated_pages .bates_number (
2821+ start = self .start_page ,
2822+ prefix = page_number_prefix ,
2823+ digits = page_number_digits ,
2824+ area = page_number_area ,
2825+ font_size = page_number_font_size ,
2826+ offset_horizontal = page_number_offset_horizontal ,
2827+ offset_vertical = page_number_offset_vertical
2828+ )
28162829
28172830 setattr (self ._cache , safe_key , concatenated_pages )
28182831 return getattr (self ._cache , safe_key )
@@ -2946,6 +2959,12 @@ def as_pdf(
29462959 filename = "file.pdf" ,
29472960 pdfa : bool = False ,
29482961 add_page_numbers : bool = False ,
2962+ page_number_prefix : str = "" ,
2963+ page_number_digits : int = 5 ,
2964+ page_number_area = None ,
2965+ page_number_font_size : float = 10 ,
2966+ page_number_offset_horizontal : float = 15 ,
2967+ page_number_offset_vertical : float = 15 ,
29492968 toc_pages : int = 0 ,
29502969 append_matching_suffix : bool = True ,
29512970 ) -> DAFile :
@@ -2967,12 +2986,19 @@ def as_pdf(
29672986 exhibit .cover_page
29682987 if self .include_table_of_contents and toc_pages != 1 :
29692988 self ._update_page_numbers (toc_guess_pages = toc_pages )
2989+ if not page_number_prefix and self .bates_prefix :
2990+ page_number_prefix = self .bates_prefix
29702991 return pdf_concatenate (
29712992 [
29722993 exhibit .as_pdf (
29732994 add_cover_page = self .include_exhibit_cover_pages ,
29742995 add_page_numbers = add_page_numbers ,
2975- prefix = self .bates_prefix ,
2996+ page_number_prefix = page_number_prefix ,
2997+ page_number_digits = page_number_digits ,
2998+ page_number_area = page_number_area ,
2999+ page_number_font_size = page_number_font_size ,
3000+ page_number_offset_horizontal = page_number_offset_horizontal ,
3001+ page_number_offset_vertical = page_number_offset_vertical
29763002 )
29773003 for exhibit in self
29783004 ],
@@ -3105,12 +3131,19 @@ class ALExhibitDocument(ALDocument):
31053131 has_addendum : bool
31063132 auto_labeler : Callable
31073133 auto_ocr : bool
3134+ # Deprecated
31083135 bates_prefix : str
31093136 maximum_size : int
31103137 maximum_size_per_doc : int
31113138 suffix_to_append : str
31123139 exhibits : ALExhibitList
31133140 table_of_contents : DAFile
3141+ page_number_prefix : str
3142+ page_number_digits : int
3143+ page_number_area : str | None
3144+ page_number_font_size : float
3145+ page_number_offset_horizontal : float
3146+ page_number_offset_vertical : float
31143147
31153148 def init (self , * pargs , ** kwargs ) -> None :
31163149 """Standard DAObject init method.
@@ -3125,8 +3158,6 @@ def init(self, *pargs, **kwargs) -> None:
31253158 self .exhibits .auto_labeler = self .auto_labeler
31263159 if hasattr (self , "auto_ocr" ):
31273160 self .exhibits .auto_ocr = self .auto_ocr
3128- if hasattr (self , "bates_prefix" ):
3129- self .exhibits .bates_prefix = self .bates_prefix
31303161 if hasattr (self , "include_exhibit_cover_pages" ):
31313162 self .exhibits .include_exhibit_cover_pages = self .include_exhibit_cover_pages
31323163 else :
@@ -3144,13 +3175,30 @@ def init(self, *pargs, **kwargs) -> None:
31443175 else :
31453176 self .include_table_of_contents = True
31463177 self .exhibits .include_table_of_contents = True
3178+ if hasattr (self , "bates_prefix" ):
3179+ self .exhibits .bates_prefix = self .bates_prefix
31473180 if not hasattr (self , "add_page_numbers" ):
31483181 self .add_page_numbers = False
3182+ self ._set_default_attributes ()
31493183 self .has_addendum = False
31503184 if not hasattr (self , "suffix_to_append" ):
31513185 # When the key is "preview", append it to the file name
31523186 self .suffix_to_append = "preview"
31533187
3188+ def _set_default_attributes (self ) -> None :
3189+ if not hasattr (self , "page_number_prefix" ):
3190+ self .page_number_prefix = ""
3191+ if not hasattr (self , "page_number_digits" ):
3192+ self .page_number_digits = 5
3193+ if not hasattr (self , "page_number_area" ):
3194+ self .page_number_area = None
3195+ if not hasattr (self , "page_number_font_size" ):
3196+ self .page_number_font_size = 10
3197+ if not hasattr (self , "page_number_offset_horizontal" ):
3198+ self .page_number_offset_horizontal = 15
3199+ if not hasattr (self , "page_number_offset_vertical" ):
3200+ self .page_number_offset_vertical = 15
3201+
31543202 def has_overflow (self ) -> bool :
31553203 """
31563204 Check if there is any overflow in the document.
@@ -3225,19 +3273,34 @@ def as_pdf(
32253273 filename = base_name (self .filename ) + ".pdf"
32263274
32273275 if len (self .exhibits ):
3276+ self ._set_default_attributes ()
32283277 if self .include_table_of_contents :
32293278 toc_pages = self .table_of_contents .num_pages ()
32303279 return pdf_concatenate (
32313280 self .table_of_contents ,
32323281 self .exhibits .as_pdf (
3233- add_page_numbers = self .add_page_numbers , toc_pages = toc_pages
3282+ add_page_numbers = self .add_page_numbers ,
3283+ page_number_prefix = self .page_number_prefix ,
3284+ page_number_digits = self .page_number_digits ,
3285+ page_number_area = self .page_number_area ,
3286+ page_number_font_size = self .page_number_font_size ,
3287+ page_number_offset_horizontal = self .page_number_offset_horizontal ,
3288+ page_number_offset_vertical = self .page_number_offset_vertical ,
3289+ toc_pages = toc_pages ,
3290+ pdfa = pdfa
32343291 ),
32353292 filename = filename ,
32363293 pdfa = pdfa ,
32373294 )
32383295 else :
32393296 return self .exhibits .as_pdf (
32403297 add_page_numbers = self .add_page_numbers ,
3298+ page_number_prefix = self .page_number_prefix ,
3299+ page_number_digits = self .page_number_digits ,
3300+ page_number_area = self .page_number_area ,
3301+ page_number_font_size = self .page_number_font_size ,
3302+ page_number_offset_horizontal = self .page_number_offset_horizontal ,
3303+ page_number_offset_vertical = self .page_number_offset_vertical ,
32413304 filename = filename ,
32423305 pdfa = pdfa ,
32433306 )
0 commit comments