Ekstrak Lampiran dari PDF
Ekstrak Lampiran Spesifik dari PDF
Ekstrak satu file tersemat dari dokumen PDF menggunakan Python dan Aspose.PDF. Ini mencari lampiran berdasarkan nama, mengambil isinya, dan menyimpannya sebagai file terpisah. Ini berguna untuk mengakses dokumen tersemat seperti laporan, log, atau file pendukung yang disimpan di dalam PDF.
- Definisikan Fungsi ’extract_single_attachment()'.
- Buka Dokumen PDF.
- Cari Lampiran.
- Ekstrak Konten Lampiran.
import aspose.pdf as ap
def extract_single_attachment(infile, attachment_name, outfile):
with ap.Document(infile) as document:
print(f"Extracting attachment: {attachment_name}")
attachment_found = False
for file_spec in document.embedded_files:
if file_spec.name == attachment_name:
with open(outfile, "wb") as f:
f.write(file_spec.contents.read())
print("Attachment extracted successfully")
attachment_found = True
break
if not attachment_found:
raise ValueError(f"Attachment '{attachment_name}' not found in PDF")
Tampilkan Metadata Lampiran File
Fungsi pembantu ini mencetak informasi metadata dari objek spesifikasi file. Ini biasanya digunakan saat bekerja dengan lampiran file tersemat dalam PDF menggunakan Aspose.PDF, memungkinkan pengembang untuk memeriksa detail seperti checksum, tanggal pembuatan, tanggal modifikasi, dan ukuran file.
def _print_file_params(params):
"""Helper to print file specification parameters."""
if params:
print(f"CheckSum: {params.check_sum}")
print(f"Creation Date: {params.creation_date}")
print(f"Modification Date: {params.mod_date}")
print(f"Size: {params.size}")
Ekstrak dan Periksa Semua Lampiran PDF
Potongan kode ini menunjukkan cara mengekstrak semua file tersemat dari dokumen PDF menggunakan Python dan Aspose.PDF. Ini tidak hanya menyimpan setiap lampiran ke folder yang ditentukan tetapi juga mencetak metadata terperinci seperti nama file, deskripsi, tipe MIME, checksum, dan cap waktu. Ini berguna untuk audit, mengekspor, atau memproses konten tersemat dalam file PDF.
from os import path
import aspose.pdf as ap
def extract_attachments(infile, output_dir):
with ap.Document(infile) as document:
print(f"Total files: {len(document.embedded_files)}")
for file_spec in document.embedded_files:
print(f"Name: {file_spec.name}")
print(f"Description: {file_spec.description}")
print(f"Mime Type: {file_spec.mime_type}")
_print_file_params(file_spec.params)
output_path = path.join(output_dir, file_spec.name)
with open(output_path, "wb") as f:
f.write(file_spec.contents.read())
Ekstrak File dari Anotasi Lampiran PDF
Ekstrak file tersemat dari anotasi FileAttachment dalam PDF menggunakan Python dan Aspose.PDF. Ini mencari halaman pertama untuk anotasi lampiran pertama, mengambil file tersemat, dan menyimpannya ke direktori output yang dipilih. Ini berguna ketika PDF berisi ikon lampiran file yang dapat diklik alih-alih kumpulan file tersemat standar.
from os import path
import aspose.pdf as ap
from aspose.pycore import cast
def extract_file_attachment_annotation(infile, output_dir):
# Open PDF document
with ap.Document(infile) as document:
# Get first page
page = document.pages[1]
# Find first FileAttachment annotation
file_attachment = next(
(
annot
for annot in page.annotations
if annot.annotation_type == ap.annotations.AnnotationType.FILE_ATTACHMENT
),
None,
)
if file_attachment is None:
print("No FileAttachment annotation found on the first page.")
return
# Cast to FileAttachmentAnnotation
faa = cast(ap.annotations.FileAttachmentAnnotation, file_attachment)
# Access embedded file
file_spec = faa.file
print(f"File name: {file_spec.name}")
# Save embedded file to disk
output_path = path.join(output_dir, f"extracted-{file_spec.name}")
with open(output_path, "wb") as f:
f.write(file_spec.contents.read())
print(f"Extracted to: {output_path}")