Attachments
Attachments
หน้านี้อธิบายการฝังไฟล์ภายใน PDF มีสองกลไกที่แตกต่างกัน: ไฟล์แนบระดับเอกสาร ซึ่งเป็นไฟล์ที่ฝังไว้โดยไม่มีการแสดงผลบนหน้าใด ๆ, และหมายเหตุการแนบไฟล์ที่ยึดกับหน้า ซึ่งวางไอคอนที่คลิกได้บนหน้าที่กำหนด.
ไฟล์แนบระดับเอกสาร
Document.AddAttachment() ฝัง bytes ภายใต้ name, ทำการ upsert ลงในต้นไม้ชื่อไฟล์ที่ฝังในเอกสาร — การเพิ่มอีกครั้งด้วยชื่อเดียวกันจะเขียนทับรายการที่มีอยู่เดิม. มันคืนค่า Attachment handle. Document.GetAttachments() คืนค่าไฟล์แนบระดับเอกสารทั้งหมดเป็นอาร์เรย์ของ Attachment handles, เรียงตามชื่อ, และ Document.RemoveAttachment() ลบไฟล์หนึ่งโดยระบุชื่อ.
Attachment handle เปิดเผย Name, Description, MimeType, Size, CreationDate และ ModDate เป็น property, GetBytes() เพื่ออ่านเนื้อหา raw ของไฟล์ที่ฝังกลับออก, และ GetField() / SetField() / RemoveField() สำหรับการเข้าถึงระดับล่างของฟิลด์ /Filespec แต่ละตัว. ตัวเลือก AttachmentOptions ที่ส่งให้กับ AddAttachment() ยอมรับ mimeType, description, compress, creationDate, และ modDate.
ไม่มีตัวอย่างโค้ดที่ตรวจสอบแล้วสำหรับ API นี้ในสแนปชอตความรู้ปัจจุบันของแพลตฟอร์มนี้ — ดูสรุป API Reference ด้านล่างเพื่อดูชื่อเมธอดและพร็อพเพอร์ตีที่แม่นยำ.
ไฟล์แนบที่ยึดกับหน้า
Page.AddFileAttachment() ฝังไฟล์และวางหมายเหตุไอคอน /FileAttachment ที่ rect ที่กำหนดบนหน้าที่ระบุ, ส่งคืน FileAttachmentAnnotation. แตกต่างจากการแนบระดับเอกสาร, ตัวนี้มองเห็นได้และคลิกได้ในโปรแกรมดู PDF. FileAttachmentAnnotation มีคุณสมบัติหมายเหตุทั่วไป (Rect, Color, Contents, Name, Flags, Print, Hidden, Opacity) รวมถึง Icon และ FileName ของตนเอง, และรองรับ GetBytes() เพื่ออ่านเนื้อหาที่ฝังไว้และ Flatten() เพื่อฝังไอคอนของมันลงในเนื้อหาหน้าคงที่.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ใช้การแนบระดับเอกสาร (
Document.AddAttachment()) สำหรับไฟล์ที่ควรพาไปกับ PDF โดยไม่ปรากฏบนหน้าใด; ใช้Page.AddFileAttachment()เมื่อไฟล์ควรแสดงเป็นไอคอนที่คลิกได้ที่ตำแหน่งเฉพาะ. Document.AddAttachment()จะเขียนทับการแนบที่มีอยู่ที่มีnameเดียวกัน — ตรวจสอบDocument.GetAttachments()ก่อนหากคุณต้องการหลีกเลี่ยงการแทนที่โดยไม่ได้ตั้งใจ.- อ่านเนื้อหาการแนบกลับด้วย
GetBytes()บนประเภทตัวจัดการใดก็ได้ — วิธีนี้มีอยู่ทั้งในAttachmentและFileAttachmentAnnotation.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ไข |
|---|---|---|
| ไฟล์แนบที่เพิ่มใหม่ได้แทนที่ไฟล์ที่มีอยู่แล้ว | Document.AddAttachment() ถูกเรียกใช้พร้อมกับ name ที่กำลังใช้งานอยู่แล้ว | เรียก Document.GetAttachments() ก่อนเพื่อตรวจสอบการชนของชื่อ |
| ไฟล์แนบไม่มีไอคอนที่มองเห็นบนหน้า | Document.AddAttachment() ถูกใช้ ซึ่งเป็นระดับเอกสารและโดยการออกแบบไม่มีการปรากฏบนหน้า | ใช้ Page.AddFileAttachment() แทนสำหรับไอคอนที่มองเห็นได้และแนบกับหน้า |
Document.RemoveAttachment() ส่งคืน false | ไม่มีไฟล์แนบที่มี name ที่ระบุอยู่ในโครงสร้างชื่อ | ยืนยันชื่อที่แน่นอนผ่าน Document.GetAttachments() ก่อนทำการลบ |
FAQ
ความแตกต่างระหว่าง Document.AddAttachment และ Page.AddFileAttachment คืออะไร?
Document.AddAttachment() ฝังไฟล์ในระดับเอกสารโดยไม่มีไอคอนที่มองเห็นได้บนหน้าใด ๆ. Page.AddFileAttachment() ฝังไฟล์และวางหมายเหตุไอคอน /FileAttachment ที่คลิกได้ในตำแหน่งเฉพาะบนหนึ่งหน้า.
ฉันจะลิสต์ส่วนแนบทั้งหมดที่ได้ฝังไว้ในเอกสารอย่างไร?
เรียก Document.GetAttachments() ซึ่งจะคืนค่าทุกส่วนแนบระดับเอกสารเป็นอาเรย์ของ Attachment แฮนด์เดิลที่เรียงตามชื่อ.
ฉันจะดึงเนื้อหาไฟล์ของส่วนแนบออกมาได้อย่างไร?
เรียก GetBytes() บนแฮนด์เดิล Attachment (หรือ FileAttachmentAnnotation) — มีให้ใช้บนทั้งสอง.
ฉันสามารถลบส่วนแนบได้ไหม?
ได้ — Document.RemoveAttachment(name) จะลบส่วนแนบระดับเอกสารตามชื่อและคืนค่าว่าพบและลบได้หรือไม่.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
Document.AddAttachment() | ฝังไบต์เป็นไฟล์แนบระดับเอกสารที่มีชื่อ |
Document.GetAttachments() | แสดงรายการเอกสารแนบระดับเอกสารทั้งหมด |
Document.RemoveAttachment() | ลบเอกสารแนบระดับเอกสารตามชื่อ |
Attachment | จัดการไฟล์ที่ฝังมากกว่าหนึ่งไฟล์; Name, Description, MimeType, Size, GetBytes() |
Page.AddFileAttachment() | ฝังไฟล์เป็นไอคอนหมายเหตุที่คลิกได้และยึดกับหน้า |
FileAttachmentAnnotation | ตัวจัดการคำอธิบายของไฟล์แนบที่อ้างอิงหน้า; เพิ่ม Icon, FileName |