Adding upstream version 0.9.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
3bcef22498
commit
d4a07804fe
6 changed files with 215 additions and 12 deletions
|
@ -2,6 +2,88 @@ Changelog
|
|||
=========
|
||||
|
||||
|
||||
Version 0.9.0
|
||||
-------------
|
||||
|
||||
Released on 2024-02-26.
|
||||
|
||||
Dependencies:
|
||||
|
||||
* Python 3.12 is supported and tested
|
||||
* Python 3.8+ is now needed, Python 3.7 is not supported anymore
|
||||
|
||||
New features:
|
||||
|
||||
* Add inline images support
|
||||
|
||||
Performance:
|
||||
|
||||
* Simplify `_to_bytes()`
|
||||
|
||||
Documentation:
|
||||
|
||||
* Add sample to create a PDF with metadata
|
||||
|
||||
Contributors:
|
||||
|
||||
* Panagiotis H.M. Issaris
|
||||
* Guillaume Ayoub
|
||||
* Lucie Anglade
|
||||
|
||||
Backers and sponsors:
|
||||
|
||||
* Spacinov
|
||||
* Kobalt
|
||||
* Grip Angebotssoftware
|
||||
* Manuel Barkhau
|
||||
* SimonSoft
|
||||
* Menutech
|
||||
* KontextWork
|
||||
* René Fritz
|
||||
* Simon Sapin
|
||||
* Arcanite
|
||||
* TrainingSparkle
|
||||
* Healthchecks.io
|
||||
* Hammerbacher
|
||||
* Docraptor
|
||||
* Yanal-Yvez Fargialla
|
||||
* Morntag
|
||||
* NBCO
|
||||
|
||||
|
||||
Version 0.8.0
|
||||
-------------
|
||||
|
||||
Released on 2023-09-25.
|
||||
|
||||
New features:
|
||||
|
||||
* Add text rise operator
|
||||
|
||||
Backers and sponsors:
|
||||
|
||||
* Spacinov
|
||||
* Kobalt
|
||||
* Grip Angebotssoftware
|
||||
* Manuel Barkhau
|
||||
* SimonSoft
|
||||
* Menutech
|
||||
* KontextWork
|
||||
* NCC Group
|
||||
* René Fritz
|
||||
* Nicola Auchmuty
|
||||
* Syslifters
|
||||
* Hammerbacher
|
||||
* TrainingSparkle
|
||||
* Daniel Kucharski
|
||||
* Healthchecks.io
|
||||
* Yanal-Yvez Fargialla
|
||||
* WakaTime
|
||||
* Paheko
|
||||
* Synapsium
|
||||
* DocRaptor
|
||||
|
||||
|
||||
Version 0.7.0
|
||||
-------------
|
||||
|
||||
|
|
|
@ -179,3 +179,87 @@ Display text
|
|||
|
||||
with open('document.pdf', 'wb') as f:
|
||||
document.write(f)
|
||||
|
||||
|
||||
Add metadata
|
||||
------------
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import datetime
|
||||
|
||||
import pydyf
|
||||
|
||||
document = pydyf.PDF()
|
||||
document.info['Author'] = pydyf.String('Jane Doe')
|
||||
document.info['Creator'] = pydyf.String('pydyf')
|
||||
document.info['Keywords'] = pydyf.String('some keywords')
|
||||
document.info['Producer'] = pydyf.String('The producer')
|
||||
document.info['Subject'] = pydyf.String('An example PDF')
|
||||
document.info['Title'] = pydyf.String('A PDF containing metadata')
|
||||
now = datetime.datetime.now()
|
||||
document.info['CreationDate'] = pydyf.String(now.strftime('D:%Y%m%d%H%M%S'))
|
||||
|
||||
document.add_page(
|
||||
pydyf.Dictionary(
|
||||
{
|
||||
'Type': '/Page',
|
||||
'Parent': document.pages.reference,
|
||||
'MediaBox': pydyf.Array([0, 0, 200, 200]),
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
# 550 bytes PDF
|
||||
with open('metadata.pdf', 'wb') as f:
|
||||
document.write(f)
|
||||
|
||||
|
||||
Display inline QR-code image
|
||||
----------------------------
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import pydyf
|
||||
import qrcode
|
||||
|
||||
# Create a QR code image
|
||||
image = qrcode.make('Some data here')
|
||||
raw_data = image.tobytes()
|
||||
width = image.size[0]
|
||||
height = image.size[1]
|
||||
|
||||
document = pydyf.PDF()
|
||||
stream = pydyf.Stream(compress=True)
|
||||
stream.push_state()
|
||||
x = 0
|
||||
y = 0
|
||||
stream.transform(width, 0, 0, height, x, y)
|
||||
# Add the 1-bit grayscale image inline in the PDF
|
||||
stream.inline_image(width, height, 'Gray', 1, raw_data)
|
||||
stream.pop_state()
|
||||
document.add_object(stream)
|
||||
|
||||
# Put the image in the resources of the PDF
|
||||
document.add_page(
|
||||
pydyf.Dictionary(
|
||||
{
|
||||
'Type': '/Page',
|
||||
'Parent': document.pages.reference,
|
||||
'MediaBox': pydyf.Array([0, 0, 400, 400]),
|
||||
'Resources': pydyf.Dictionary(
|
||||
{
|
||||
'ProcSet': pydyf.Array(
|
||||
['/PDF', '/ImageB', '/ImageC', '/ImageI']
|
||||
),
|
||||
}
|
||||
),
|
||||
'Contents': stream.reference,
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
# 909 bytes PDF
|
||||
with open('qrcode.pdf', 'wb') as f:
|
||||
document.write(f, compress=True)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue