2010-05-03 48 views
5

Tôi đang cố gắng sử dụng iTextSharp để đọc/sửa đổi siêu dữ liệu PDF. Tôi đã tìm ra cách để làm điều đó bằng cách sử dụng pdfreader và pdfstamper. Tôi đã tự hỏi nếu tôi cũng có thể đọc/sửa đổi thông tin siêu dữ liệu bổ sung như thông tin bản quyền và vài thông tin khác trong không gian tên photoshop XMP.Đọc/sửa đổi siêu dữ liệu PDF bằng iTextSharp

Tôi sẽ đánh giá rất cao bất kỳ gợi ý nào cho giải pháp.

Cảm ơn bạn, Murugesh.

Trả lời

10

Bạn có thể đọc siêu dữ liệu bằng cách sử dụng `PdfReader '. Tôi đã đọc siêu dữ liệu như sau:

PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf"); 
string s = reader.Info["Author"]; 

Bạn có thể thử lớp iTextSharp.text.xml.xmp.XmpWriter để ghi siêu dữ liệu. Tôi chưa bao giờ thực hiện nó nhưng I found this code dưới đây:

PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf"); 
PdfStamper stamper = new PdfStamper(reader, 
new FileOutputStream("HelloWorldStampedMetadata.pdf")); 
HashMap info = reader.getInfo(); 
info.put("Author", "Bruno Lowagie"); 
info.put("Title", "Hello World stamped"); 
stamper.setMoreInfo(info); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
XmpWriter xmp = new XmpWriter(baos, info); 
xmp.close(); 
stamper.setXmpMetadata(baos.toByteArray()); 
stamper.close(); 
+0

Cảm ơn bạn đã trả lời. Nó hoạt động. Tôi có thể đặt giá trị cho bất kỳ lược đồ nào trong XMP ngay bây giờ. Nhưng bất cứ khi nào tôi chèn một giá trị khác với các trường siêu dữ liệu phổ biến (Tác giả, Tiêu đề, Chủ đề, Từ khoá), nó thêm chúng dưới dạng trường tùy chỉnh nằm trong lược đồ "pdfx" ngoài lược đồ nơi tôi chèn nó. Tôi không muốn chúng được thêm dưới dạng trường tùy chỉnh. Bất kỳ con trỏ? Cảm ơn, Murugesh. – muruge

+0

@muruge - Không xin lỗi tôi không có bất kỳ gợi ý nào; Tôi chưa bao giờ thử những gì bạn đang làm. Tôi cũng không thể tìm thấy nhiều trên không gian tên iTextSharp.text.xml.xmp. –

+1

Cảm ơn bạn đã phản hồi. – muruge

5

Hãy thử các ví dụ trong iTextSharp book có những ví dụ về việc sửa đổi bất kỳ phần nào của file pdf!

+1

Cảm ơn bạn đã chia sẻ điều đó. Tôi đã làm xong với ứng dụng này. Nhưng hy vọng điều này sẽ giúp ai đó đang tìm kiếm câu trả lời cho câu hỏi này. – muruge

+0

cảm ơn bạn đã chia sẻ –

Các vấn đề liên quan