Skip to content
Open
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 48 additions & 33 deletions docassemble/AssemblyLine/al_document.py
Original file line number Diff line number Diff line change
Expand Up @@ -2895,7 +2895,7 @@ def as_pdf(
add_cover_page: bool = True,
filename: Optional[str] = None,
append_matching_suffix: bool = True,
) -> DAFile:
) -> Optional[DAFile]:
"""
Generates a PDF version of the exhibit, with optional features like Bates numbering or a cover page.

Comment thread
rajeswari1301 marked this conversation as resolved.
Expand Down Expand Up @@ -2928,13 +2928,19 @@ def as_pdf(
return getattr(self._cache, safe_key)
if not filename:
filename = "exhibits.pdf"
valid_pages = [p for p in self.ocr_pages() if p and p.ok]
if not valid_pages:
log(
f"ALExhibit.as_pdf(): no valid pages for exhibit '{self.title}', skipping"
)
return None
if add_cover_page:
concatenated_pages = pdf_concatenate(
self.cover_page, self.ocr_pages(), filename=filename, pdfa=pdfa
self.cover_page, valid_pages, filename=filename, pdfa=pdfa
)
else:
concatenated_pages = pdf_concatenate(
self.ocr_pages(), filename=filename, pdfa=pdfa
valid_pages, filename=filename, pdfa=pdfa
)

if add_page_numbers:
Expand Down Expand Up @@ -3106,7 +3112,7 @@ def as_pdf(
page_number_offset_vertical: float = 15,
toc_pages: int = 0,
append_matching_suffix: bool = True,
) -> DAFile:
) -> Optional[DAFile]:
"""
Compiles all exhibits in the list into a single PDF.

Expand All @@ -3133,8 +3139,9 @@ def as_pdf(
self._update_page_numbers(toc_guess_pages=toc_pages)
if not page_number_prefix and self.bates_prefix:
page_number_prefix = self.bates_prefix
return pdf_concatenate(
[
exhibit_pdfs = [
pdf
for pdf in (
exhibit.as_pdf(
add_cover_page=self.include_exhibit_cover_pages,
add_page_numbers=add_page_numbers,
Expand All @@ -3146,7 +3153,14 @@ def as_pdf(
page_number_offset_vertical=page_number_offset_vertical,
)
Comment thread
rajeswari1301 marked this conversation as resolved.
for exhibit in self
],
)
if pdf is not None
]
if not exhibit_pdfs:
log("ALExhibitList.as_pdf(): no valid exhibits to include, skipping")
return None
return pdf_concatenate(
exhibit_pdfs,
filename=filename,
pdfa=pdfa,
)
Expand Down Expand Up @@ -3395,7 +3409,7 @@ def as_pdf(
refresh: bool = True,
pdfa: bool = False,
append_matching_suffix: bool = True,
) -> DAFile:
) -> Optional[DAFile]:
"""
Render the document as a PDF.

Expand All @@ -3419,43 +3433,44 @@ def as_pdf(

if len(self.exhibits):
self._set_default_attributes()
exhibits_pdf = self.exhibits.as_pdf(
add_page_numbers=self.add_page_numbers,
page_number_prefix=self.page_number_prefix,
page_number_digits=self.page_number_digits,
page_number_area=self.page_number_area,
page_number_font_size=self.page_number_font_size,
page_number_offset_horizontal=self.page_number_offset_horizontal,
page_number_offset_vertical=self.page_number_offset_vertical,
toc_pages=(
self.table_of_contents.num_pages()
if self.include_table_of_contents
else 0
),
pdfa=pdfa,
)
if exhibits_pdf is None:
log(
f"ALExhibitDocument.as_pdf(): no valid exhibits for '{self.title}', skipping"
)
return (
self.table_of_contents if self.include_table_of_contents else None
)
Comment thread
Copilot marked this conversation as resolved.
Outdated
if self.include_table_of_contents:
toc_pages = self.table_of_contents.num_pages()
return pdf_concatenate(
self.table_of_contents,
self.exhibits.as_pdf(
add_page_numbers=self.add_page_numbers,
page_number_prefix=self.page_number_prefix,
page_number_digits=self.page_number_digits,
page_number_area=self.page_number_area,
page_number_font_size=self.page_number_font_size,
page_number_offset_horizontal=self.page_number_offset_horizontal,
page_number_offset_vertical=self.page_number_offset_vertical,
toc_pages=toc_pages,
pdfa=pdfa,
),
filename=filename,
pdfa=pdfa,
)
else:
return self.exhibits.as_pdf(
add_page_numbers=self.add_page_numbers,
page_number_prefix=self.page_number_prefix,
page_number_digits=self.page_number_digits,
page_number_area=self.page_number_area,
page_number_font_size=self.page_number_font_size,
page_number_offset_horizontal=self.page_number_offset_horizontal,
page_number_offset_vertical=self.page_number_offset_vertical,
exhibits_pdf,
filename=filename,
pdfa=pdfa,
)
return exhibits_pdf
return None

def as_docx(
self,
key: str = "final",
refresh: bool = True,
append_matching_suffix: bool = True,
) -> DAFile:
) -> Optional[DAFile]:
"""
Despite the name, renders the document as a PDF. Provided for signature compatibility.

Expand Down
Loading