By xa cách dễ nhất để làm điều này là để tạo ra một file PDF mới với bảng mong muốn tại vị trí mong muốn , sau đó dán nó lên tệp PDF hiện có. Điều này có thể được thực hiện bằng cách sử dụng mã (ví dụ) lớp PdfStamper
, nhưng cũng có các công cụ độc lập như pdftk
và nhiều công cụ khác. Đừng nghĩ về điều này là "chỉnh sửa" một PDF, hãy nghĩ về nó như là một thứ gì đó mới mẻ trên bản gốc.
pdftk original.pdf stamp newtable.pdf output combined.pdf
Phần thực sự thú vị và khó có thể được giải quyết bằng câu hỏi gốc của @ mkl - cách bạn xác định vị trí chính xác của bảng mới. Nếu bạn có thể đưa ra một quy tắc hình học, thì bạn đang ở trong tình trạng tốt. Nếu điều này liên quan đến việc phân tích cú pháp của tệp gốc, bạn nên lưu ý rằng một cái gì đó (dường như) đơn giản như việc xác định số hàng trong bảng hiện tại đôi khi có thể cực kỳ khó khăn. Trong tất cả các khả năng, có lưu ý như một thẻ html <table>
được chôn trong luồng nội dung. Có một ví dụ về một PDF thực sự sẽ rất hữu ích. Hình ảnh của PDF không giống nhau.
Để cung cấp cho bạn một số thông tin cơ bản, phân tích cú pháp bố cục của PDF thật dễ dàng, đó là những gì người đọc PDF làm. Phân tích cú pháp nội dung của PDF hoàn toàn khác và khó hơn nhiều. Cũng giống như một ví dụ, hình ảnh PDF bạn đăng có thể được vẽ từ trên xuống dưới, hoặc đầu trang và chân trang có thể được vẽ đầu tiên, sau đó là tất cả các mặt đậm, tiếp theo là văn bản phải đối mặt. Chỉ vì hai thứ nằm cạnh nhau trong bố cục vật lý không có nghĩa là chúng nằm cạnh nhau trong cấu trúc tệp, cây đối tượng hoặc luồng nội dung. Đó là một đồ họa vector không phải là một tập tin văn bản hoặc một bitmap. Các tệp PDF không được thiết kế để có thể chỉnh sửa trừ khi phần mềm tạo ra nó cụ thể cung cấp các manh mối về cách nội dung được chỉnh sửa. Có rất nhiều điều có vẻ như họ nên dễ dàng, nhưng một khi bạn hiểu cách xây dựng PDF, điều đó có nghĩa là rất khó. Tôi không nói điều này để ngăn cản bạn, chỉ để bạn đánh giá cao tầm quan trọng của nhiệm vụ. Nếu bạn có thể theo dõi tài liệu nguồn mà PDF này được tạo từ, tôi đảm bảo bạn sẽ có nhiều thành công hơn với ít thất vọng hơn.
Nguồn
2013-02-26 08:19:33
Bạn đề cập đến iTextSharp. Thư viện đó cho phép thao tác các tệp pdf hiện có bằng cách sử dụng lớp PdfStamper. Thú vị hơn là câu hỏi làm thế nào để nhận ra vị trí trong tệp PDF hiện có để thêm dữ liệu mới. – mkl
Xin chào Mkl cảm ơn các ý kiến của bạn. làm thế nào tôi có thể nhận ra vị trí trong pdf hiện có để tôi có thể thêm bảng. Bạn có thể đưa ra ví dụ nào không? –
Bạn có thể đưa ra ví dụ nào không? Không, bởi vì bạn đang hỏi cái gì đó là không thể trong nhiều trường hợp (không phải tất cả).Đó là lý do tại sao mkl đã viết câu hỏi về cách nhận ra vị trí trong tệp PDF hiện tại là một câu hỏi thú vị hơn. Nếu bạn không thể trả lời câu hỏi đó (bởi vì bạn có thể hỏi điều gì đó không thể được), câu hỏi thực sự của bạn là không liên quan. Không ai khác có thể trả lời câu hỏi đó cho bạn bởi vì không ai biết PDF hiện tại trông như thế nào. –