Cara Membuat PDF Menggunakan C#

Kami selalu mencari cara untuk menghasilkan dokumen PDF dan bekerja dengan mereka dalam proyek C# lebih tepat, akurat, dan efektif. Memiliki fungsi yang mudah digunakan dari sebuah perpustakaan memungkinkan kami untuk melacak lebih banyak pekerjaan, dan kurang pada detail yang memakan waktu dalam mencoba menghasilkan PDF, baik dalam .NET.

Potongan kode berikut juga bekerja dengan perpustakaan Aspose.PDF.Drawing.

Membuat (atau Menghasilkan) dokumen PDF menggunakan bahasa C#

Aspose.PDF untuk .NET API memungkinkan Anda membuat dan membaca file PDF menggunakan C# dan VB.NET. API dapat digunakan dalam berbagai aplikasi .NET termasuk WinForms, ASP.NET, dan beberapa lainnya. Dalam artikel ini, kami akan menunjukkan cara menggunakan Aspose.PDF untuk .NET API untuk dengan mudah menghasilkan dan membaca file PDF dalam aplikasi .NET.

Bagaimana Membuat File PDF Sederhana

Untuk membuat file PDF menggunakan C#, langkah-langkah berikut dapat digunakan.

  1. Buat objek dari kelas Document
  2. Tambahkan TextFragment ke koleksi Paragraphs dari halaman
  3. Simpan dokumen PDF yang dihasilkan
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_QuickStart();

// Inisialisasi objek dokumen
Document document = new Document();
// Tambah halaman
Page page = document.Pages.Add();
// Tambahkan teks ke halaman baru
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World!"));
// Simpan PDF yang telah diperbarui
document.Save(dataDir + "HelloWorld_out.pdf");

Bagaimana Cara Membuat Dokumen PDF yang Dapat Dicari

Aspose.PDF untuk .NET menyediakan fitur untuk membuat serta memanipulasi dokumen PDF yang ada. Aspose.PDF untuk .NET menyediakan fitur untuk membuat serta memanipulasi dokumen PDF yang sudah ada.

Logika yang ditentukan di bawah ini mengenali teks untuk gambar PDF. Untuk pengenalan, Anda dapat menggunakan dukungan OCR eksternal yang mendukung standar HOCR. Untuk tujuan pengujian, kami telah menggunakan Google tesseract OCR gratis. Oleh karena itu, pertama-tama Anda perlu menginstal Tesseract-OCR di sistem Anda, dan Anda akan memiliki aplikasi konsol tesseract.

Berikut adalah kode lengkap untuk mencapai persyaratan ini:


using System;

namespace Aspose.Pdf.Examples.Advanced.WorkingWithDocuments
{
    class ExampleCreateDocument
    {
        private const string _dataDir = "C:\\Samples";
        public static void CreateSearchableDocuments(string file)
        {
            Aspose.Pdf.Document doc = new Aspose.Pdf.Document(file);
            bool convertResult = false;
            try
            {
                convertResult = doc.Convert(CallBackGetHocr);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            doc.Save(file);
            doc.Dispose();
        }

        static string CallBackGetHocr(System.Drawing.Image img)
        {
            string tmpFile = System.IO.Path.GetTempFileName();
            try
            {
                System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(img);

                bmp.Save(tmpFile, System.Drawing.Imaging.ImageFormat.Bmp);
                string inputFile = string.Concat('"', tmpFile, '"');
                string outputFile = string.Concat('"', tmpFile, '"');
                string arguments = string.Concat(inputFile, " ", outputFile, " -l eng hocr");
                string tesseractProcessName = @"C:\Program Files\Tesseract-OCR\Tesseract.exe";

                System.Diagnostics.ProcessStartInfo psi =
                    new System.Diagnostics.ProcessStartInfo(tesseractProcessName, arguments)
                    {
                        UseShellExecute = true,
                        CreateNoWindow = true,
                        WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
                        WorkingDirectory = System.IO.Path.GetDirectoryName(tesseractProcessName)
                    };

                System.Diagnostics.Process p = new System.Diagnostics.Process
                    {
                        StartInfo = psi
                    };
                p.Start();
                p.WaitForExit();

                System.IO.StreamReader streamReader = new System.IO.StreamReader(tmpFile + ".hocr");
                string text = streamReader.ReadToEnd();
                streamReader.Close();

                return text;
            }
            finally
            {
                if (System.IO.File.Exists(tmpFile))
                    System.IO.File.Delete(tmpFile);
                if (System.IO.File.Exists(tmpFile + ".hocr"))
                    System.IO.File.Delete(tmpFile + ".hocr");
            }
        }
    }
}