Aspose.PDF for .NET melalui COM Interop
Informasi dalam topik ini berlaku untuk skenario di mana Anda ingin menggunakan Aspose.PDF for .NET melalui COM Interop dalam salah satu bahasa pemrograman berikut:
- ASP
- Delphi
- JScript
- Perl
- PHP
- PowerBuilder
- Python
- VBScript
- Visual Basic
- C++
Aspose.PDF for .NET dijalankan di bawah kendali .NET Framework dan ini disebut kode terkelola. Kode yang ditulis dalam semua bahasa di atas berjalan di luar .NET Framework dan disebut kode tidak terkelola. Interaksi antara kode tidak terkelola dan Aspose.PDF terjadi melalui fasilitas .NET yang disebut COM Interop.
Objek Aspose.PDF adalah objek .NET, tetapi ketika digunakan melalui COM Interop, mereka muncul sebagai objek COM dalam bahasa pemrograman Anda. Oleh karena itu, sebaiknya pastikan Anda tahu cara membuat dan menggunakan objek COM dalam bahasa pemrograman Anda, sebelum Anda mulai menggunakan Aspose.PDF for .NET.
- Di dunia COM kita membedakan antara server COM dan klien COM. Server COM menyimpan kelas COM sementara klien COM meminta server COM untuk instance kelas, yaitu objek COM.
- Klien COM atau aplikasi klien sederhana dapat mengetahui tentang konten kelas COM atau tidak sama sekali menyadari metode dan propertinya. Oleh karena itu, aplikasi klien dapat menemukan struktur kelas COM saat kompilasi/membangun atau hanya selama eksekusi. Proses “penemuan” ini dikenal sebagai pengikatan dan kita memiliki pengikatan awal dan pengikatan akhir.
- secara singkat kelas COM seperti kotak hitam dan untuk bekerja dengannya, pustaka tipe diperlukan, file biner ini memiliki deskripsi metode, properti kelas COM dan bahasa tingkat tinggi mana pun yang mendukung bekerja dengan objek COM sering memiliki ekspresi sintaks untuk menambahkan pustaka tipe, misalnya ini adalah #import dalam C++.
- pustaka tipe digunakan untuk pengikatan awal.
- objek COM dapat mengekspos metode dan propertinya dengan dua cara: melalui antarmuka pengiriman (dispinterface) dan dalam vtable (tabel fungsi virtual).
- dalam dispinterface, setiap metode dan properti diidentifikasi oleh anggota unik; anggota ini adalah pengidentifikasi pengiriman fungsi (atau DispID).
- vtable hanyalah sekumpulan pointer ke fungsi yang didukung oleh antarmuka kelas COM.
- objek yang mengekspos metodenya melalui kedua antarmuka mendukung antarmuka ganda.
- ada keuntungan untuk kedua jenis pengikatan. Pengikatan awal memberi Anda peningkatan kinerja dan pemeriksaan sintaks waktu kompilasi. Pengikatan akhir paling menguntungkan ketika Anda menulis klien yang Anda maksudkan untuk kompatibel dengan versi mendatang dari kelas COM Anda. Dengan pengikatan akhir, informasi dari pustaka tipe tidak “terkait keras” ke klien Anda, sehingga Anda dapat memiliki keyakinan yang lebih besar bahwa klien Anda dapat bekerja dengan versi mendatang dari kelas COM tanpa perubahan kode.
- mekanisme pengikatan akhir memiliki keuntungan besar: jika pembuat DLL COM memutuskan untuk merilis versi baru, dengan tata letak antarmuka fungsi yang berbeda, kode apa pun yang memanggil metode tersebut tidak akan crash kecuali metode tersebut tidak lagi tersedia; bahkan jika vtable berbeda, pengikatan akhir berhasil menemukan DISPIDs baru dan memanggil metode yang sesuai.
Berikut adalah topik yang perlu Anda kuasai:
Anda perlu menginstal Aspose.PDF for .NET dan memastikan bahwa itu terdaftar dengan COM Interop (memastikan bahwa itu dapat dipanggil dari kode tidak terkelola).
Untuk mendaftarkan Aspose.PDF for .NET untuk COM Interop secara manual:
- Dari menu Start, pilih All Programs, kemudian Microsoft Visual Studio, Visual Studio Tools dan, akhirnya, Visual Studio Command Prompt.
- Masukkan perintah untuk mendaftarkan assembly:
- .NET Framework 4.8.1
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net4.8.1\Aspose.PDF.dll” /codebase
- .NET 6.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net6.0\Aspose.PDF.dll” /codebase
- .NET 7.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net7.0\Aspose.PDF.dll” /codebase
- .NET 8.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net8.0\Aspose.PDF.dll” /codebase
- .NET Standard 2.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\netstandard2.0\Aspose.PDF.dll” /codebase
Perhatikan bahwa /codebase hanya diperlukan jika Aspose.PDF.dll tidak ada di GAC, menggunakan opsi ini membuat regasm menempatkan jalur untuk assembly di registri.
regasm.exe adalah alat yang disertakan dalam .NET Framework SDK. Semua alat .NET Framework SDK terletak di direktori \Microsoft .NET\Framevork<FrameworkVersion>, misalnya C:\Windows\Microsoft .NET\Framework\v4.0.30319. Jika Anda menggunakan Visual Studio .NET:
Dari menu Start, pilih Programs, diikuti oleh Visual Studio 2022, akhirnya, Developer Command Prompt for VS 2022.
Ini menjalankan prompt perintah dengan semua variabel lingkungan yang diperlukan diatur.
ProgIDs
ProgID adalah singkatan dari “identifikasi programatik”. Ini adalah nama kelas COM yang digunakan untuk membuat objek. ProgIDs terdiri dari nama pustaka “Aspose.PDF” dan nama kelas.
Pustaka Tipe
Jika bahasa pemrograman Anda (misalnya Visual Basic atau Delphi) memungkinkan Anda untuk merujuk pustaka tipe COM, maka tambahkan referensi ke Aspose.PDF.tlb dan untuk melihat semua kelas, metode, properti, dan enumerasi Aspose.PDF for .NET di Browser Objek Anda.
Untuk menghasilkan file TLB:
- .NET Framework 4.8.1
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net4.8.1\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net4.8.1\Aspose.PDF.tlb” /codebase
- .NET 6.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net6.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net6.0\Aspose.PDF.tlb” /codebase
- .NET 7.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net7.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net7.0\Aspose.PDF.tlb” /codebase
- .NET 8.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net8.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net8.0\Aspose.PDF.tlb” /codebase
- .NET Standard 2.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\netstandard2.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\netstandard2.0\Aspose.PDF.tlb” /codebase
Membuat Objek COM
Pembuatan objek COM mirip dengan pembuatan objek .NET biasa:
'Instantiate Pdf instance by calling its empty constructor
Dim document
Set document = CreateObject("Aspose.Pdf.Document")
Setelah dibuat, Anda dapat mengakses metode dan properti objek, seolah-olah itu adalah objek COM:
'Add page to the document
document.Pages.Add()
Beberapa metode memiliki overload dan mereka akan diekspos oleh COM Interop dengan akhiran numerik ditambahkan ke mereka, kecuali untuk metode pertama yang tetap tidak berubah. Misalnya, overload metode Document.Save menjadi Document.Save, Document.Save_2, dan seterusnya.
Untuk informasi lebih lanjut, lihat artikel spesifik bahasa lebih lanjut dalam dokumentasi ini.
Membuat Assembly Pembungkus
Jika Anda perlu menggunakan banyak kelas, metode, dan properti Aspose.PDF for .NET, pertimbangkan untuk membuat assembly pembungkus (menggunakan C# atau bahasa pemrograman .NET lainnya). Assembly pembungkus membantu menghindari penggunaan Aspose.PDF for .NET secara langsung dari kode tidak terkelola.
Pendekatan yang baik adalah mengembangkan assembly .NET yang merujuk Aspose.PDF for .NET dan melakukan semua pekerjaan dengannya, dan hanya mengekspos seperangkat kelas dan metode minimal ke kode tidak terkelola. Aplikasi Anda kemudian harus bekerja hanya dengan pustaka pembungkus Anda.
Mengurangi jumlah kelas dan metode yang perlu Anda panggil melalui COM Interop menyederhanakan proyek. Menggunakan kelas .NET melalui COM Interop sering kali memerlukan keterampilan tingkat lanjut.