Bài học hôm nay

Ba bài trước tôi đi qua docx, pptx, xlsx — ba skill tạo file “sống”, nghĩa là file có thể chỉnh sửa sau khi tạo. Hôm nay đến pdf skill, và mindset phải khác hoàn toàn: PDF là format “đóng gói cuối cùng”. Bạn không tạo PDF để edit tiếp — bạn tạo PDF để gửi đi, để archive, để đảm bảo người nhận thấy đúng cái bạn thấy.

Hiểu điều này quan trọng vì nó quyết định khi nào bạn nên bảo agent xuất PDF thay vì docx. Spoiler: ít hơn bạn nghĩ.

pdf skill làm được gì?

Skill này không phải 1 tool — nó là tổ hợp nhiều Python library, mỗi cái giỏi 1 việc:

LibraryChuyên mônKhi nào agent dùng
pypdfĐọc, merge, split, xoay, encryptThao tác với file PDF có sẵn
pdfplumberExtract text và tablesKhi bạn cần lấy data từ PDF
reportlabTạo PDF mới từ đầuKhi bạn cần file PDF hoàn toàn mới
pytesseractOCR scan PDF thành textKhi PDF là ảnh chụp/scan, không có text layer

Workflow phổ biến nhất tôi thấy:

Merge nhiều PDF thành 1: “Ghép 3 file hợp đồng thành 1 file để gửi khách hàng.” Agent dùng pypdf, đọc từng file, add page vào writer, xuất ra 1 file duy nhất. Đơn giản, nhanh, không cần mở Acrobat.

Extract table từ PDF: Đây mới là chỗ hay. Bạn nhận được báo cáo tài chính dạng PDF, cần lấy bảng số liệu ra Excel? Agent dùng pdfplumber extract tables, rồi đẩy qua pandas thành DataFrame, xuất xlsx. Chuỗi combo: pdf skill → xlsx skill.

Tạo PDF report: Agent dùng reportlab với hệ thống Platypus — nghĩa là nó viết content theo flow (paragraph, spacer, page break) chứ không phải đặt từng dòng text theo tọa độ pixel. Kết quả: PDF có heading, body text, table, multi-page tự động.

Chi tiết kỹ thuật mà tôi thấy thú vị

Một điểm tôi không ngờ: khi tạo PDF bằng reportlab, agent phải tránh dùng Unicode subscript/superscript (những ký tự như ₂, ³). Lý do: font mặc định của reportlab không có glyph cho chúng, và thay vì báo lỗi, nó render thành ô đen. Agent phải dùng XML markup: H<sub>2</sub>O thay vì H₂O. Đây là loại “gotcha” mà bạn chỉ biết khi đã bị.

Một chi tiết nữa: ngoài Python, agent còn có thể dùng command-line tools như qpdf — merge, split, decrypt PDF bằng 1 dòng lệnh. Khi task đơn giản (ghép 2 file), CLI nhanh hơn viết script.

Điều tôi hiểu nhầm

Nhầm lần 1: “Mọi document nên xuất PDF”

Đây là nhầm lẫn lớn nhất. PDF là format read-only, layout-locked. Nếu bạn tạo report mà người nhận cần edit — dùng docx. Nếu bạn tạo bảng data mà team cần cập nhật — dùng xlsx. PDF chỉ nên là bước cuối cùng khi nội dung đã final.

Quy tắc tôi tự đặt:

  • Cần edit sau? → docx
  • Cần tính toán? → xlsx
  • Cần present? → pptx
  • Cần gửi đi, không ai sửa? → PDF

Nhầm lần 2: “Agent đọc được mọi PDF”

Không hẳn. Với PDF có text layer (tạo từ Word, từ code…), pdfplumber đọc tốt. Nhưng với PDF scan (ảnh chụp tài liệu), agent phải chuyển qua OCR bằng pytesseract — chậm hơn, và accuracy phụ thuộc chất lượng scan. PDF scan tiếng Việt thì kết quả… cầu nguyện.

Nhầm lần 3: “PDF skill và docx skill thay thế nhau”

Hoàn toàn khác nhau. docx skill tạo file editable với heading styles, TOC, page numbers — tất cả live. pdf skill tạo file frozen — đẹp, chuẩn layout, nhưng muốn sửa 1 chữ cũng phải tạo lại từ đầu. Workflow đúng thường là: tạo docx trước, review, chỉnh sửa, rồi khi final mới xuất PDF.

Fail thật: Tôi thử bảo agent “đọc file PDF hợp đồng rồi sửa tên bên B thành tên khác.” Agent đọc text ra được, nhưng không thể edit trực tiếp trong PDF vì PDF không phải format để edit. Cuối cùng agent phải extract text, tạo file mới từ đầu bằng reportlab. Bài học: đừng dùng PDF như file Word.

Khi nào nên dùng pdf skill?

Tóm gọn decision framework:

  • Merge/split PDF có sẵn → pdf skill, rõ ràng
  • Extract data từ PDF → pdf skill + có thể chain với xlsx
  • Tạo report/invoice final → pdf skill (hoặc tạo docx rồi convert)
  • Tạo document cần edit → KHÔNG dùng pdf skill, dùng docx
  • OCR scan → pdf skill, nhưng set expectation thấp với tiếng Việt
  • Fill form PDF → pdf skill có hỗ trợ, nhưng cần đọc thêm FORMS.md

Takeaway

pdf skill mạnh nhất khi bạn dùng đúng mục đích: đóng gói nội dung final, thao tác batch trên file PDF có sẵn, hoặc extract data bị “nhốt” trong PDF. Sai lầm phổ biến nhất là dùng PDF cho mọi thứ — trong khi docx, xlsx, pptx mới là format đúng cho 90% công việc đang-trong-quá-trình.

Bài tiếp theo: Web Search trong Cowork — agent tìm kiếm thông tin trên internet thay bạn, và khi nào nó tự search mà không cần bạn bảo.