Convert tài liệu trên 123doc
Trang 1Convert tài liệu trên
123doc.vn
Những vấn đề gặp phải và giải pháp
Trang 2Giới thiệu 123doc.vn
• Trang chia sẻ tài liệu và sách hàng đầu Việt Nam
• 200k tài liệu đã có trên hệ thống
• Dự kiến đến tháng 4 – 2013 sẽ có 40k đầu sách.
• App Android & IOS đọc sách riêng
Trang 3Yêu cầu kết quả
• Đầu vào: File tài liệu định dạng phổ biến: doc, docx, ppt, pptx
• Đầu ra:
• Định dạng html
• Giữ nguyên được form so với tài liệu gốc
• Cỡ chữ, màu chữ, font chữ
• Căn lề
• Hình ảnh, bảng biểu, …
Trang 4Bước đầu
• Giải pháp
• Doc, docx, ppt, pptx -> html qua OpenOffice
• PDF -> html dùng thư viện XPDF (Nguồn mở viết bằng C)
• Vấn đề
• Mất hết cấu trúc html vì OpenOffice convert ra html dạng rất đơn giản
Trang 5Tiếp theo
• Giải pháp
• Doc, docx, … -> PDF
• Tất cả từ PDF -> HTML
• Vấn đề
• Font chữ hầu như là sai hết
• Bắt đầu nghiên cứu về font chữ
• Font chữ trong PDF đều là font nhúng (embeded subset)
-> Phải tách được riêng font chữ từ file pdf và hiển thị được trên trình duyệt
Trang 6Lấy font trong file pdf
• Dùng các chương trình sẵn có
Vấn đề: Không hiển thị được font đó trên HTML
Font Forge
Trang 7Quản lý bộ nhớ, thời gian timeout và convert nhiều tài liệu tại một thời điểm
• Vấn đề:
• Convert bị đứng dẫn đến nghẽn hệ thống không convert được
• Trong quá trình convert -> Memory leak -> Server die
• Convert được nhiều tài liệu cùng một lúc để giảm thời gian đợi của user
• Giải pháp
• Dùng service Service có khả năng
• Đón nhận id của các tài liệu gửi đến
• Phân chia công việc, gọi đồng thời convert
• Quản lý thời gian timeout
• Quản lý memory
Trang 8Quản lý bộ nhớ, thời gian timeout và convert nhiều tài liệu tại một thời điểm
• Quản lý thời gian timeout & bộ nhớ sử dụng chức năng sẵn có của
nhân Linux
• ps -ao pid,etime,cmd | grep convert_to_html.php
14062 00:10 convert_to_html.php
• ps -ao pid,rss | grep convert_to_html.php
14062 160000
• Convert đồng thời
• 3s service sẽ kiểm tra số lượng convert đang chạy: Nếu thiếu -> bù
Trang 9Mô hình
• Doc, docx