Chuyển đổi hình ảnh sang PDF là một kịch bản quan trọng và hữu ích cho các ứng dụng xử lý tệp. Trong bài viết này, chúng ta sẽ học cách chuyển đổi hình ảnh JPG, PNG, TIFF, EMF, WMF và BMP sang chuyển đổi PDF bằng C# hoặc VB.NET. Sau đây là các bước cài đặt và một số trường hợp sử dụng có thể có để chuyển đổi hình ảnh:

C# Image to PDF Converter API - Cài đặt

Chúng tôi sẽ thực hiện chuyển đổi các định dạng hình ảnh này sang PDF bằng Aspose.PDF for .NET API. Bạn có thể tải xuống từ phần Release hoặc qua NuGet Gallery bằng lệnh sau:

Install-Package Aspose.Pdf -Version 20.9.0

Vậy là API đã được cài đặt thành công. Hãy để chúng tôi chuyển sang khám phá các trường hợp sử dụng khác nhau:

Chuyển đổi JPG sang PDF bằng C#

Bạn có thể dễ dàng chuyển đổi ảnh JPG sang PDF theo các bước sau:

  1. Khởi tạo đối tượng của lớp Document
  2. Thêm Trang mới vào tài liệu PDF
  3. Tải hình ảnh JPG và thêm vào đoạn văn
  4. Lưu đầu ra PDF

Đoạn mã bên dưới cho biết cách chuyển đổi Hình ảnh JPG sang PDF bằng C#:

// Tải tệp JPG đầu vào
String path = dataDir + "Aspose.jpg";

// Khởi tạo tài liệu PDF mới
Document doc = new Document();

// Thêm trang trống vào tài liệu trống
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);

// Thêm hình ảnh trên một trang
page.Paragraphs.Add(image);

// Lưu tệp PDF đầu ra
doc.Save(dataDir + "ImagetoPDF.pdf");

Dưới đây là ảnh chụp màn hình chuyển đổi JPG sang PDF:

Hình ảnh sang PDF

Tuy nhiên, trong ảnh chụp màn hình này, bạn có thể nhận thấy rằng hình ảnh được chuyển đổi thành trang PDF nhưng kích thước và lề trang mặc định được áp dụng trong tài liệu PDF đầu ra. Aspose.PDF for .NET API cho phép bạn kiểm soát kích thước và lề của trang giúp bạn tạo tệp PDF có kích thước chính xác giống như kích thước của hình ảnh. Hãy để chúng tôi tiến hành khám phá tính năng này:

Chuyển đổi hình ảnh sang PDF với cùng chiều cao và chiều rộng của trang

Tiếp tục ví dụ này từ trường hợp sử dụng ở trên, vì bạn có thể nhận thấy kích thước trang lớn hơn trong ảnh chụp màn hình ở trên. Hãy để chúng tôi tìm hiểu cách chuyển đổi hình ảnh sang PDF với cùng chiều cao và chiều rộng của trang. Chúng tôi sẽ nhận được kích thước hình ảnh và theo đó đặt kích thước trang của tài liệu PDF theo các bước dưới đây:

  1. Tải tệp hình ảnh đầu vào
  2. Lấy chiều cao và chiều rộng của hình ảnh
  3. Đặt chiều cao, chiều rộng và lề của trang
  4. Lưu tệp PDF đầu ra

Đoạn mã sau cho biết cách chuyển đổi Hình ảnh thành PDF với cùng chiều cao và chiều rộng của trang bằng C#:

// Tải tệp hình ảnh JPG đầu vào
String path = dataDir + "Aspose.jpg";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);

// Đọc chiều cao của hình ảnh đầu vào
int h = srcImage.Height;

// Đọc chiều cao của hình ảnh đầu vào
int w = srcImage.Width;

// Khởi tạo một tài liệu PDF mới
Document doc = new Document();

// Thêm một trang trống
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);

// Đặt kích thước và lề trang
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);

// Lưu tệp PDF đầu ra
doc.Save(dataDir + "ImagetoPDF_HeightWidth.pdf");

Vì vậy, bạn có thể nhận thấy sự khác biệt về kích thước trang đã được tạo bằng đoạn mã được cập nhật:

Cuối cùng, bạn có thể nhận thấy kích thước trang hoàn toàn giống nhau theo kích thước hình ảnh đầu vào và hiện không có thêm lề trang mặc định nào được đặt.

Chuyển đổi PNG sang PDF bằng C#

Định dạng hình ảnh PNG phổ biến vì các tính năng của nó so với hình ảnh JPG. Ví dụ: hình ảnh PNG hỗ trợ độ trong suốt. Đầu tiên, chúng ta hãy chuyển đổi PNG sang PDF với các bước dưới đây:

  1. Tải hình ảnh PNG đầu vào
  2. Đọc giá trị chiều cao và chiều rộng
  3. Tạo tài liệu mới và thêm Trang
  4. Đặt kích thước trang
  5. Lưu tập tin đầu ra

Ngoài ra, đoạn mã dưới đây cho thấy cách chuyển đổi PNG sang PDF bằng C# trong các ứng dụng .NET của bạn:

// Tải tệp PNG đầu vào
String path = dataDir + "Aspose.png";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
int h = srcImage.Height;
int w = srcImage.Width;

// Khởi tạo tài liệu mới
Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);

// Đặt kích thước trang
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);

// Lưu đầu ra PDF
doc.Save(dataDir + "ImagetoPDF.pdf");

Chuyển đổi TIFF sang PDF bằng C#

Hình ảnh TIFF khác với định dạng JPEG, PNG thông thường hoặc các định dạng khác ở chỗ hình ảnh TIFF có thể chứa một số khung hình với các hình ảnh khác nhau. Định dạng tệp Aspose.PDF cũng được hỗ trợ, có thể là hình ảnh TIFF một khung hình hoặc nhiều khung hình. Vì vậy, bạn có thể chuyển đổi hình ảnh TIFF thành PDF trong các ứng dụng .NET của mình. Do đó, chúng tôi sẽ xem xét một ví dụ về chuyển đổi hình ảnh TIFF nhiều trang thành tài liệu PDF nhiều trang với các bước dưới đây:

  1. Khởi tạo một thể hiện của lớp Document
  2. Tải hình ảnh TIFF đầu vào
  3. Nhận FrameDimension của khung
  4. Thêm trang mới cho mỗi khung
  5. Cuối cùng, lưu hình ảnh vào các trang PDF

Ngoài ra, đoạn mã sau cho biết cách chuyển đổi hình ảnh TIFF nhiều trang hoặc nhiều khung thành PDF bằng C#:

// Khởi tạo tài liệu mới
Document pdf = new Document();

//Tải hình ảnh TIFF vào luồng
MemoryStream ms = new MemoryStream();
new FileStream(dataDir + @"Aspose.tiff", FileMode.Open).CopyTo(ms);
Bitmap myimage = new Bitmap(ms);
// Chuyển đổi nhiều trang hoặc nhiều khung TIFF sang PDF
FrameDimension dimension = new FrameDimension(myimage.FrameDimensionsList[0]);
int frameCount = myimage.GetFrameCount(dimension);

// Lặp lại qua từng khung hình
for (int frameIdx = 0; frameIdx <= frameCount - 1; frameIdx++)
{
    Page sec = pdf.Pages.Add();

    myimage.SelectActiveFrame(dimension, frameIdx);

    MemoryStream currentImage = new MemoryStream();
    myimage.Save(currentImage, ImageFormat.Tiff);

    Aspose.Pdf.Image imageht = new Aspose.Pdf.Image();
    imageht.ImageStream = currentImage;
    sec.Paragraphs.Add(imageht);
}

// Lưu tệp PDF đầu ra
pdf.Save(dataDir + "TifftoPDF.pdf");

Chuyển đổi hình ảnh EMF sang PDF bằng C#

Hình ảnh EMF, còn được gọi là Định dạng siêu tệp nâng cao, thực sự là hình ảnh độc lập với thiết bị. Hơn nữa, bạn có thể chuyển đổi EMF sang hình ảnh PDF bằng các bước dưới đây:

  1. Đầu tiên, khởi tạo đối tượng lớp Document
  2. Tải tệp hình ảnh EMF
  3. Thêm hình ảnh EMF đã tải vào Trang
  4. Lưu tài liệu PDF

Ngoài ra, đoạn mã sau cho biết cách chuyển đổi EMF thành PDF bằng C# trong đoạn mã .NET của bạn:

// Khởi tạo tài liệu PDF mới
var doc = new Document();

// Chỉ định đường dẫn của tệp hình ảnh EMF đầu vào
var imageFile = dataDir + "drawing.emf";
var page = doc.Pages.Add(); 
string file = imageFile;
FileStream filestream = new FileStream(file, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(filestream);
long numBytes = new FileInfo(file).Length;
byte[] bytearray = reader.ReadBytes((int)numBytes);
Stream stream = new MemoryStream(bytearray);
var b = new Bitmap(stream);

// Chỉ định thuộc tính kích thước trang
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
page.PageInfo.Width = b.Width;
page.PageInfo.Height = b.Height;
var image = new Aspose.Pdf.Image();
image.File = imageFile;
page.Paragraphs.Add(image);

//Lưu tài liệu PDF đầu ra
doc.Save(dataDir + "EMFtoPDF.pdf");

Chuyển đổi BMP sang PDF bằng C#

Hình ảnh BMP là hình ảnh Bitmap mà bạn có thể chuyển đổi sang PDF bằng Aspose.PDF for .NET API. Do đó, bạn có thể làm theo các bước sau để chuyển đổi hình ảnh BMP:

  1. Khởi tạo một Tài liệu mới
  2. Tải hình ảnh BMP đầu vào
  3. Cuối cùng, lưu tệp PDF đầu ra

Vì vậy, đoạn mã sau thực hiện theo các bước này và chỉ ra cách chuyển đổi BMP sang PDF bằng C#:

Initialize empty PDF document
using (Document pdfDocument = new Document())
{
    pdfDocument.Pages.Add();
    Aspose.Pdf.Image image = new Aspose.Pdf.Image();

    // Tải tệp hình ảnh BMP mẫu
    image.File = dataDir + @"Sample.bmp";
    pdfDocument.Pages[1].Paragraphs.Add(image);

    // Lưu tài liệu PDF đầu ra
    pdfDocument.Save(dataDir + @"BMPtoPDF.pdf");
}

Sự kết luận

Rốt cuộc, chúng tôi đã khám phá chuyển đổi hình ảnh sang PDF từ các khía cạnh khác nhau bằng C#. Các chuyển đổi khác nhau bao gồm chuyển đổi JPG, PNG, TIFF, EMF và BMP sang PDF đã được thảo luận chi tiết. Ngoài ra, chúng tôi đã học cách cải thiện hình ảnh để hiển thị PDF trong khi đặt kích thước và lề trang. Hơn nữa, nếu bạn vẫn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng liên hệ với chúng tôi tại Diễn đàn hỗ trợ miễn phí.

Xem thêm

[Chuyển đổi tệp AI sang PNG, JPG, PSD và PDF bằng C# .NET](https://blog.aspose.com/vi/2020/07/01/convert-ai-to-png-jpg-psd-and-pdf- csharp/)Chuyển hình ảnh sang DOC trong C#Chuyển hình ảnh sang DOCX trong C#
Chuyển đổi JPG sang DOC trong C# .NETChuyển đổi JPG sang DOCX trong C# .NETChuyển đổi PNG sang DOC trong C# .NET
Chuyển đổi PNG sang DOCX trong C# .NETChuyển PPT sang JPG bằng PythonChuyển đổi SVG sang PNG trong Python
Tạo hình thu nhỏ cho Trang trình bày PPT bằng PythonĐiều chỉnh độ tương phản, độ sáng và gama của hình ảnh trong JavaĐiều chỉnh độ tương phản, độ sáng và gama của hình ảnh trong C#
Chuyển đổi hình ảnh JPG sang PNG trong C#Chuyển đổi hình ảnh JPG sang PNG trong JavaChuyển đổi hình ảnh PNG sang JPG trong C#
Chuyển đổi hình ảnh PNG sang JPG trong JavaChuyển đổi từ thành hình ảnh trong PythonTrích xuất hình ảnh từ tài liệu Word bằng C#
Trích xuất hình ảnh từ tài liệu Word trong JavaTrích xuất hình ảnh từ tài liệu Word bằng PythonThay đổi kích thước hình ảnh trong C#
Thay đổi kích thước hình ảnh trong JavaXoay và lật hình ảnh trong C#Xoay và lật hình ảnh trong Java