Tài liệu · PDF Bộ công cụ
Điều gì sẽ xảy ra khi bạn hợp nhất các tệp PDF trong trình duyệt
· Cách thức hoạt động
pdf file-formats browser-processing
Việc hợp nhất các tệp PDF trông giống như việc dập ghim, nhưng thực tế công cụ này đang sao chép các đối tượng trang, phông chữ và hình ảnh từ biểu đồ đối tượng này sang biểu đồ đối tượng khác và viết một bảng tham chiếu chéo mới. Bài đăng này trình bày quá trình đó khi nó diễn ra bên trong tab trình duyệt.
Điểm mấu chốt không phải vậy - tại sao hai tệp PDF không thể được ghép đơn giản dưới dạng byte và công cụ hợp nhất phải xây dựng lại những gì
Hai tệp PDF đều có tiêu đề, số đối tượng, cây trang và thông tin tham chiếu chéo riêng. Việc thêm các byte của tệp thứ hai vào sau tệp đầu tiên sẽ không thêm các trang của nó vào cây trang của tài liệu đầu tiên. Việc hợp nhất phải viết PDF mới với các tham chiếu trỏ đến các đối tượng của chính nó.
Đọc từng tệp vào bộ nhớ - cách trình duyệt tải các tệp PDF của bạn dưới dạng mảng byte thông qua Tệp API mà không cần tải lên
Bộ chọn tệp cung cấp cho trình duyệt các đối tượng Tệp chứ không phải URL máy chủ. Giao diện PDF đọc từng tệp đã chọn bằng file.arrayBuffer() và chuyển byte Uint8Array cho hoạt động xử lý. Việc hợp nhất không tải lên các tệp. Điều này khác với tuyên bố rằng việc truy cập trang web không bao giờ thực hiện các yêu cầu mạng: bản thân việc tải trang web cần có kết nối.
Phân tích biểu đồ đối tượng - tiêu đề, đối tượng được đánh số, cây trang và bảng tham chiếu chéo mà trình phân tích cú pháp phải xây dựng lại
Thư viện PDF tải từng tài liệu nguồn và phân giải các chỉ mục trang của nó. Các trang đề cập đến các đối tượng ở nơi khác trong tệp, bao gồm phông chữ, hình ảnh và trạng thái đồ họa. Phần hoặc luồng tham chiếu chéo giúp người đọc xác định vị trí các đối tượng gián tiếp; nó không phải là một danh sách các trang để dán lại với nhau. Đầu vào bị hỏng hoặc bị mã hóa có thể ngăn cản việc phân tích cú pháp.
Sao chép các trang và tài nguyên của chúng - tại sao mọi phông chữ, hình ảnh và đồ họa đều nêu rõ tham chiếu trang phải đi kèm với nó
Việc triển khai gọi PDFDocument.create(), sau đó out.copyPages(source, source.getPageIndices()) cho từng đầu vào theo thứ tự và thêm từng trang được sao chép vào đầu ra. Thư viện chuyển các cấu trúc tham chiếu cần thiết cho mỗi trang; nó không tạo ảnh chụp màn hình bitmap. Đừng cho rằng mọi tính năng ở cấp độ tài liệu đều di chuyển theo các trang.
Viết tệp đã hợp nhất - đánh số lại các đối tượng, tạo cây trang mới và bảng tham chiếu chéo, sau đó đưa cho bạn bản tải xuống
Sau khi thêm trang, thư viện sẽ lưu một mảng byte PDF mới. Trình ghi của nó xử lý các tham chiếu đối tượng và tuần tự hóa, thay vì nối các tệp gốc. Ứng dụng cung cấp kết quả dưới dạng tải xuống. Vì đây là tài liệu mới nên kích thước byte không cần bằng tổng số đầu vào.
Ví dụ thực tế — kết hợp một lá thư xin việc dài ba trang và một thỏa thuận được quét 12 trang cũng như thứ tự và kích thước trang của kết quả cho bạn biết điều gì
Giả sử một quản trị viên văn phòng chọn một lá thư xin việc dài ba trang trước và một thỏa thuận mười hai trang thứ hai. Kết quả phải có mười lăm trang: trang bìa 1–3, sau đó là trang thỏa thuận 4–15. Kiểm tra trang đầu tiên và trang cuối cùng cũng như tổng số trước khi gửi tệp. Thỏa thuận được quét có thể giữ đầu ra lớn vì các trang của nó chứa tài nguyên hình ảnh.
Điều này không bao gồm những gì - dấu trang, trường biểu mẫu và siêu dữ liệu tài liệu, việc xử lý chúng phụ thuộc vào quy tắc riêng của công cụ và được ghi lại trên trang của nó
Sao chép trang không đảm bảo việc giữ nguyên dấu trang, trường biểu mẫu, siêu dữ liệu hoặc chữ ký. Đặc biệt, đừng bao giờ cho rằng chữ ký mật mã vẫn hợp lệ sau khi viết lại cấu trúc. Giữ bản gốc và xác minh riêng mọi yêu cầu ký kết hợp pháp; tệp mới không phải là bản gốc đã được ký.
Rút ra - hợp nhất là viết lại cấu trúc, không phải nối và Bộ công cụ PDF thực hiện việc viết lại đó trong tab với tệp không bao giờ rời khỏi thiết bị của bạn
Hợp nhất PDF là viết lại cấu trúc. Bộ công cụ PDF đọc các byte đã chọn trong tab, sao chép các trang theo thứ tự tệp đã chọn và ghi một tệp mới. Để kiểm tra ranh giới xử lý cục bộ trong phiên của bạn, hãy kiểm tra bảng Mạng của trình duyệt trong khi hợp nhất; phân biệt tải tài sản trang web với bất kỳ tải lên tài liệu nào của bạn.