Dapatkan dan Setel Properti Halaman menggunakan Python
Aspose.PDF untuk Python via .NET memungkinkan Anda membaca dan mengatur properti halaman dalam file PDF di aplikasi Python Anda. Bagian ini menunjukkan cara mendapatkan jumlah halaman dalam file PDF, mendapatkan informasi tentang properti halaman PDF seperti warna dan mengatur properti halaman. Contoh yang diberikan menggunakan Python.
Mendapatkan Jumlah Halaman dalam File PDF
Saat bekerja dengan dokumen, Anda sering ingin mengetahui berapa banyak halaman yang mereka miliki. Dengan Aspose.PDF, ini tidak membutuhkan lebih dari dua baris kode.
Untuk mendapatkan jumlah halaman dalam file PDF:
- Buka file PDF menggunakan kelas Document.
- Kemudian gunakan properti Count dari koleksi PageCollection (dari objek Document) untuk mendapatkan total jumlah halaman dalam dokumen.
Cuplikan kode berikut menunjukkan cara mendapatkan jumlah halaman dari file PDF.
import aspose.pdf as ap
# Buka dokumen
document = ap.Document(input_pdf)
# Dapatkan jumlah halaman
print("Jumlah Halaman:", str(len(document.pages)))
Dapatkan jumlah halaman tanpa menyimpan dokumen
Terkadang kita membuat file PDF secara langsung dan selama pembuatan file PDF, kita mungkin menghadapi kebutuhan (seperti membuat Daftar Isi dll.) untuk mendapatkan jumlah halaman file PDF tanpa menyimpan file di sistem atau stream. Jadi untuk memenuhi kebutuhan ini, sebuah metode process_paragraphs() telah diperkenalkan dalam kelas Document. Silakan lihat potongan kode berikut yang menunjukkan langkah-langkah untuk mendapatkan jumlah halaman tanpa menyimpan dokumen.
import aspose.pdf as ap
# Membuat instance Document
document = ap.Document()
# Menambahkan halaman ke koleksi halaman file PDF
page = document.pages.add()
# Membuat instance loop
for i in range(0, 300):
# Menambahkan TextFragment ke koleksi paragraf dari objek halaman
page.paragraphs.add(ap.text.TextFragment("Uji jumlah halaman"))
# Memproses paragraf dalam file PDF untuk mendapatkan jumlah halaman yang akurat
document.process_paragraphs()
# Mencetak jumlah halaman dalam dokumen
print("Jumlah halaman dalam dokumen =", str(len(document.pages)))
Dapatkan Properti Halaman
Setiap halaman dalam file PDF memiliki sejumlah properti, seperti lebar, tinggi, bleed-, crop- dan trimbox. Aspose.PDF memungkinkan Anda untuk mengakses properti ini.
Memahami Properti Halaman: Perbedaan antara Artbox, BleedBox, CropBox, MediaBox, TrimBox, dan properti Rect
- Media box: Media box adalah kotak halaman terbesar. Ini sesuai dengan ukuran halaman (misalnya A4, A5, US Letter, dll.) yang dipilih ketika dokumen dicetak ke PostScript atau PDF. Dengan kata lain, media box menentukan ukuran fisik media di mana dokumen PDF ditampilkan atau dicetak.
- Bleed box: Jika dokumen memiliki bleed, PDF juga akan memiliki bleed box. Bleed adalah jumlah warna (atau karya seni) yang meluas melampaui tepi halaman. Ini digunakan untuk memastikan bahwa ketika dokumen dicetak dan dipotong sesuai ukuran (“dipotong”), tinta akan mencapai seluruh tepi halaman. Bahkan jika halaman terpotong sedikit tidak sesuai tanda potong, tidak akan ada tepi putih yang muncul pada halaman.
- Trim box: Trim box menunjukkan ukuran akhir dari dokumen setelah dicetak dan dipotong.
- Art box: Art box adalah kotak yang digambar di sekitar konten sebenarnya dari halaman dalam dokumen Anda. Kotak halaman ini digunakan saat mengimpor dokumen PDF dalam aplikasi lain.
- Crop box: Crop box adalah ukuran “halaman” di mana dokumen PDF Anda ditampilkan di Adobe Acrobat. Dalam tampilan normal, hanya isi dari crop box yang ditampilkan di Adobe Acrobat.
Untuk deskripsi detail tentang properti ini, baca spesifikasi Adobe.Pdf, terutama 10.10.1 Batas Halaman. - Page.Rect: perpotongan (umumnya persegi panjang yang terlihat) dari MediaBox dan DropBox. Gambar di bawah ini mengilustrasikan properti ini.
Untuk detail lebih lanjut, silakan kunjungi halaman ini.
Mengakses Properti Halaman
Kelas Page menyediakan semua properti yang terkait dengan halaman PDF tertentu. Semua halaman dari file PDF terkandung dalam koleksi PageCollection dari objek Document.
Dari situ, dimungkinkan untuk mengakses objek Page individual menggunakan indeksnya, atau melakukan iterasi melalui koleksi dengan menggunakan loop foreach untuk mendapatkan semua halaman. Setelah halaman individu diakses, kita dapat memperoleh propertinya. Cuplikan kode berikut menunjukkan cara mendapatkan properti halaman.
import aspose.pdf as ap
# Buka dokumen
document = ap.Document(input_pdf)
# Dapatkan halaman tertentu
page = document.pages[1]
# Dapatkan properti halaman
print(
"ArtBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.art_box.height,
page.art_box.width,
page.art_box.llx,
page.art_box.lly,
page.art_box.urx,
page.art_box.ury,
)
)
print(
"BleedBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.bleed_box.height,
page.bleed_box.width,
page.bleed_box.llx,
page.bleed_box.lly,
page.bleed_box.urx,
page.bleed_box.ury,
)
)
print(
"CropBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.crop_box.height,
page.crop_box.width,
page.crop_box.llx,
page.crop_box.lly,
page.crop_box.urx,
page.crop_box.ury,
)
)
print(
"MediaBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.media_box.height,
page.media_box.width,
page.media_box.llx,
page.media_box.lly,
page.media_box.urx,
page.media_box.ury,
)
)
print(
"TrimBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.trim_box.height,
page.trim_box.width,
page.trim_box.llx,
page.trim_box.lly,
page.trim_box.urx,
page.trim_box.ury,
)
)
print(
"Rect : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.rect.height,
page.rect.width,
page.rect.llx,
page.rect.lly,
page.rect.urx,
page.rect.ury,
)
)
print("Nomor Halaman :", page.number)
print("Rotasi :", page.rotate)
Dapatkan Halaman Tertentu dari File PDF
Aspose.PDF untuk Python memungkinkan Anda untuk memisahkan PDF menjadi halaman individu dan menyimpannya sebagai file PDF. Mendapatkan halaman tertentu dalam file PDF dan menyimpannya sebagai PDF baru adalah operasi yang sangat mirip: buka dokumen sumber, akses halaman, buat dokumen baru dan tambahkan halaman ke dalamnya.
Objek Document memiliki PageCollection yang menyimpan halaman dalam file PDF. Untuk mendapatkan halaman tertentu dari koleksi ini:
- Tentukan indeks halaman menggunakan properti Pages.
- Buat objek Document baru.
- Tambahkan objek Page ke objek Document baru.
- Simpan output menggunakan metode save().
Kode berikut menunjukkan cara mendapatkan halaman tertentu dari file PDF dan menyimpannya sebagai file baru.
import aspose.pdf as ap
# Buka dokumen
document = ap.Document(input_pdf)
# Dapatkan halaman tertentu
page = document.pages[2]
# Simpan halaman sebagai file PDF
new_document = ap.Document()
new_document.pages.add(page)
new_document.save(output_pdf)
Menentukan Warna Halaman
Kelas Page menyediakan properti terkait dengan halaman tertentu dalam dokumen PDF, termasuk jenis warna apa - RGB, hitam dan putih, skala abu-abu atau tidak terdefinisi - yang digunakan halaman tersebut.
Semua halaman dari file PDF terkandung dalam koleksi PageCollection. The color_type property menentukan warna elemen pada halaman. Untuk mendapatkan atau menentukan informasi warna untuk halaman PDF tertentu, gunakan properti color_type dari objek Page.
Cuplikan kode berikut menunjukkan cara untuk mengiterasi melalui halaman individu dari file PDF untuk mendapatkan informasi warna.
import aspose.pdf as ap
# Buka file PDF sumber
document = ap.Document(input_pdf)
# Iterasi melalui semua halaman dari file PDF
for page_n in range(0, len(document.pages)):
page_number = page_n + 1
# Dapatkan informasi tipe warna untuk halaman PDF tertentu
page_color_type = document.pages[page_number].color_type
if page_color_type == ap.ColorType.BLACK_AND_WHITE:
print("Halaman # " + str(page_number) + " adalah Hitam dan putih.")
if page_color_type == ap.ColorType.GRAYSCALE:
print("Halaman # " + str(page_number) + " adalah Skala Abu-abu.")
if page_color_type == ap.ColorType.RGB:
print("Halaman # " + str(page_number) + " adalah RGB.")
if page_color_type == ap.ColorType.UNDEFINED:
print("Halaman # " + str(page_number) + " Warna tidak terdefinisi.")