Attachments

Attachments

Diese Seite behandelt das Einbetten von Dateien in ein PDF. Es gibt zwei unterschiedliche Mechanismen: Dokumentenbezogene Anhänge, bei denen es sich um eingebettete Dateien handelt, die auf keiner Seite sichtbar sind, und seitenbezogene Dateianhang-Anmerkungen, die ein anklickbares Symbol auf einer bestimmten Seite platzieren.


Dokumentenbezogene Anhänge

Document.AddAttachment() bettet bytes unter einem name ein, fügt es in den Namensbaum für eingebettete Dateien des Dokuments ein – das erneute Hinzufügen mit demselben Namen überschreibt den bestehenden Eintrag. Es gibt einen Attachment-Handle zurück. Document.GetAttachments() gibt jeden dokumentenbezogenen Anhang als Array von Attachment-Handles zurück, sortiert nach Name, und Document.RemoveAttachment() entfernt einen nach Name.

Der Attachment-Handle stellt Name, Description, MimeType, Size, CreationDate und ModDate als Eigenschaften bereit, GetBytes() zum Auslesen des rohen Inhalts der eingebetteten Datei, und GetField() / SetField() / RemoveField() für den Zugriff auf einzelne /Filespec-Felder auf niedrigerer Ebene. Das optionale AttachmentOptions, das an AddAttachment() übergeben wird, akzeptiert mimeType, description, compress, creationDate und modDate.

Für dieses API ist im aktuellen Wissensstand dieser Plattform kein verifiziertes Code-Beispiel verfügbar – siehe die API Reference-Zusammenfassung unten für die genauen Methoden- und Eigenschaftsnamen.


Seitenbezogene Dateianhänge

Page.AddFileAttachment() bettet eine Datei ein und platziert eine /FileAttachment-Symbolannotation an einem angegebenen rect auf einer bestimmten Seite, wobei ein FileAttachmentAnnotation zurückgegeben wird. Im Gegensatz zu einem Dokument-Ebene-Anhang ist dieser sichtbar und anklickbar in einem PDF-Betrachter. FileAttachmentAnnotation teilt die gemeinsamen Annotations-Eigenschaften (Rect, Color, Contents, Name, Flags, Print, Hidden, Opacity) sowie seine eigenen Icon und FileName und unterstützt GetBytes(), um den eingebetteten Inhalt zu lesen, und Flatten(), um das Symbol in statischen Seiteninhalt einzubetten.


Tipps und bewährte Verfahren

  • Verwenden Sie einen Dokument-Ebene-Anhang (Document.AddAttachment()) für eine Datei, die mit dem PDF mitreisen soll, ohne auf einer Seite zu erscheinen; verwenden Sie Page.AddFileAttachment(), wenn die Datei durch ein anklickbares Symbol an einem bestimmten Ort dargestellt werden soll.
  • Document.AddAttachment() überschreibt einen bestehenden Anhang mit demselben name — prüfen Sie zunächst Document.GetAttachments(), wenn Sie vermeiden möchten, versehentlich einen zu ersetzen.
  • Lesen Sie den Inhalt eines Anhangs mit GetBytes() auf beiden Handle-Typen zurück — die Methode ist sowohl in Attachment als auch in FileAttachmentAnnotation vorhanden.

Häufige Probleme

ProblemUrsacheLösung
Ein neu hinzugefügter Anhang ersetzte einen bereits vorhandenen.Document.AddAttachment() wurde mit einem bereits verwendeten name aufgerufen.Rufen Sie zuerst Document.GetAttachments() auf, um eine Namenskollision zu prüfen.
Der Anhang hat kein sichtbares Symbol auf der Seite.Document.AddAttachment() wurde verwendet, was dokumentenweit ist und per Design keine Seitenpräsenz hat.Verwenden Sie Page.AddFileAttachment() stattdessen für ein sichtbares, seitenverankertes Symbol
Document.RemoveAttachment() gibt false zurückKein Anhang mit dem angegebenen name ist im Namensbaum vorhandenBestätigen Sie den genauen Namen über Document.GetAttachments(), bevor Sie ihn entfernen

FAQ

Was ist der Unterschied zwischen Document.AddAttachment und Page.AddFileAttachment?

Document.AddAttachment() bettet eine Datei auf Dokumentebene ein, ohne ein sichtbares Symbol auf irgendeiner Seite. Page.AddFileAttachment() bettet eine Datei ein und platziert eine anklickbare /FileAttachment Symbolannotation an einer bestimmten Stelle auf einer Seite.

Wie kann ich alle bereits in einem Dokument eingebetteten Anhänge auflisten?

Rufen Sie Document.GetAttachments() auf, das jedes Dokument-Ebene-Attachment als ein Array von Attachment-Handles zurückgibt, nach Name sortiert.

Wie lese ich den Dateinhalt eines Attachments aus?

Rufen Sie GetBytes() mit dem Attachment (oder FileAttachmentAnnotation)-Handle auf – er ist bei beiden verfügbar.

Kann ich ein Attachment entfernen?

Ja — Document.RemoveAttachment(name) entfernt ein Dokument-Ebene-Attachment nach Namen und gibt zurück, ob eines gefunden und entfernt wurde.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
Document.AddAttachment()Betten Sie Bytes als benannten, dokumentenbezogenen Anhang ein
Document.GetAttachments()Alle dokumentenbezogenen Anhänge auflisten
Document.RemoveAttachment()Entferne einen dokumentenweiten Anhang nach Namen
AttachmentVerarbeite mehr als eine eingebettete Datei; Name, Description, MimeType, Size, GetBytes()
Page.AddFileAttachment()Betten Sie eine Datei als seitenverankerte, anklickbare Symbolannotation ein
FileAttachmentAnnotationDer seitenverankerte Anhangs-Annotations-Handle; fügt Icon, FileName hinzu

Siehe auch

 Deutsch