Formatting PDF Document menggunakan Python

Formatting PDF Document

Mendapatkan Properti Jendela Dokumen dan Tampilan Halaman

Topik ini membantu Anda memahami cara mendapatkan properti dari jendela dokumen, aplikasi penampil, dan bagaimana halaman ditampilkan. Untuk mengatur properti ini:

Buka file PDF menggunakan kelas Document. Sekarang, Anda dapat mengatur properti objek Document, seperti

  • CenterWindow – Memusatkan jendela dokumen di layar. Default: false.
  • Direction – Urutan membaca. Ini menentukan bagaimana halaman diatur saat ditampilkan berdampingan. Default: kiri ke kanan.
  • DisplayDocTitle – Menampilkan judul dokumen di bilah judul jendela dokumen. Default: false (judul ditampilkan).
  • HideMenuBar – Menyembunyikan atau menampilkan bilah menu jendela dokumen. Default: false (bilah menu ditampilkan).
  • HideToolBar – Menyembunyikan atau menampilkan bilah alat jendela dokumen. Default: false (bilah alat ditampilkan).
  • HideWindowUI – Menyembunyikan atau menampilkan elemen jendela dokumen seperti bilah gulir. Default: false (elemen UI ditampilkan).
  • NonFullScreenPageMode – Bagaimana dokumen ditampilkan ketika tidak dalam mode layar penuh.
  • PageLayout – Tata letak halaman.
  • PageMode – Bagaimana dokumen ditampilkan ketika pertama kali dibuka. Opsi termasuk menampilkan thumbnail, layar penuh, menampilkan panel lampiran.

Cuplikan kode berikut menunjukkan cara mendapatkan properti menggunakan kelas Document.


    import aspose.pdf as ap

    # Buka dokumen
    document = ap.Document(input_pdf)

    # Dapatkan berbagai properti dokumen
    # Posisi jendela dokumen - Default: false
    print("CenterWindow :", document.center_window)

    # Urutan membaca yang dominan; menentukan posisi halaman
    # Ketika ditampilkan berdampingan - Default: L2R
    print("Direction :", document.direction)

    # Apakah bilah judul jendela harus menampilkan judul dokumen
    # Jika false, bilah judul menampilkan nama file PDF - Default: false
    print("DisplayDocTitle :", document.display_doc_title)

    # Apakah ukuran jendela dokumen harus diubah untuk menyesuaikan ukuran
    # Halaman pertama yang ditampilkan - Default: false
    print("FitWindow :", document.fit_window)

    # Apakah akan menyembunyikan bilah menu dari aplikasi penampil - Default: false
    print("HideMenuBar :", document.hide_menubar)

    # Apakah akan menyembunyikan bilah alat dari aplikasi penampil - Default: false
    print("HideToolBar :", document.hide_tool_bar)

    # Apakah akan menyembunyikan elemen UI seperti bilah gulir
    # Dan hanya menampilkan konten halaman - Default: false
    print("HideWindowUI :", document.hide_window_ui)

    # Mode halaman dokumen. Cara menampilkan dokumen saat keluar dari mode layar penuh.
    print("NonFullScreenPageMode :", document.non_full_screen_page_mode)

    # Tata letak halaman yaitu satu halaman, satu kolom
    print("PageLayout :", document.page_layout)

    # Bagaimana dokumen harus ditampilkan saat dibuka
    # Yaitu, menampilkan thumbnail, layar penuh, menampilkan panel lampiran
    print("pageMode :", document.page_mode)

Setel Properti Jendela Dokumen dan Tampilan Halaman

Topik ini menjelaskan cara mengatur properti jendela dokumen, aplikasi penampil, dan tampilan halaman. Untuk mengatur properti yang berbeda ini:

  1. Buka file PDF menggunakan kelas Document.
  2. Atur properti objek Document.
  3. Simpan file PDF yang telah diperbarui menggunakan metode save.

Properti yang tersedia adalah:

  • CenterWindow
  • Direction
  • DisplayDocTitle
  • FitWindow
  • HideMenuBar
  • HideToolBar
  • HideWindowUI
  • NonFullScreenPageMode
  • PageLayout
  • PageMode

Masing-masing digunakan dan dijelaskan dalam kode di bawah ini. Cuplikan kode berikut menunjukkan cara mengatur properti menggunakan kelas Document.


    import aspose.pdf as ap

    # Buka dokumen
    document = ap.Document(input_pdf)

    # Atur berbagai properti dokumen
    # Tentukan untuk memposisikan jendela dokumen - Default: false
    document.center_window = True

    # Urutan membaca yang dominan; menentukan posisi halaman
    # Ketika ditampilkan berdampingan - Default: L2R
    document.direction = ap.Direction.R2L

    # Tentukan apakah bilah judul jendela harus menampilkan judul dokumen
    # Jika salah, bilah judul menampilkan nama file PDF - Default: false
    document.display_doc_title = True

    # Tentukan apakah akan mengubah ukuran jendela dokumen agar sesuai dengan ukuran
    # Halaman pertama yang ditampilkan - Default: false
    document.fit_window = True

    # Tentukan apakah akan menyembunyikan bilah menu dari aplikasi penampil - Default: false
    document.hide_menubar = True

    # Tentukan apakah akan menyembunyikan bilah alat dari aplikasi penampil - Default: false
    document.hide_tool_bar = True

    # Tentukan apakah akan menyembunyikan elemen UI seperti bilah gulir
    # Dan hanya menampilkan konten halaman - Default: false
    document.hide_window_ui = True

    # Mode halaman dokumen. tentukan bagaimana menampilkan dokumen saat keluar dari mode layar penuh.
    document.non_full_screen_page_mode = ap.PageMode.USE_OC

    # Tentukan tata letak halaman yaitu satu halaman, satu kolom
    document.page_layout = ap.PageLayout.TWO_COLUMN_LEFT

    # Tentukan bagaimana dokumen harus ditampilkan saat dibuka
    # Yaitu menampilkan thumbnail, layar penuh, menampilkan panel lampiran
    document.page_mode = ap.PageMode.USE_THUMBS

    # Simpan file PDF yang telah diperbarui
    document.save(output_pdf)

Menyematkan Font Standar Tipe 1

Beberapa dokumen PDF memiliki font dari set font khusus Adobe. Font dari set ini disebut “Font Standar Tipe 1”. Set ini mencakup 14 font dan menyematkan jenis font ini memerlukan penggunaan flag khusus yaitu embed_standard_fonts. Berikut adalah potongan kode yang dapat digunakan untuk mendapatkan dokumen dengan semua font disematkan termasuk Font Standar Tipe 1:


    import aspose.pdf as ap

    # Memuat Dokumen PDF yang ada
    document = ap.Document(input_pdf)
    # Atur properti EmbedStandardFonts pada dokumen
    document.embed_standard_fonts = True
    for page in document.pages:
        if page.resources.fonts != None:
            for page_font in page.resources.fonts:
                # Periksa apakah font sudah disematkan
                if not page_font.is_embedded:
                    page_font.is_embedded = True

    document.save(output_pdf)

Menyematkan Font saat membuat PDF

Jika Anda perlu menggunakan font selain dari 14 font inti yang didukung oleh Adobe Reader, Anda harus menyematkan deskripsi font saat membuat file PDF. Jika informasi font tidak disematkan, Adobe Reader akan mengambilnya dari Sistem Operasi jika sudah terinstal di sistem, atau akan membangun font pengganti sesuai dengan deskriptor font dalam PDF.

Harap dicatat bahwa font yang disematkan harus diinstal pada mesin host yaitu dalam kasus kode berikut ini font ‘Univers Condensed’ diinstal di sistem.

Kami menggunakan properti ‘is_embedded’ untuk menyematkan informasi font ke dalam file PDF. Mengatur nilai properti ini ke ‘True’ akan menyematkan file font lengkap ke dalam PDF, dengan mengetahui fakta bahwa itu akan meningkatkan ukuran file PDF. Berikut adalah potongan kode yang dapat digunakan untuk menyematkan informasi font ke dalam PDF.


    import aspose.pdf as ap

    # Memulai objek Pdf dengan memanggil konstruktor kosongnya
    doc = ap.Document()

    # Buat sebuah bagian dalam objek Pdf
    page = doc.pages.add()

    fragment = ap.text.TextFragment("")
    segment = ap.text.TextSegment(" Ini adalah teks sampel menggunakan font Kustom.")
    ts = ap.text.TextState()
    ts.font = ap.text.FontRepository.find_font("Arial")
    ts.font.is_embedded = True
    segment.text_state = ts
    fragment.segments.append(segment)
    page.paragraphs.add(fragment)

    # Simpan Dokumen PDF
    doc.save(output_pdf)

Atur Nama Font Default saat Menyimpan PDF

Ketika dokumen PDF mengandung font yang tidak tersedia dalam dokumen itu sendiri dan pada perangkat, API mengganti font tersebut dengan font default. Jika font tersedia (terpasang pada perangkat atau tertanam dalam dokumen), PDF keluaran harus memiliki font yang sama (tidak boleh diganti dengan font default). Nilai dari font default harus mengandung nama font (bukan jalur ke file font). Kami telah mengimplementasikan fitur untuk mengatur nama font default saat menyimpan dokumen sebagai PDF. Potongan kode berikut dapat digunakan untuk mengatur font default:


    import aspose.pdf as ap

    # Muat dokumen PDF yang ada dengan font yang hilang
    document = ap.Document(input_pdf)

    pdfSaveOptions = ap.PdfSaveOptions()
    # Tentukan Nama Font Default
    newName = "Arial"
    pdfSaveOptions.default_font_name = newName
    document.save(output_pdf, pdfSaveOptions)

Dapatkan Semua Font dari Dokumen PDF

Jika Anda ingin mendapatkan semua font dari dokumen PDF, Anda dapat menggunakan metode font_utilities yang disediakan dalam kelas Document. Silakan periksa potongan kode berikut untuk mendapatkan semua font dari dokumen PDF yang ada:


    import aspose.pdf as ap

    doc = ap.Document(input_pdf)
    fonts = doc.font_utilities.get_all_fonts()
    for font in fonts:
        print(font.font_name)

Tingkatkan Penyematan Font menggunakan FontSubsetStrategy

Potongan kode berikut menunjukkan cara mengatur FontSubsetStrategy yang digunakan properti font_utilities:


    import aspose.pdf as ap

    doc = ap.Document(input_pdf)
    # Semua font akan disematkan sebagai subset ke dalam dokumen jika SubsetAllFonts.
    doc.font_utilities.subset_fonts(ap.FontSubsetStrategy.SUBSET_ALL_FONTS)
    # Subset font akan disematkan untuk font yang sepenuhnya disematkan tetapi font yang tidak disematkan ke dalam dokumen tidak akan terpengaruh.
    doc.font_utilities.subset_fonts(ap.FontSubsetStrategy.SUBSET_EMBEDDED_FONTS_ONLY)
    doc.save(output_pdf)

Dapatkan-Setel Faktor Zoom dari File PDF

Terkadang, Anda ingin menentukan berapa faktor zoom dokumen PDF saat ini. Dengan Aspose.Pdf, Anda dapat mengetahui nilai saat ini serta menetapkan satu.

Properti Destinasi dari kelas GoToAction memungkinkan Anda untuk mendapatkan nilai zoom yang terkait dengan file PDF. Demikian pula, ini dapat digunakan untuk menetapkan faktor zoom sebuah file.

Setel Faktor Zoom

Cuplikan kode berikut menunjukkan cara mengatur faktor zoom dari sebuah file PDF.


    import aspose.pdf as ap

    # Menginisialisasi objek Dokumen baru
    doc = ap.Document(input_pdf)

    action = ap.annotations.GoToAction(ap.annotations.XYZExplicitDestination(1, 0.0, 0.0, 0.5))
    doc.open_action = action
    # Simpan dokumen
    doc.save(output_pdf)

Dapatkan Faktor Zoom

Cuplikan kode berikut menunjukkan cara mendapatkan faktor zoom dari sebuah file PDF.


    import aspose.pdf as ap

    # Menginisialisasi objek Dokumen baru
    doc = ap.Document(input_pdf)

    # Buat objek GoToAction
    action = doc.open_action

    # Dapatkan faktor Zoom dari file PDF
    print(action.destination.zoom)

Menyetel Properti Preset Dialog Cetak

Aspose.PDF memungkinkan pengaturan anggota DUPLEX_FLIP_LONG_EDGE dari dokumen PDF. Ini memungkinkan Anda mengubah properti DuplexMode untuk dokumen PDF yang diatur ke simplex secara default. Hal ini dapat dicapai menggunakan dua metodologi berbeda seperti yang ditunjukkan di bawah ini.


    import aspose.pdf as ap

    doc = ap.Document()
    doc.pages.add()
    doc.duplex = ap.PrintDuplex.DUPLEX_FLIP_LONG_EDGE
    doc.save(output_pdf)

Menyetel Properti Preset Dialog Cetak menggunakan Editor Konten PDF


    import aspose.pdf as ap

    ed = ap.facades.PdfContentEditor()
    ed.bind_pdf(input_pdf)
    if (ed.get_viewer_preference() & ap.facades.ViewerPreference.DUPLEX_FLIP_SHORT_EDGE) > 0:
        print("File memiliki duplex flip short edge")

    ed.change_viewer_preference(ap.facades.ViewerPreference.DUPLEX_FLIP_SHORT_EDGE)
    ed.save(output_pdf)