Trình chỉnh sửa trang PDF miễn phí trực tuyến

Xóa các trang không mong muốn và sắp xếp lại thứ tự trang trong PDF của bạn. 100% phía khách · tệp của bạn luôn riêng tư.

100% phía máy khách · tệp của bạn không bao giờ rời khỏi thiết bị
Thả PDF vào đây hoặc nhấp để duyệt

Hỗ trợ tệp PDF · tối đa 50 MB

Trình chỉnh sửa này thực sự làm gì

Trình chỉnh sửa trang PDF hoạt động ở tầng cấu trúc của tài liệu PDF, nó thao tác thứ tự, sự hiện diện và hướng của toàn bộ trang mà không động vào nội dung đã được dựng của từng trang. Bạn thả một PDF vào trình chỉnh sửa, công cụ phân tích cây trang và hiển thị một thẻ cho mỗi trang kèm số trang và kích thước, bạn đánh dấu các ô của những trang muốn xóa, kéo hoặc dùng phím mũi tên để sắp xếp lại, rồi tải về PDF đã chỉnh sửa. Tệp gốc trên đĩa của bạn không bao giờ bị thay đổi, phiên bản đã chỉnh sửa là một bản tải xuống mới. Mỗi thao tác chạy trong trình duyệt qua JavaScript, được hỗ trợ bởi thư viện pdf-lib (một bộ đọc/ghi PDF thuần JavaScript của Andrew Dillon, giấy phép MIT, trên GitHub tại Hopding/pdf-lib) tải từ CDN. Không upload, không xử lý phía server, không telemetry, hãy kiểm chứng trong tab Network của DevTools khi bạn bấm Xóa các trang đã chọn rồi Tải về, hoặc đặt trang offline (chế độ máy bay) sau khi pdf-lib đã tải xong và trình chỉnh sửa vẫn hoạt động. Tệp đến 50 MB xử lý thoải mái; tệp lớn hơn vẫn chạy được nhưng sẽ chậm hơn tùy bộ nhớ trình duyệt và thiết bị.

PDF ở vai trò định dạng, lược sử ngắn

PDF (Portable Document Format) ra đời tại Adobe do John Warnock, đồng sáng lập công ty, khởi xướng từ đề xuất nội bộ năm 1991 với tên mã "Camelot". Phiên bản công khai đầu tiên, PDF 1.0, được phát hành cùng Adobe Acrobat 1.0 vào tháng 6 năm 1993 trong sự kiện ra mắt tại New York. Vấn đề ban đầu mà PDF giải quyết là tính khả chuyển trung thành với bản in: lấy bất kỳ tài liệu nào, đóng gói cùng phông được nhúng và bố cục chính xác, để bất kỳ trình đọc nào trên bất kỳ hệ điều hành nào cũng tái tạo được pixel-by-pixel. PDF vẫn là định dạng độc quyền trong mười lăm năm trước khi Adobe giao đặc tả cho ISO. PDF 1.7 trở thành ISO 32000-1:2008 vào tháng 7 năm 2008, đặc tả là nền tảng của hầu như mọi PDF đang lưu hành hôm nay. PDF 2.0 theo sau với tư cách ISO 32000-2:2017, có bản hai sửa đổi xuất bản tháng 12 năm 2020 để làm rõ các điểm mơ hồ. Tháng 4 năm 2023, Adobe công bố từ bỏ bằng sáng chế, cấp quyền triển khai miễn phí bản quyền cho PDF một cách rõ ràng, gỡ bỏ rào cản pháp lý cuối cùng cho các trình đọc và ghi mã nguồn mở. Đơn vị cấu trúc của định dạng là cây trang (từ điển /Pages chứa mảng /Kids). Một trình chỉnh sửa trang như công cụ này duyệt qua cây, xóa hoặc sắp xếp lại các mục trong /Kids, và ghi tệp mới với các trang còn lại được đánh số lại. Bản thân các luồng nội dung trang không bị động đến, đó là lý do thao tác nhanh ngay cả với tài liệu lớn và lý do nội dung thị giác của mỗi trang được giữ nguyên đến từng bit.

Thư viện pdf-lib làm phần việc đó

pdf-lib là thư viện PDF thuần JavaScript làm cho việc chỉnh sửa phía trình duyệt trở nên khả thi. Andrew Dillon phát hành dưới giấy phép MIT và dự án được giao như một bundle duy nhất chạy trong mọi trình duyệt hiện đại, không phụ thuộc native, không cần WebAssembly cho các thao tác cơ bản. Thư viện có thể phân tích, sửa và serialize PDF từ đầu đến cuối: đọc tài liệu hiện có, sao chép trang giữa các tài liệu, nhúng ảnh PNG và JPEG, vẽ văn bản với phông nhúng, sửa trường biểu mẫu, và viết lại tài liệu đã sửa thành Uint8Array sẵn sàng tải về. Kiến trúc thay thế, chỉnh sửa PDF phía server, chiếm ưu thế trong các công cụ PDF thương mại vì xử lý PDF trong lịch sử là việc khó. Smallpdf, iLovePDF, Sejda, Soda PDF, ILovePDF, PDF24 và hàng chục site cạnh tranh đều upload tệp của bạn lên server, chạy pdf-lib hoặc tương đương (hoặc Ghostscript, qpdf, PDFtk ở backend), rồi gửi lại tệp đã chỉnh sửa. Đánh đổi: phía server xử lý kích thước tệp tùy ý và thao tác phức tạp đáng tin cậy hơn, nhưng mỗi trang của mỗi tài liệu bạn chỉnh sửa đều sống trong log của người khác trong một khoảng thời gian. Phía trình duyệt qua pdf-lib đánh đổi mức trần thực tế 50 MB và một tập thao tác hơi hạn chế để có "tệp không bao giờ rời khỏi thiết bị". Với tài liệu nhạy cảm, hợp đồng, hồ sơ y tế, sao kê ngân hàng, tài liệu nội bộ, đánh đổi đó đáng giá.

Cách công cụ này hoạt động bên trong

Tập hợp các trang của một PDF được định nghĩa bởi cây trang được mô tả trong mục 7.7.3 của tiêu chuẩn ISO 32000-2. Từ điển danh mục của tài liệu có một mục /Pages trỏ tới nút gốc của cây. Gốc đó mang /Type /Pages, một mục /Count cho biết tổng số trang lá ở phía dưới, và một mảng /Kids các tham chiếu tới các con. Các con là các đối tượng trang lá (/Type /Page) hoặc các nút /Pages trung gian tiếp theo. Cây được cân bằng để trình đọc có thể tìm trang N trong thời gian O(log N) mà không cần duyệt mọi lá, và đó là lý do truy cập trang ngẫu nhiên vẫn nhanh ngay cả trong tài liệu 500 trang.

Khi bạn chọn một PDF, File API của trình duyệt giao các byte thô cho pdf-lib, thư viện này phân tích cấu trúc tài liệu thành một cây đối tượng trong bộ nhớ. Công cụ gọi pdfDoc.getPageCount() để đếm số lá và lặp pdfDoc.getPage(i).getWidth() cùng getHeight() trên từng trang để tạo lưới các thẻ bạn nhìn thấy (số trang và kích thước theo điểm PostScript, trong đó 1 điểm bằng 1/72 inch). Việc tích vào hộp kiểm hay nhấn mũi tên chỉ cập nhật một mảng JavaScript theo dõi những tham chiếu trang nào còn sống và theo thứ tự nào. Các byte PDF gốc vẫn nằm yên trong bộ nhớ trình duyệt cho tới khi bạn nhấp Tải xuống.

Khi tải xuống, pdf-lib làm phần việc nặng thông qua copyPages. Công cụ gọi PDFDocument.create() để dựng một tài liệu rỗng mới, rồi newDoc.copyPages(sourceDoc, indices), trong đó indices là mảng vị trí trang nguồn theo thứ tự cần xuất hiện ở đầu ra. copyPages truy theo mọi đối tượng mà mỗi trang được yêu cầu phụ thuộc vào (font nhúng, XObject ảnh, luồng nội dung, chú thích) và sao chép chúng vào tài liệu mới, sau đó tái tạo bảng tham chiếu chéo để tất cả các offset byte nhất quán từ đầu đến cuối. Đầu ra là một PDF sạch về mặt cấu trúc, giống hệt nguyên bản về hiển thị từng trang. Không có yêu cầu mạng nào được phát đi trong suốt quá trình này. Mở công cụ dành cho nhà phát triển của trình duyệt sang tab Mạng trong khi thao tác và bạn sẽ không thấy gì khác ngoài lần tải duy nhất pdf-lib từ CDN (khoảng 380 KB sau minify, được trình duyệt lưu cache sau lần truy cập đầu tiên).

Khi nào thực sự cần một trình chỉnh sửa trang

Bức tranh cạnh tranh, trình duyệt vs server vs native

Ba nhóm trình chỉnh sửa PDF tranh cùng một người dùng. Các công cụ desktop native, Adobe Acrobat Pro (chuẩn vàng kinh điển, đăng ký 19,99 USD/tháng), Foxit PDF Editor, Nitro PDF, PDF Studio, Apple Preview (tích hợp trong macOS, đáng ngạc nhiên về khả năng chỉnh sửa ở mức trang), cài đặt trên máy tính và chạy offline trên tệp cục bộ. Chúng hỗ trợ tệp lớn nhất và các thao tác sâu nhất, nhưng cần tải về và (với các sản phẩm thương mại) thường cần giấy phép trả phí. Các công cụ web phía server, Smallpdf (Thụy Sĩ, thành lập 2013), iLovePDF (Tây Ban Nha, cũng 2013), Sejda (Hoa Kỳ), PDF24 (Đức), Soda PDF (Canada), Acrobat Online của Adobe, xử lý các thao tác PDF qua upload tệp, xử lý trên hạ tầng nhà cung cấp rồi tải về. Chúng xử lý tệp lớn và thao tác phức tạp, nhưng mỗi tệp đi qua server của người khác. Các công cụ phía trình duyệt như công cụ này dùng pdf-lib, PDF.js (engine render PDF của Mozilla, do Andreas Gal và những người khác viết từ 2011 và nay đi kèm Firefox) hoặc pdf-lib-extra để làm việc hoàn toàn trên thiết bị của bạn. Chúng có giới hạn kích thước tệp do bộ nhớ trình duyệt quyết định, nhưng không bao giờ thấy nội dung tệp của bạn. Cho việc chỉnh trang lẻ trên tài liệu chứa bất cứ điều gì nhạy cảm, lựa chọn phía trình duyệt là dạng phù hợp, lựa chọn về cơ bản tóm gọn ở "sự tiện lợi của upload lên server có đáng cái giá riêng tư cho tệp cụ thể này không?". Cho công việc thường ngày trên tài liệu nội bộ, hầu như luôn có. Cho hợp đồng, tài chính, hồ sơ y tế, hoặc bất kỳ tài liệu nào bạn không công bố trên web công cộng, hầu như luôn không.

Trình chỉnh sửa này làm gì và không làm gì

Ngoài phạm vi: chỉnh sửa nội dung từng trang riêng (văn bản, ảnh, trường biểu mẫu), tách một PDF thành nhiều tệp (dùng công cụ chuyên dụng Công cụ tách PDF miễn phí), gộp nhiều PDF thành một (dùng Ghép PDF Trực Tuyến Miễn Phí), nén trang để giảm kích thước tệp (dùng Nén PDF trực tuyến miễn phí), che (redact) nội dung nhạy cảm bằng các thanh đen vĩnh viễn, hoặc ký số PDF. Cho các thao tác này, các công cụ chuyên dụng hoặc một trình chỉnh sửa PDF desktop phù hợp hơn.

Những cạm bẫy thường gặp và ý nghĩa của chúng

Quyền riêng tư: tệp ở lại trên thiết bị của bạn

Mọi trình chỉnh sửa trang PDF trên đám mây (Smallpdf, iLovePDF, PDF24, Adobe Acrobat Online, Sejda, Soda PDF) đều tải tệp của bạn lên máy chủ của nhà cung cấp, phân tích phía máy chủ, để bạn nhấp xóa hoặc kéo thả hình thu nhỏ dựa trên bản xem trước do máy chủ kết xuất, rồi gửi lại một bản sao đã sửa dưới dạng tệp tải xuống. Hệ quả về quyền riêng tư khác với một lần tải lên tệp thông thường ở một điểm quan trọng: nhà cung cấp nhất thiết phải đọc nội dung của từng trang (để kết xuất bản xem trước, đếm và nhận diện các trang) trước khi bạn đưa ra bất kỳ quyết định xóa hay sắp xếp lại nào. Ngay cả khi bạn đổi ý và không bao giờ tải kết quả về, nhà cung cấp đã thấy nội dung rồi. Các nhà cung cấp lớn công bố chính sách quyền riêng tư cam kết xóa trong vài giờ và mã hóa TLS khi truyền, và họ có động lực thương mại mạnh mẽ để tuân thủ, nhưng «xóa trong một giờ» không phải là «chưa bao giờ nhìn thấy». PDF thường xuyên chứa hồ sơ y tế, sao kê ngân hàng, hợp đồng đã ký, giấy tờ tùy thân, ghi nhớ nội bộ doanh nghiệp và bản thảo hồ sơ pháp lý; với những tài liệu này, sự khác biệt về chính sách rất có ý nghĩa.

Trình chỉnh sửa này không tải lên bất cứ thứ gì. pdf-lib chạy trong tab trình duyệt của bạn và nhận các byte tệp qua File API, trả lại các byte đã sửa cho chính tab đó dưới dạng Blob trở thành tệp tải xuống. Bạn có thể tự chứng minh: mở công cụ dành cho nhà phát triển của trình duyệt sang tab Mạng trước khi nhấp Tải PDF Đã Sửa, chạy thao tác, và quan sát rằng không có yêu cầu nào mang theo nội dung tệp của bạn được phát đi. Lưu lượng mạng duy nhất là lần tải pdf-lib một lần từ CDN trong lần truy cập đầu tiên (khoảng 380 KB sau minify), nó xảy ra một lần rồi nằm trong cache trình duyệt. Bật chế độ máy bay sau khi trang đã tải xong và trình chỉnh sửa vẫn hoạt động trên các tệp cục bộ. Đánh đổi là phạm vi tính năng: các dịch vụ đám mây thường gộp thêm các thao tác phụ như OCR trước khi chỉnh sửa, chuyển đổi tệp đính kèm tự động, hoặc luồng ký-và-gửi sau khi chỉnh sửa. Công cụ này chỉ làm xóa và sắp xếp lại ở cấp trang. Với luồng tập trung đó, công cụ phía trình duyệt nhanh hơn một cách rõ ràng (không chờ tải lên, không giới hạn kích thước tải lên) và riêng tư hơn đáng kể.

Khi một công cụ khác là lựa chọn phù hợp

Câu hỏi thường gặp

PDF của tôi có được tải lên máy chủ không?

Không. Tất cả xử lý diễn ra trong trình duyệt của bạn. PDF của bạn không bao giờ rời khỏi thiết bị, đảm bảo quyền riêng tư và bảo mật hoàn toàn.

Giới hạn kích thước tệp là bao nhiêu?

Hỗ trợ PDF lên đến 50 MB. Tốc độ xử lý phụ thuộc vào thiết bị và kích thước tệp.

Tôi có thể hoàn tác thay đổi không?

Bạn có thể sắp xếp lại trang trước khi tải xuống. Khi đã tải xuống, hãy lưu bản gốc nếu bạn muốn giữ. Công cụ này không sửa đổi tệp gốc của bạn.

Có hoạt động với PDF đã quét không?

Có. Các thao tác ở mức trang (xóa, sắp xếp lại) hoạt động giống nhau bất kể mỗi trang chứa văn bản chọn được hay bitmap ảnh đã quét, trình chỉnh sửa di chuyển toàn bộ trang như khối nội dung mờ. Số trang, số thứ tự và kích thước hiển thị đúng cả với các trang dạng ảnh. Điều trình chỉnh sửa này không làm là OCR văn bản đã quét hay sửa nội dung ảnh của một trang; cho các thao tác đó cần công cụ OCR chuyên dụng hoặc trình chỉnh sửa PDF desktop có chức năng OCR.

Công cụ này có hoạt động trên thiết bị di động không?

Công cụ được tối ưu cho trình duyệt máy tính để bàn. Thiết bị di động có thể bị hạn chế chức năng với PDF lớn, nhưng các thao tác cơ bản vẫn hoạt động.

Còn PDF được bảo vệ bằng mật khẩu thì sao?

Hỗ trợ tích hợp cho PDF đã mã hóa của pdf-lib hạn chế so với Adobe Acrobat. Nếu một PDF được bảo vệ bằng mật khẩu với mã hóa ở mức người dùng, trình chỉnh sửa có thể không tải được, hoặc tải được nhưng không ghi được thay đổi. Cách giải: mở PDF trong công cụ desktop biết mật khẩu, lưu lại dưới dạng bản sao không mã hóa, rồi chỉnh sửa bản không mã hóa trong công cụ này. Sau đó mã hóa lại nếu bạn cần bảo vệ mật khẩu cho đầu ra.

Thêm câu hỏi thường gặp

Công cụ này có hoạt động ngoại tuyến không?

Sau lần truy cập đầu tiên, có. Thư viện JavaScript pdf-lib được trình duyệt lưu cache ở lần tải đầu tiên (khoảng 380 KB sau minify). Các lần truy cập tiếp theo vào trình chỉnh sửa trang hoạt động mà không cần kết nối mạng, miễn là cache trình duyệt không bị xóa trong khoảng thời gian giữa. Bản thân việc thao tác trên cây trang chưa bao giờ cần mạng; chỉ việc tải thư viện cần. Bạn có thể xác minh bằng cách bật chế độ máy bay sau khi mở trang một lần và thử xóa hoặc sắp xếp lại một PDF cục bộ.

Tôi có thể xóa hoặc sắp xếp lại các trang từ nhiều PDF cùng lúc không?

Không trực tiếp: giao diện nhận một tài liệu nguồn tại một thời điểm. Luồng hai bước cho chỉnh sửa nhiều PDF là: dùng Ghép PDF Trực Tuyến Miễn Phí trước để kết hợp các nguồn của bạn thành một tài liệu, rồi đưa PDF kết hợp đó tới đây để xóa hoặc sắp xếp các trang về trình tự cuối. Với các luồng phức tạp hơn xuyên tài liệu (kéo trang 3 của tệp A vào giữa trang 5 và 6 của tệp B), Organize Pages của Adobe Acrobat Pro xử lý kéo thả xuyên tài liệu một cách nguyên bản trong một bước. Với tự động hàng loạt trên hàng chục hay hàng trăm tệp, các công cụ dòng lệnh qpdf hoặc pikepdf là phù hợp.

Nên chỉnh sửa các trang trước hay sau khi ký, làm phẳng, hoặc nén?

Thứ tự an toàn là: chỉnh sửa trước, làm phẳng kế tiếp, ký sau đó, nén cuối cùng. Chỉnh sửa trước vì các thao tác sau phụ thuộc vào trình tự trang cuối. Làm phẳng kế tiếp vì nó nung các trường biểu mẫu và chú thích thành nội dung tĩnh để các công cụ phía sau xử lý tài liệu một cách thống nhất. Ký sau làm phẳng vì chữ ký mật mã cam kết với chuỗi byte cuối của tài liệu và bất kỳ thay đổi nào sau đó đều làm nó vô hiệu. Nén cuối cùng (tùy chọn) để giảm kích thước tệp cho việc truyền. Các PDF đã ký nếu bị chỉnh sửa sau đó sẽ thất bại khi kiểm tra chữ ký trong Acrobat và các trình đọc nhận biết chữ ký khác, nên việc ký luôn phải là bước cuối cùng chạm vào nội dung.

Lớp văn bản OCR trên các trang quét có được giữ lại không?

Có. Văn bản OCR trong PDF được lưu dưới dạng văn bản vô hình vẽ phía trên hình ảnh đã quét (một chuỗi toán tử luồng nội dung được đánh dấu là vô hình), và luồng nội dung đó là một phần của đối tượng trang. Khi copyPages của pdf-lib sao chép một trang, nó sao chép toàn bộ đối tượng trang gồm tất cả các luồng nội dung, tham chiếu phông và bất kỳ lớp văn bản OCR vô hình nào. Tìm kiếm và bôi đen tiếp tục hoạt động trên đầu ra đã chỉnh sửa y như trên bản gốc, với những trang đã sống sót. Lớp văn bản được giữ nguyên byte tới byte; pdf-lib không mã hóa lại hay rasterize lại bất cứ thứ gì.

Xóa một nửa số trang có làm tệp giảm còn một nửa không?

Thường ít hơn một nửa, đôi khi ít hơn nhiều. Nếu các trang bị xóa có nội dung riêng (ảnh nhúng riêng, tập con phông riêng), mức tiết kiệm là lớn. Nếu các trang bị xóa dùng chung tài nguyên với các trang bạn giữ (cùng một phông được dùng trong toàn tài liệu, cùng một ảnh logo trên mỗi trang), các tài nguyên dùng chung vẫn nằm trong tệp. pdf-lib không đóng gói lại tệp một cách quyết liệt khi lưu, nên việc khử trùng lặp tài nguyên xuyên trang mà PDF gốc đã làm vẫn được giữ, nhưng các cơ hội khử trùng lặp mới do việc xóa tạo ra không được khai thác. Để có đầu ra gọn, cho kết quả đi qua Nén PDF trực tuyến miễn phí, công cụ này thực hiện đóng gói lại đầy đủ và mã hóa lại ảnh, thường lấy lại phần còn lại của khoản tiết kiệm.

Có công cụ máy tính để bàn hoặc dòng lệnh tương đương để viết kịch bản không?

Có, nhiều. pdf-lib chạy không đổi trong Node.js (npm install pdf-lib) và mã chỉnh sửa là như nhau: copyPages(source, indices) rồi addPage() cho mỗi trang. Trên dòng lệnh, qpdf có cú pháp chọn theo từng trang: qpdf --pages input.pdf 1-4,6-20 -- input.pdf output.pdf giữ các trang 1 đến 4 và 6 đến 20, xóa trang 5. pikepdf của Python là một ràng buộc tới qpdf với API gọn gàng hơn (del pdf.pages[2] để xóa trang 3, ngữ nghĩa cắt lát danh sách để sắp xếp lại). Adobe Acrobat Pro cung cấp các thao tác tương tự qua giao diện đồ họa và ngoài ra còn giữ lại dấu trang và phác thảo tài liệu xuyên qua các biến đổi trang, điều mà đường dẫn chỉ chạy trên trình duyệt không làm được.

Công cụ liên quan