Làm cách nào để tạo pdf tự động trong python?

Một trong những ưu điểm của pylatex là dễ dàng kiểm soát chất lượng hình ảnh. Hình ảnh trong bản pdf của bạn sẽ có chất lượng như hình ảnh gốc. Khi sử dụng reportlab, tôi thấy hình ảnh bị nén tự động và chất lượng hình ảnh giảm xuống

Nhược điểm của pylatex là vì nó dựa trên LaTex nên khó có thể đặt hình ảnh chính xác vào nơi bạn muốn trên trang. Tuy nhiên, tôi nhận thấy rằng việc sử dụng đối số vị trí trong lớp Hình và đôi khi là Hình phụ sẽ cho kết quả đủ tốt

Mã ví dụ để tạo pdf với một hình ảnh duy nhất

from pylatex import Document, Figure

doc = Document[documentclass="article"]
with doc.create[Figure[position='p']] as fig:
fig.add_image['Lenna.png']

doc.generate_pdf['test', compiler='latexmk', compiler_args=["-pdf", "-pdflatex=pdflatex"], clean_tex=True]

Ngoài ra để cài pylatex [pip install pylatex] thì bạn cần cài thêm LaTex. Đối với Ubuntu và các hệ thống Debian khác, bạn có thể chạy

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
6. Nếu bạn đang sử dụng Windows, tôi muốn giới thiệu MikTex

Tự động hóa sổ ghi chép được tạo bằng khung mã nguồn mở

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5. Chúng đạt được với 4 dòng mã. Hệ thống báo cáo có thể chạy cục bộ. Tuy nhiên, tôi sẽ triển khai nó lên đám mây [Heroku] trong bài viết này. Ứng dụng web có sẵn trực tuyến tại các báo cáo tự động-pdf. herokuapp. com. Tất cả mã đều có trên GitHub tại github. com/pplonski/automated-pdf-reports-python. Bản demo của ứng dụng web báo cáo bên dưới

Email có báo cáo PDF trong tệp đính kèm [nó được gửi tự động]

Tôi hy vọng rằng bài viết này sẽ giúp bạn xây dựng hệ thống báo cáo tự động của riêng bạn trong Python. Trong trường hợp có bất kỳ câu hỏi xin vui lòng liên hệ với tôi với mẫu sau. 😊

Thiết lập môi trường cục bộ

Hãy bắt đầu với việc tạo một dự án GitHub [vui lòng tạo một kho lưu trữ mới trên trang web GitHub]. Tất cả mã của tôi là trên github. com/pplonski/automated-pdf-reports-python. Bước đầu tiên là sao chép dự án

git clone git@github.com:pplonski/automated-pdf-reports-python.git

Bước tiếp theo là tạo một tệp

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
7 với các gói Python mà chúng tôi sẽ sử dụng

mljar-mercury
yfinance
mplfinance

Chúng tôi sẽ cần

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
7 khi triển khai sổ ghi chép lên đám mây. [Đừng lo lắng, nó sẽ dễ thôi]. Bước tiếp theo là tạo một môi trường ảo

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
9 là tên của môi trường ảo. Bước cuối cùng là đặt môi trường ảo mới của chúng tôi làm hạt nhân Jupyter, vì vậy chúng tôi có thể sử dụng nó trong Notebook Jupyter khi tạo sổ ghi chép mới

________số 8

sổ tay Python

Môi trường đã sẵn sàng. Chúng ta có thể bắt đầu làm việc trên sổ ghi chép Python. Sổ ghi chép sẽ lấy dữ liệu chứng khoán mới nhất với gói

python -m ipykernel install --user --name reportenv
0. Nó đang sử dụng Yahoo Finance API. Tiếp theo, sổ ghi chép sẽ hiển thị danh sách các tin tức gần đây, vẽ biểu đồ tài chính bằng
python -m ipykernel install --user --name reportenv
1 và hiển thị phân tích

Hãy bắt đầu một Notebook Jupyter và tạo một notebook mới

python -m ipykernel install --user --name reportenv
2. Hãy nhớ chọn hạt nhân
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
9

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
3

Như thường lệ, bước đầu tiên là nhập tất cả các gói cần thiết [tôi ước một ngày nào đó tôi có thể tự động hóa việc này]

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
4

Dữ liệu trình bày trong sổ ghi chép sẽ được kiểm soát với hai biến

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5

Chúng ta sẽ sử dụng biến

python -m ipykernel install --user --name reportenv
4 để chọn cổ phiếu.
python -m ipykernel install --user --name reportenv
5 là một biến kiểm soát độ dài lịch sử. Nó sẽ được sử dụng trực tiếp trong gói
python -m ipykernel install --user --name reportenv
0

Hãy bắt đầu với một tiêu đề tốt. Nó sẽ hiển thị

python -m ipykernel install --user --name reportenv
4 và một ngày hiện tại. Hiển thị tiêu đề sẽ hơi phức tạp. Tôi sẽ xây dựng một chuỗi có tiêu đề và sử dụng ________ 88 để hiển thị nó dưới dạng Markdown

git clone git@github.com:pplonski/automated-pdf-reports-python.git
1

Xin lưu ý rằng ô vẫn là một loại mã và tôi đang sử dụng

python -m ipykernel install --user --name reportenv
9 để tạo tiêu đề - Cú pháp đánh dấu bên trong một chuỗi

Tìm nạp dữ liệu chứng khoán được thực hiện trong hai dòng mã Python

git clone git@github.com:pplonski/automated-pdf-reports-python.git
3

Nó không phải là tuyệt vời? . Hãy xây dựng chuỗi với danh sách tin tức

git clone git@github.com:pplonski/automated-pdf-reports-python.git
5

Hiển thị chuỗi dưới dạng Markdown trong Jupyter Notebook

mljar-mercury
yfinance
mplfinance
0

Hãy vẽ một số dữ liệu. Tạo biểu đồ tài chính với

python -m ipykernel install --user --name reportenv
1 thật dễ dàng

mljar-mercury
yfinance
mplfinance
1

python -m ipykernel install --user --name reportenv
0 cung cấp phân tích và chi tiết tài chính cho cổ phiếu. Chúng có thể dễ dàng truy cập dưới dạng Pandas DataFrames

mljar-mercury
yfinance
mplfinance
2

mljar-mercury
yfinance
mplfinance
3

OK, sổ ghi chép báo cáo tài chính đã sẵn sàng. Nó sẽ trông giống như trong hình dưới đây

Tất cả mã đã được tạo, tin xấu là chúng tôi không thể chia sẻ báo cáo ở dạng hiện tại. Mã phải được ẩn và sổ ghi chép phải được chuyển đổi thành PDF [Định dạng Tài liệu Di động] để có thể mở trên bất kỳ hệ điều hành nào. Tin tốt là nó có thể được thực hiện dễ dàng với khung công tác

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5

Chia sẻ sổ tay với Mercury

Hãy sử dụng khung công tác

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 để làm cho sổ ghi chép của chúng ta có thể chia sẻ được

  • làm cho nó tương tác với
    python -m ipykernel install --user --name reportenv
    
    4 và
    python -m ipykernel install --user --name reportenv
    
    5 dưới dạng các vật dụng được chọn,
  • ẩn mã để không sợ các cổ đông không có kỹ thuật,
  • dễ dàng chuyển đổi sang định dạng PDF,
  • lên lịch thực hiện hàng ngày với thông báo qua email và báo cáo PDF trong tệp đính kèm

Các tính năng trên có thể đạt được bằng cách thêm một ô RAW vào đầu sổ ghi chép với cấu hình YAML

mljar-mercury
yfinance
mplfinance
4

YAML chứa

  • # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    37 và
    # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    38 của báo cáo,
  • Tham số
    # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    39 kiểm soát khoảng thời gian mà sổ ghi chép sẽ được thực thi, nó được đặt bằng chuỗi crontab,
  • Tham số
    # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    40 xác định danh sách các địa chỉ email sẽ nhận được thông báo sau khi thực hiện sổ ghi chép thành công,
    # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    41 xác định định dạng của báo cáo,
  • # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    42 giấu mã trong cuốn sổ,
  • # create virtual environment
    virtualenv reportenv
    
    # activate the env
    source reportenv/bin/activate
    
    # install packages
    pip install -r requirements.txt
    
    43 thêm hai tiện ích được chọn được kết nối trực tiếp với các biến
    python -m ipykernel install --user --name reportenv
    
    4 và
    python -m ipykernel install --user --name reportenv
    
    5. Bạn có thể kiểm tra thêm các loại widget trong tài liệu của Mercury

Sổ ghi chép có tiêu đề YAML sẽ giống như trong hình bên dưới

Để kiểm tra xem nó hoạt động như thế nào tại địa phương, bạn có thể chạy

mljar-mercury
yfinance
mplfinance
5

Nó sẽ khởi động một máy chủ cục bộ. Vui lòng mở trình duyệt web có địa chỉ

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
46, bạn sẽ thấy dịch vụ web
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 đang chạy. Bạn có thể điều chỉnh các giá trị tiện ích và thực thi sổ ghi chép với các tham số mới bằng nút
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
48

triển khai

Chúng tôi sẽ triển khai

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 trên máy chủ đám mây để chạy tự động hàng ngày. Tôi sẽ sử dụng Heroku cho mục đích demo. Bạn có thể xem hướng dẫn triển khai trên các đám mây khác trong tài liệu. Tôi đang sử dụng công cụ Heroku CLI

Hãy tạo một ứng dụng Heroku mới

mljar-mercury
yfinance
mplfinance
6

Bước tiếp theo là thêm

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
50 cấu hình cách Heroku thực thi mã của chúng tôi

mljar-mercury
yfinance
mplfinance
7

Chúng tôi cần đẩy tất cả các tệp vào kho lưu trữ GitHub

mljar-mercury
yfinance
mplfinance
8

Triển khai lên đám mây được thực hiện bằng một lệnh

mljar-mercury
yfinance
mplfinance
9

Vui lòng đợi một lúc và bạn sẽ thấy ứng dụng web

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 đang chạy. Ứng dụng của tôi đang chạy tại báo cáo tự động-pdf. herokuapp. com

Chúng tôi cần định cấu hình cài đặt email để cho phép gửi thông báo. Ngoài ra, chúng tôi sẽ đặt một

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
52 để đặt thông báo qua email trong múi giờ của tôi. Chúng ta cần xác định các biến môi trường sau

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
0

Các giá trị ví dụ có thể là

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
1

Tôi đang đặt các biến môi trường trong tab

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
53 trong bảng điều khiển Heroku, bên dưới là ảnh chụp màn hình

Xuất sổ ghi chép sang PDF yêu cầu gói xây dựng Puppeteer

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
2

Vui lòng thêm nó vào bảng điều khiển Heroku [nó sẽ có sẵn bên dưới các vars cấu hình]

OK, chúng tôi sẽ cần triển khai lại ứng dụng để xem các thay đổi. Điều này có thể được thực hiện bằng cách cập nhật sổ ghi chép. Trong trường hợp của tôi, tôi sẽ thêm một thông báo

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
54 vào ứng dụng web
# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5. Nó sẽ là một tin nhắn tùy chỉnh có sẵn trong giao diện trang chủ. Bạn có thể đọc thêm về thông báo chào mừng trong tài liệu

Việc triển khai ứng dụng cập nhật có thể được thực hiện với

mljar-mercury
yfinance
mplfinance
9

Đó là tất cả. 😊 Bây giờ, hãy chờ báo cáo PDF tự động. Chúng sẽ được gửi đến địa chỉ email trong tệp đính kèm

Bản tóm tắt

Jupyter Notebook cung cấp trình soạn thảo WYSIWYG để xây dựng báo cáo. Khung

# create virtual environment
virtualenv reportenv

# activate the env
source reportenv/bin/activate

# install packages
pip install -r requirements.txt
5 thực hiện thêm công việc tạo các tiện ích tương tác, ẩn mã, lập lịch, xuất sang PDF, gửi thông báo qua email. Cả hai công cụ tạo nên sự kết hợp hoàn hảo để tạo hệ thống báo cáo tự động

  • Mã Python được sử dụng trong bài viết có sẵn tại github. com/pplonski/automated-pdf-reports-python
  • Ứng dụng web dành cho sổ ghi chép đã lên lịch và thông báo qua email với sổ ghi chép PDF có sẵn trực tuyến trên các báo cáo pdf tự động. herokuapp. com

Nếu bạn có bất kỳ câu hỏi nào hoặc cần trợ giúp, vui lòng đăng ký nhận bản tin bên dưới. Trong biểu mẫu, bạn có thể để lại phản hồi, nhận xét hoặc câu hỏi. Chúng tôi cố gắng hết sức để phản hồi nhanh chóng. ]

Chủ Đề