將圖像轉換為 PDF
Spire.PDF for .NET 是一款專門對 Word 文檔進行操作的 .NET 類庫。致力于在于幫助開發(fā)人員輕松快捷高效地創(chuàng)建、編輯、轉換和打印 Microsoft Word 文檔,而無需安裝 Microsoft Word。
行號用于在每行文本旁邊顯示 Word 自動計算的行數(shù)。當我們需要參考合同或法律文件等文檔中的特定行時,它非常有用。word中的行號功能允許我們設置起始值、編號間隔、與文本的距離以及行號的編號方式。使用 Spire.Doc,我們可以實現(xiàn)上述所有功能。本文將介紹如何將圖像轉換為 PDF
歡迎加入spire技術交流群:767755948
圖像是一種設備友好的文件格式,可以在各種設備之間輕松共享。然而,在某些情況下,需要更專業(yè)的格式(例如PDF)來代替圖像。在本文中,您將了解如何使用Spire.PDF for .NET在 C# 和 VB.NET 中將圖像轉換為 PDF。
Spire.PDF 沒有提供將圖像轉換為 PDF 的簡單方法。但您可以創(chuàng)建一個新的 PDF 文檔并在特定頁面的指定位置繪制圖像。根據(jù)是否生成與圖像頁面大小相同的 PDF,本主題可以分為以下兩個子主題。
安裝 Spire.PDF for.NET
首先,您需要將包含在 Spire.PDF for.NET 包中的 DLL 文件添加為您的 .NET 項目中的引用。DLL 文件可以從此鏈接下載或通過NuGet安裝。
PM> Install-Package Spire.PDF
將圖像添加到 PDF 的指定位置
以下是使用 Spire.PDF for .NET 添加圖像作為新 PDF 文檔的一部分的步驟。
- 創(chuàng)建一個PdfDocument對象。
- 使用PdfDocument.PageSettings.SetMargins()方法設置頁邊距。
- 使用PdfDocument.Pages.Add()方法添加頁面
- 使用Image.FromFile()方法加載圖像,并獲取圖像的寬度和高度。
- 如果圖像寬度大于頁面(內容區(qū)域)寬度,請調整圖像大小以使其適合頁面寬度。
- 基于縮放圖像或原始圖像創(chuàng)建PdfImage對象。
- 使用PdfPageBase.Canvas.DrawImage()方法在第一頁 (0, 0) 處繪制 PdfImage 對象。
- 使用PdfDocument.SaveToFile()方法將文檔保存為 PDF 文件。
【C#】
using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; namespace AddImageToPdf { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Set the margins doc.PageSettings.SetMargins(20); //Add a page PdfPageBase page = doc.Pages.Add(); //Load an image Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\announcement.jpg"); //Get the image width and height float width = image.PhysicalDimension.Width; float height = image.PhysicalDimension.Height; //Declare a PdfImage variable PdfImage pdfImage; //If the image width is larger than page width if (width > page.Canvas.ClientSize.Width) { //Resize the image to make it to fit to the page width float widthFitRate = width / page.Canvas.ClientSize.Width; Size size = new Size((int)(width / widthFitRate), (int)(height / widthFitRate)); Bitmap scaledImage = new Bitmap(image, size); //Load the scaled image to the PdfImage object pdfImage = PdfImage.FromImage(scaledImage); } else { //Load the original image to the PdfImage object pdfImage = PdfImage.FromImage(image); } //Draw image at (0, 0) page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height); //Save to file doc.SaveToFile("AddImage.pdf"); } } }【VB.NET】
Imports System.Drawing Imports Spire.Pdf Imports Spire.Pdf.Graphics Namespace AddImageToPdf Class Program Shared Sub Main(ByVal args() As String) 'Create a PdfDocument object Dim doc As PdfDocument = New PdfDocument() 'Set the margins doc.PageSettings.SetMargins(20) 'Add a page Dim page As PdfPageBase = doc.Pages.Add() 'Load an image Dim image As Image = Image.FromFile("C:\Users\Administrator\Desktop\announcement.jpg") 'Get the image width and height Dim width As single = image.PhysicalDimension.Width Dim height As single = image.PhysicalDimension.Height 'Declare a PdfImage variable Dim pdfImage As PdfImage 'If the image width is larger than page width If width > page.Canvas.ClientSize.Width Then 'Resize the image to make it to fit to the page width Dim widthFitRate As single = width / page.Canvas.ClientSize.Width Dim size As Size = New Size(CType((width / widthFitRate),(Integer)(height / widthFitRate), Integer)) Dim scaledImage As Bitmap = New Bitmap(image,size) 'Load the scaled image to the PdfImage object pdfImage = PdfImage.FromImage(scaledImage) Else 'Load the original image to the PdfImage object pdfImage = PdfImage.FromImage(image) End If 'Draw image at (0, 0) page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height) 'Save to file doc.SaveToFile("AddImage.pdf") End Sub End Class End Namespace
將圖像轉換為具有相同寬度和高度的 PDF
以下是使用 Spire.PDF for .NET 將圖像轉換為與圖像具有相同頁面寬度和高度的 PDF 的步驟。
- 創(chuàng)建一個PdfDocument對象。
- 使用PdfDocument.PageSettings.SetMargins()方法將頁邊距設置為零。
- 使用Image.FromFile()方法加載圖像,并獲取圖像的寬度和高度。
- 使用PdfDocument.Pages.Add()方法根據(jù)圖像的大小將頁面添加到 PDF 。
- 根據(jù)圖像創(chuàng)建一個PdfImage對象。
- 使用PdfPageBase.Canvas.DrawImage()方法從坐標 (0, 0) 在第一頁上繪制 PdfImage 對象。
- 使用PdfDocument.SaveToFile()方法將文檔保存為 PDF 文件。
【C#】
using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; namespace ConvertImageToPdfWithSameSize { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Set the margins to 0 doc.PageSettings.SetMargins(0); //Load an image Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\announcement.jpg"); //Get the image width and height float width = image.PhysicalDimension.Width; float height = image.PhysicalDimension.Height; //Add a page of the same size as the image PdfPageBase page = doc.Pages.Add(new SizeF(width, height)); //Create a PdfImage object based on the image PdfImage pdfImage = PdfImage.FromImage(image); //Draw image at (0, 0) of the page page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height); //Save to file doc.SaveToFile("ConvertPdfWithSameSize.pdf"); } } }【VB.NET】
Imports System.Drawing Imports Spire.Pdf Imports Spire.Pdf.Graphics Namespace ConvertImageToPdfWithSameSize Class Program Shared Sub Main(ByVal args() As String) 'Create a PdfDocument object Dim doc As PdfDocument = New PdfDocument() 'Set the margins to 0 doc.PageSettings.SetMargins(0) 'Load an image Dim image As Image = Image.FromFile("C:\Users\Administrator\Desktop\announcement.jpg") 'Get the image width and height Dim width As single = image.PhysicalDimension.Width Dim height As single = image.PhysicalDimension.Height 'Add a page of the same size as the image Dim page As PdfPageBase = doc.Pages.Add(New SizeF(width,height)) 'Create a PdfImage object based on the image Dim pdfImage As PdfImage = PdfImage.FromImage(image) 'Draw image at (0, 0) of the page page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height) 'Save to file doc.SaveToFile("ConvertPdfWithSameSize.pdf") End Sub End Class End Namespace