a :jg$@sddlmZddlZddlZddlZddlZddlmZmZddl m Z m Z m Z m Z mZmZdddd d d d Zddd dddddZdddddd dddZe dee dee dde dddS)) annotationsN)IOAny)Image ImageFile ImageSequence PdfParser __version__featuresz Image.Imagez IO[bytes]z str | bytesNone)imfpfilenamereturncCst|||dddS)NT)save_all)_save)r rrr|%t&|dr(|'|(dS)NappendFzr+b)frr+zw+bdpirr resolutiongR@)titleauthorsubjectkeywordsZcreatorZproducerZ creationDateZmodDatezcreated by Pillow z PDF driver append_imagesZn_framesrr rPDF)image)ZProcSetr&)Z ResourcesZMediaBoxZContentssq %f 0 0 %f 0 0 cm /image Do Q )r'flush))r2get isinstancebytesr>r ospathsplitextbasenametimegmtimeitemsr0upperloadZ start_writingZ write_headerZ write_commentr copyrIgetattrrangeZnext_object_idr+ZpagesZ write_catalogrIteratorr3Z write_pager-r.r?r@r<Zwrite_xref_and_trailerhasattrrTclose)r rrrZ is_appendingZ filename_strrrKZ x_resolutionZ y_resolutionr0kdefaultvZimsrQZ append_imZnumber_of_pagesrZ page_refsZ contents_refsZim_number_of_pagesiZ page_numberZ im_sequenceZim_pagesrDrBZ page_contentsrrrrs             rrRz.pdfzapplication/pdf)F) __future__rr5r8rXr\typingrrrrrr r r rr3rZ register_saveZregister_save_allZregister_extensionZ register_mimerrrrs  z