Merge pull request #2742 from alphagov/overlay-sometimes

Only add overlay for pages which are invalid for precompiled letters uploaded via the API
This commit is contained in:
David McDonald
2020-03-10 13:54:22 +00:00
committed by GitHub
2 changed files with 93 additions and 17 deletions

View File

@@ -245,11 +245,12 @@ def preview_letter_template_by_notification_id(service_id, notification_id, file
status_code=500
)
content = base64.b64encode(pdf_file).decode('utf-8')
overlay = metadata.get("message") == "content-outside-printable-area"
page_number = page if page else "1"
content = base64.b64encode(pdf_file).decode('utf-8')
content_outside_printable_area = metadata.get("message") == "content-outside-printable-area"
page_is_in_invalid_pages = page_number in metadata.get('invalid_pages', '[]')
if overlay:
if content_outside_printable_area and (file_type == "pdf" or page_is_in_invalid_pages):
path = '/precompiled/overlay.{}'.format(file_type)
query_string = '?page_number={}'.format(page_number) if file_type == 'png' else ''
content = pdf_file
@@ -262,7 +263,7 @@ def preview_letter_template_by_notification_id(service_id, notification_id, file
if file_type == 'png':
try:
pdf_page = extract_page_from_pdf(BytesIO(pdf_file), int(page_number) - 1)
content = pdf_page if overlay else base64.b64encode(pdf_page).decode('utf-8')
content = pdf_page if page_is_in_invalid_pages else base64.b64encode(pdf_page).decode('utf-8')
except PdfReadError as e:
raise InvalidRequest(
'Error extracting requested page from PDF file for notification_id {} type {} {}'.format(