from pdf2image import convert_from_path import os
def lambda_handler(event, context): input_file = "/tmp/sample.pdf" output_file = "/tmp/sample.png"
# Add font file to function directory
os.system("cp /var/task/OpenSans-Regular.ttf /tmp/OpenSans-Regular.ttf")
# Convert PDF to image with specified font
images = convert_from_path(
input_file,
dpi=300,
fmt='png',
thread_count=1,
output_folder=None,
poppler_path=None,
grayscale=False,
size=None,
paths_only=False,
use_pdftocairo=True,
strict=False,
transparent=False,
single_file=False,
output_file=output_file,
hide_annotations=False,
colorspace=None,
first_page=None,
last_page=None,
use_cropbox=False,
jpegopt=None,
pngopt=None,
convert_rgb=None,
output_folder=str(os.path.dirname(output_file)),
timeout=None,
check_extractable=True,
flags=None,
flavor=None,
transparent_color=None,
userpw=None,
use_private=False,
**kwargs)
return {
'statusCode': 200,
'body': 'Success',
'headers': {
'Content-Type': 'application/json'
}
}
参考代码:
!apt-get update !apt-get install -y libmagickwand-dev !apt-get install -y ghostscript
!pip install wand !pip install PyMuPDF
from wand.image import Image as WandImage from wand.color import Color as WandColor from wand.drawing import Drawing as WandDrawing
import fitz from io import BytesIO from PIL import Image as PILImage
def lambda_handler(event, context): input_file = "/tmp/sample.pdf" output_file = "/tmp/sample.png"
# Open PDF and read font data
with fitz.open(input_file) as doc:
# Read all font names from PDF
font_list = set(font.name for page in doc for font in page.font