XLSX to PDF Conversion for AWS Lambda
Budget: $250 – $750 USD
Project Title:
XLSX to PDF Converter Program for AWS Lambda Environment
Objective:
The goal of this project is to develop a program that converts Microsoft Excel documents (.xls, .xlsx) to PDF format. The resulting PDF should retain the layout and text of the original Excel document (not an image, to avoid the need for Optical Character Recognition (OCR)). The program will be deployed in an AWS Lambda environment, so it must be optimized to work within the constraints of Lambda and ensure compatibility with all required libraries or packages.
Preferred Technology:
Primary: Python 3.10
Environment: Lambda Environment. (Amazon Linux2)
Key Requirements:
Excel to PDF Conversion:
The program must convert Microsoft Excel documents (.xls, .xlsx) to a PDF file.
The PDF should:
Retain all text, formatting, and layout from the original Excel document.
Not use an image-based PDF conversion (we do not want to rely on OCR for downstream tasks).
Not use 3rd party paid packages like Aspose.words
Lambda Environment Compatibility:
The program will run in an AWS Lambda environment, so the final solution must ensure:
All libraries and dependencies are compatible with AWS Lambda's execution environment.
The program should be tested and optimized for deployment in AWS Lambda. This includes keeping the deployment package size within AWS Lambda limits.
The Lambda Environment can be either a docker image or it can be a zip file of the custom packages added.
Document Testing:
We will provide a set of test Excel documents to evaluate the performance and accuracy of the conversion process.
Test cases will include documents with various complexities, such as:
REQUIRED: Simple text formatting (bold, italics, underline).
REQUIRED: Tables, bullet points, and numbered lists.
REQUIRED: Multi-page documents.
Embedded images and charts (if supported).
Performance:
The conversion process must be efficient and execute within AWS Lambda's time limits (default 15 minutes). Optimal time would be 15 seconds for a 10 page document
Handle multiple file conversions in a single execution.
Error Handling:
The program should include proper error handling to manage:
Invalid or corrupted Excel documents.
Issues related to the environment or unsupported features within Lambda.
Clear error messages or logs must be generated to assist in debugging any failures during PDF conversion.
Libraries and Packages:
The chosen library/package for Excel to PDF conversion must be tested on AWS Lambda.
If any external dependencies (e.g., LibreOffice, Pandoc, or other conversion tools) are used, they must be packaged and tested in the Lambda environment.
Ensure that the package size remains within AWS Lambda’s deployment size limits (50MB for deployment packages or 250MB with layers).
Deliverables:
The source code for the program, written in Node.js (preferred) or Python.
DOCUMENTATION on how to deploy the solution to AWS Lambda, including setup instructions and any dependencies that must be installed.
A final set of test results showcasing the program's ability to convert Excel documents to PDF using the provided test cases.
Documentation:
Clear and concise documentation explaining:
How the code works.
How to deploy the solution to AWS Lambda.
How to configure any required environment variables, packages, or layers.
Any potential limitations or known issues.
Constraints:
Lambda Environment:
The final solution must run in the AWS Lambda environment with the appropriate libraries, ensuring that all dependencies work within Lambda's execution limits.
Package Size:
The Lambda deployment package (including dependencies) should not exceed the Lambda package limits (50MB for direct deployment or 250MB if using Lambda layers).
Execution Time:
AWS Lambda's maximum timeout is 15 minutes, so the conversion process for a batch of documents must complete within this timeframe.
Timeline:
Final Deliverable: The completed program with all test cases evaluated, documentation provided, and deployment instructions finalized.
Evaluation Criteria:
Functionality: Does the program accurately convert Excel documents to PDFs, retaining text and formatting?
Lambda Compatibility: Is the program fully compatible with AWS Lambda, including handling of all dependencies?
Efficiency: Does the program complete conversions in a reasonable time within the Lambda execution constraints?
Documentation: Is the code well-documented with clear instructions for deployment and use?
Required Skills:
Node.js or Python: Expertise in developing serverless applications in either Node.js or Python.
AWS Lambda: Experience in deploying and testing applications in AWS Lambda, including packaging external libraries and dependencies.
Document Conversion: Familiarity with libraries/tools for converting Excel documents to PDF (such as LibreOffice, Mammoth.js, Python-docx, Pandoc, etc.).
Testing: Ability to evaluate the program with real-world test cases and handle any potential edge cases.
XLSX to PDF Converter Program for AWS Lambda Environment
Objective:
The goal of this project is to develop a program that converts Microsoft Excel documents (.xls, .xlsx) to PDF format. The resulting PDF should retain the layout and text of the original Excel document (not an image, to avoid the need for Optical Character Recognition (OCR)). The program will be deployed in an AWS Lambda environment, so it must be optimized to work within the constraints of Lambda and ensure compatibility with all required libraries or packages.
Preferred Technology:
Primary: Python 3.10
Environment: Lambda Environment. (Amazon Linux2)
Key Requirements:
Excel to PDF Conversion:
The program must convert Microsoft Excel documents (.xls, .xlsx) to a PDF file.
The PDF should:
Retain all text, formatting, and layout from the original Excel document.
Not use an image-based PDF conversion (we do not want to rely on OCR for downstream tasks).
Not use 3rd party paid packages like Aspose.words
Lambda Environment Compatibility:
The program will run in an AWS Lambda environment, so the final solution must ensure:
All libraries and dependencies are compatible with AWS Lambda's execution environment.
The program should be tested and optimized for deployment in AWS Lambda. This includes keeping the deployment package size within AWS Lambda limits.
The Lambda Environment can be either a docker image or it can be a zip file of the custom packages added.
Document Testing:
We will provide a set of test Excel documents to evaluate the performance and accuracy of the conversion process.
Test cases will include documents with various complexities, such as:
REQUIRED: Simple text formatting (bold, italics, underline).
REQUIRED: Tables, bullet points, and numbered lists.
REQUIRED: Multi-page documents.
Embedded images and charts (if supported).
Performance:
The conversion process must be efficient and execute within AWS Lambda's time limits (default 15 minutes). Optimal time would be 15 seconds for a 10 page document
Handle multiple file conversions in a single execution.
Error Handling:
The program should include proper error handling to manage:
Invalid or corrupted Excel documents.
Issues related to the environment or unsupported features within Lambda.
Clear error messages or logs must be generated to assist in debugging any failures during PDF conversion.
Libraries and Packages:
The chosen library/package for Excel to PDF conversion must be tested on AWS Lambda.
If any external dependencies (e.g., LibreOffice, Pandoc, or other conversion tools) are used, they must be packaged and tested in the Lambda environment.
Ensure that the package size remains within AWS Lambda’s deployment size limits (50MB for deployment packages or 250MB with layers).
Deliverables:
The source code for the program, written in Node.js (preferred) or Python.
DOCUMENTATION on how to deploy the solution to AWS Lambda, including setup instructions and any dependencies that must be installed.
A final set of test results showcasing the program's ability to convert Excel documents to PDF using the provided test cases.
Documentation:
Clear and concise documentation explaining:
How the code works.
How to deploy the solution to AWS Lambda.
How to configure any required environment variables, packages, or layers.
Any potential limitations or known issues.
Constraints:
Lambda Environment:
The final solution must run in the AWS Lambda environment with the appropriate libraries, ensuring that all dependencies work within Lambda's execution limits.
Package Size:
The Lambda deployment package (including dependencies) should not exceed the Lambda package limits (50MB for direct deployment or 250MB if using Lambda layers).
Execution Time:
AWS Lambda's maximum timeout is 15 minutes, so the conversion process for a batch of documents must complete within this timeframe.
Timeline:
Final Deliverable: The completed program with all test cases evaluated, documentation provided, and deployment instructions finalized.
Evaluation Criteria:
Functionality: Does the program accurately convert Excel documents to PDFs, retaining text and formatting?
Lambda Compatibility: Is the program fully compatible with AWS Lambda, including handling of all dependencies?
Efficiency: Does the program complete conversions in a reasonable time within the Lambda execution constraints?
Documentation: Is the code well-documented with clear instructions for deployment and use?
Required Skills:
Node.js or Python: Expertise in developing serverless applications in either Node.js or Python.
AWS Lambda: Experience in deploying and testing applications in AWS Lambda, including packaging external libraries and dependencies.
Document Conversion: Familiarity with libraries/tools for converting Excel documents to PDF (such as LibreOffice, Mammoth.js, Python-docx, Pandoc, etc.).
Testing: Ability to evaluate the program with real-world test cases and handle any potential edge cases.