Tạo file PDF tự động bằng BIRT report bằng command line

Công ty mình có 1 công việc là hàng tháng gửi báo cáo bằng PDF gửi cho từng cửa hàng.
Trước đây việc này người trước xuất thủ công ra 1 file tổng PDF bằng Eclipse sau đó dùng tool để chia file ra và gửi đi bằng tay.
Sau đó mình sử dụng BIRT birt-viewer để xuất cả ra file tổng.
Đợt này mình muốn sử dụng lệnh để xuất thành từng file một để tự động gửi đi, mình có nghiên cứu sử dụng Python để xuất file theo từng mã cửa hàng (link tại đây) nhưng đúng là sử dụng Python khá mềm dẻo nhưng để căn được từng dòng để trình bày cho đẹp hoặc xử lý nhiều page một file rất khó khăn(một số thứ không làm được). Mình đành quay về sử dụng mẫu BIRT report cũ và tìm các xuất file bằng command line. May mắn đã có công cụ BIRT Runtime để chạy.

Sau đây là các bước mình đã làm, mọi người tham khảo nhé:

B1: Tải file nén BIRT Runtime về (địa chỉ tại đây)
B2: Giải nén file vào thư mục thuộc ổ C (đổi tên thư mục cho gọn, không sau sẽ không chạy được vì thằng này biến truyền vào giới hạn số lượng ký tự khá ít)
B3: set biến home cho nó vào thư mục ở B2:
Set BIRT_HOME=C:\birt-runtime
B4: Copy file rptdesign mà mình đã tạo bằng Eclipse vào thư mục: C:\birt-runtime\ReportEngine
B5: Sử dụng command line đi đến vị trí: C:\birt-runtime\ReportEngine
Ta có thể sử dụng luôn câu lệnh sau để gen ra file HuyEVET.pdf đặt ở ổ C thông qua file template HuyEVET.rptdesign.

.\genReport.bat --format PDF --output C:\HuyEVET.pdf .\HuyEVET.rptdesign

Đối với Linux ta cũng có thể làm tương tự nhưng ta chạy file .\genReport.sh

Để xuất file PDF với biến truyền vào mình vẫn chưa làm được, sắp tới làm được mình sẽ cập nhật nhé.

P/S: Nếu file rptdesign có kết nối tới DB oracle thì ta cần thêm thư viện JDBC: ojdbc6-11.2.0.4.jar vào trong thư mục lib: C:\birt-run\ReportEngine\lib

Cài đặt Flask và Flask-API trên Window offline

Để cài đặt Flask và Flask-API offline trên Window ta cần dowload đầy đủ các thư viện và cài đặt lần lượt như sau:
(Cách cài đặt Package Office như bài hướng dẫn: Cách cài đặt các package của python trên Window offline)

1: Werkzeug
2: MarkupSafe
3: pytz
4: Babel
5: Jinja2
6: itsdangerous
7: Click
8: Flask
9: Flask-API

Để tải các thành phần trên ta vào địa chỉ: https://pypi.org/ để tìm và tải tại mục: Download files.

Cài đặt: pip27.exe install ThePackageFile-0.0.0.tgz

Cài đặt các package của python trên Window offline

Server trên công ty mình không được kết nối Internet nên mọi thứ đều phải cài đặt offline. Cài đặt Python thì đơn giản, google thì có đầy.
Nhưng khi cài đặt một số package mở rộng thì trên mạng thường hưỡng dẫn cài đặt trực tiếp command thông qua lệnh PIP: pip install “gói cần cài đặt”
Ví dụ trực quan như cài đặt qua PIP trên: https://pypi.org/project/Jinja2/#description
Thì gõ lệnh: pip install Jinja2
Hệ thống sẽ tự động tải và cài đặt toàn bộ các thư viện cần thiết trước khi cài Jinja2 và cài Jinja2.

Bước 1: Nếu không có kết nối Internet trên server thì ta buộc phải cài đặt thủ công nhưng cũng thông qua trình PIP. Để có PIP thì ta tải phần mềm PIP theo đường dẫn sau và copy lên server (có cả phiên bản pip cho Python3 tại: https://github.com/phamkhactuy/python_I_learn):
https://github.com/phamkhactuy/python_I_learn/blob/master/pip2.7.exe

Bước 2: Để cài đặt một gói nào đó, ta đi tải gói đó về. Ví dụ ta muốn cài thư viện Flask thì ta vào địa chỉ https://pypi.org/project/Flask/ hoặc google để tìm. Ta vào phần Download để tải Source về(định dạng file được nén dạng .tar.gz). Để đơn giản ta đặt file này cùng thư mục với file pip2.7,exe đã tải về (Ví dụ tải được file: Flask-1.0.2.tar).

Bước 3: Tại thư mục này ta giữ phím Shift nhấn chuột phải và chọn: Open command window here hoặc dùng lệnh Cmd di chuyển đến thư mục chứa file.

Bước 4: gõ lệnh: pip27.exe install Flask-1.0.2.tar
Chờ một lát là hệ thống tự động cài đặt xong.