Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
SDK Adobe Acrobat adalah sekumpulan alat yang membantu Anda mengembangkan perangkat lunak yang berinteraksi dengan teknologi Acrobat. SDK ini berisi file header, pustaka tipe, utilitas sederhana, kode contoh, dan dokumentasi.
Dengan menggunakan SDK Acrobat, Anda dapat mengembangkan perangkat lunak yang terintegrasi dengan Acrobat dan Adobe Reader dengan beberapa cara:
Aspose.PDF for .NET menyediakan banyak fungsionalitas yang sama, membebaskan Anda dari ketergantungan pada Automasi Adobe Acrobat. Artikel ini menunjukkan cara menghasilkan gambar thumbnail dari dokumen PDF menggunakan pertama SDK Acrobat dan kemudian Aspose.PDF.
Anggaplah API Acrobat memiliki dua lapisan yang berbeda yang menggunakan objek Komunikasi Antar Aplikasi (IAC) Acrobat:
Karena niat kami adalah mengubah halaman PDF menjadi gambar thumbnail, kami lebih fokus pada IAC. API IAC berisi objek seperti PDDoc, PDPage, PDAnnot, dan lainnya, yang memungkinkan pengguna untuk berurusan dengan lapisan dokumen portabel (PD). Contoh kode berikut memindai folder dan mengonversi halaman PDF menjadi gambar thumbnail. Dengan menggunakan SDK Acrobat, kami juga dapat membaca metadata PDF dan mengambil jumlah halaman dalam dokumen.
Untuk menghasilkan gambar thumbnail untuk setiap dokumen, kami telah menggunakan SDK Adobe Acrobat 7.0 dan Microsoft .NET 2.0 Framework.
SDK Acrobat yang dikombinasikan dengan versi lengkap Adobe Acrobat mengekspos pustaka COM objek (sayangnya Adobe Reader gratis tidak mengekspos antarmuka COM) yang dapat digunakan untuk memanipulasi dan mengakses informasi PDF. Dengan menggunakan objek COM ini melalui COM Interop, muat dokumen PDF, ambil halaman pertama dan render halaman tersebut ke clipboard. Kemudian, dengan .NET Framework, salin ini ke bitmap, skala dan gabungkan gambar dan simpan hasilnya sebagai file GIF atau PNG.
Setelah Adobe Acrobat terinstal, gunakan regedit.exe dan lihat di bawah HKEY_CLASSES_ROOT untuk entri yang disebut AcroExch.PDDoc.
Registri menunjukkan entri AcroExch.PDDDoc
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GenerateThumbnailImagesFromPDF()
{
// Acrobat objects
Acrobat.CAcroPDDoc pdfDoc;
Acrobat.CAcroPDPage pdfPage;
Acrobat.CAcroRect pdfRect;
Acrobat.CAcroPoint pdfPoint;
AppSettingsReader appSettings = new AppSettingsReader();
string pdfInputPath = appSettings.GetValue("pdfInputPath", typeof(string)).ToString();
string pngOutputPath = appSettings.GetValue("pngOutputPath", typeof(string)).ToString();
string templatePortraitFile = Application.StartupPath + @"\pdftemplate_portrait.gif";
string templateLandscapeFile = Application.StartupPath + @"\pdftemplate_landscape.gif";
// Get list of files to process from the input path
string[] files = Directory.GetFiles(pdfInputPath, "*.pdf");
for (int n = 0; n < files.Length; n++)
{
string inputFile = files[n];
string outputFile = Path.Combine(pngOutputPath, Path.GetFileNameWithoutExtension(inputFile) + ".png");
// Create PDF document
pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", "");
if (pdfDoc.Open(inputFile) == 0)
{
throw new FileNotFoundException($"Unable to open PDF file: {inputFile}");
}
int pageCount = pdfDoc.GetNumPages();
pdfPage = (Acrobat.CAcroPDPage)pdfDoc.AcquirePage(0);
pdfPoint = (Acrobat.CAcroPoint)pdfPage.GetSize();
pdfRect = (Acrobat.CAcroRect)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.Rect", "");
pdfRect.Left = 0;
pdfRect.right = pdfPoint.x;
pdfRect.Top = 0;
pdfRect.bottom = pdfPoint.y;
pdfPage.CopyToClipboard(pdfRect, 0, 0, 100);
IDataObject clipboardData = Clipboard.GetDataObject();
if (clipboardData.GetDataPresent(DataFormats.Bitmap))
{
Bitmap pdfBitmap = (Bitmap)clipboardData.GetData(DataFormats.Bitmap);
int thumbnailWidth = 45;
int thumbnailHeight = 59;
string templateFile = pdfPoint.x < pdfPoint.y ? templatePortraitFile : templateLandscapeFile;
if (pdfPoint.x > pdfPoint.y)
{
// Swap width and height for landscape orientation
(thumbnailWidth, thumbnailHeight) = (thumbnailHeight, thumbnailWidth);
}
Bitmap templateBitmap = new Bitmap(templateFile);
Image pdfImage = pdfBitmap.GetThumbnailImage(thumbnailWidth, thumbnailHeight, null, IntPtr.Zero);
Bitmap thumbnailBitmap = new Bitmap(thumbnailWidth + 7, thumbnailHeight + 7, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
templateBitmap.MakeTransparent();
using (Graphics thumbnailGraphics = Graphics.FromImage(thumbnailBitmap))
{
thumbnailGraphics.DrawImage(pdfImage, 2, 2, thumbnailWidth, thumbnailHeight);
thumbnailGraphics.DrawImage(templateBitmap, 0, 0);
thumbnailBitmap.Save(outputFile, System.Drawing.Imaging.ImageFormat.Png);
}
Console.WriteLine("Generated thumbnail: {0}", outputFile);
pdfDoc.Close();
Marshal.ReleaseComObject(pdfPage);
Marshal.ReleaseComObject(pdfRect);
Marshal.ReleaseComObject(pdfDoc);
}
}
}
Aspose.PDF for .NET menyediakan dukungan luas untuk menangani dokumen PDF. Ini juga mendukung kemampuan untuk mengonversi halaman dokumen PDF ke berbagai format gambar. Fungsionalitas yang dijelaskan di atas dapat dengan mudah dicapai menggunakan Aspose.PDF for .NET.
Aspose.PDF memiliki manfaat yang berbeda:
Jika kita perlu mengonversi halaman PDF menjadi JPEG, namespace Aspose.PDF.Devices menyediakan kelas bernama JpegDevice untuk merender halaman PDF menjadi gambar JPEG. Silakan lihat cuplikan kode berikut.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GenerateThumbnailImagesFromPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Retrieve names of all the PDF files in a particular directory
string[] fileEntries = Directory.GetFiles(dataDir, "*.pdf");
// Iterate through all the files entries in array
for (int counter = 0; counter < fileEntries.Length; counter++)
{
// Open PDF document
using (var document = new Aspose.Pdf.Document(fileEntries[counter]))
{
for (int pageCount = 1; pageCount <= document.Pages.Count; pageCount++)
{
using (FileStream imageStream = new FileStream(dataDir + @"\Thumbanils" + counter.ToString() + "_" + pageCount + ".jpg", FileMode.Create))
{
var resolution = new Aspose.Pdf.Devices.Resolution(300);
var jpegDevice = new Aspose.Pdf.Devices.JpegDevice(45, 59, resolution, 100);
// Convert a particular page and save the image to stream
jpegDevice.Process(document.Pages[pageCount], imageStream);
}
}
}
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.