27 lines
820 B
Python
27 lines
820 B
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import base64
|
|
import lzma
|
|
|
|
|
|
def compress_pdf_base64(pdf_data):
|
|
""" Compress the PDF data using LZMA and encode it to base64
|
|
|
|
:param pdf_data: PDF file data to compress
|
|
:return: Compressed bytes data
|
|
"""
|
|
# Compress using LZMA
|
|
compressed_data = lzma.compress(pdf_data, format=lzma.FORMAT_ALONE)
|
|
|
|
return compressed_data
|
|
|
|
|
|
def decompress_pdf_base64(compressed_base64):
|
|
""" Decompress the LZMA compressed base64 PDF data """
|
|
# Decode base64 input string to bytes
|
|
compressed_data = base64.b64decode(compressed_base64)
|
|
decompressed_data = lzma.decompress(compressed_data, format=lzma.FORMAT_ALONE)
|
|
|
|
# Return decompressed PDF data as base64
|
|
return base64.b64encode(decompressed_data).decode('utf-8')
|