Skip to content

Commit 84f6931

Browse files
committed
Add optimize option for compressed output.
1 parent 218d263 commit 84f6931

3 files changed

Lines changed: 10 additions & 5 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ pip install markdown-pdf
3232

3333
## Usage
3434

35-
Create a pdf with TOC (bookmarks) from headings up to level 2.
35+
Create a compressed pdf with TOC (bookmarks) from headings up to level 2.
3636

3737
```python
3838
from markdown_pdf import MarkdownPdf
3939

40-
pdf = MarkdownPdf(toc_level=2)
40+
pdf = MarkdownPdf(toc_level=2, optimize=True)
4141
```
4242

4343
Add the first section to the pdf. The title is not included in the table of contents.

makepdf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import sys
22
from markdown_pdf import MarkdownPdf, Section
33

4-
pdf = MarkdownPdf(toc_level=4)
4+
pdf = MarkdownPdf(toc_level=4, optimize=True)
55
pdf.add_section(Section(open(sys.argv[1], encoding='utf-8').read()))
66
pdf.meta["title"] = "MarkdownPdf module"
77
pdf.save(sys.argv[2])

markdown_pdf/__init__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class MarkdownPdf:
4242
"keywords": None,
4343
}
4444

45-
def __init__(self, toc_level: int = 6, mode: str = 'commonmark'):
45+
def __init__(self, toc_level: int = 6, mode: str = 'commonmark', optimize: bool = False):
4646
"""Create md -> pdf converter with given TOC level and mode of md parsing."""
4747
self.toc_level = toc_level
4848
self.toc = []
@@ -51,6 +51,8 @@ def __init__(self, toc_level: int = 6, mode: str = 'commonmark'):
5151
# https://markdown-it-py.readthedocs.io/en/latest/using.html#quick-start
5252
self.m_d = (MarkdownIt(mode).enable('table')) # Enable support for tables
5353

54+
self.optimize = optimize
55+
5456
self.out_file = io.BytesIO()
5557
self.writer = fitz.DocumentWriter(self.out_file)
5658
self.page_num = 0
@@ -100,5 +102,8 @@ def save(self, file_name: typing.Union[str, pathlib.Path]) -> None:
100102
doc.set_metadata(self.meta)
101103
if self.toc_level > 0:
102104
doc.set_toc(self.toc)
103-
doc.save(file_name)
105+
if self.optimize:
106+
doc.ez_save(file_name)
107+
else:
108+
doc.save(file_name)
104109
doc.close()

0 commit comments

Comments
 (0)