图片文件格式可以在日常中大多数设备之间轻松共享。但是,在某些情况下,需要使用更专业的格式(例如 pdf)来替代图片。在本文中,您将学习如何在 c# 和 vb.net 中使用 spire.pdf for .net 将图像转换为 pdf。
spire.pdf 不提供直接将图片转换为 pdf 的方法。但是您可以创建一个新的 pdf 文档并在某个页面的指定位置绘制图片。根据生成的 pdf 页面大小是否与图片大小相等,本文可分为以下两个子主题。
安装 spire.pdf for .net
首先,您需要添加 spire.pdf for .net 包中包含的 dll 文件作为.net项目中的引用。dll 文件可以从此链接下载或通过 安装。
pm> install-package spire.pdf
在指定位置添加图片到 pdf
以下是使用 spire.pdf for .net 将图片添加为新 pdf 文档的主要步骤。
- 创建一个再 pdfdocument 对象。
- 使用 pdfdocument.pagesettings.setmargins() 方法设置页边距。
- 使用 pdfdocument.pages.add() 方法添加页面。
- 使用 image.fromfile() 方法加载图像,并获取图像的宽度和高度。
- 如果图像宽度大于页面(内容区域)宽度,请调整图像大小以使其适合页面宽度。
- 根据缩放后的图像或原始图像创建一个 pdfimage 对象。
- 使用 pdfpagebase.canvas.drawimage() 方法在第一页 (0, 0) 处绘制 pdfimage 对象。
- 使用 pdfdocument.savetofile() 方法将文档保存为 pdf 文件。
- c#
- vb.net
using system.drawing;
using spire.pdf;
using spire.pdf.graphics;
namespace addimagetopdf
{
class program
{
static void main(string[] args)
{
//创建一个pdfdocument对象
pdfdocument doc = new pdfdocument();
//设置页边距
doc.pagesettings.setmargins(20);
//添加页面
pdfpagebase page = doc.pages.add();
//加载图片
image image = image.fromfile(@"c:\users\administrator\desktop\sample.jpg");
//获取图片的高度和宽度
float width = image.physicaldimension.width;
float height = image.physicaldimension.height;
//声明一个 pdfimage 变量
pdfimage pdfimage;
//如果图片宽度大于页面宽度
if (width > page.canvas.clientsize.width)
{
//调整图片大小以适合页面宽度
float widthfitrate = width / page.canvas.clientsize.width;
size size = new size((int)(width / widthfitrate), (int)(height / widthfitrate));
bitmap scaledimage = new bitmap(image, size);
//将缩放后的图片加载到 pdfimage 对象
pdfimage = pdfimage.fromimage(scaledimage);
}
else
{
//将原始图片加载到 pdfimage 对象
pdfimage = pdfimage.fromimage(image);
}
//在 (0, 0) 处绘制图片
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height);
//保存文档
doc.savetofile("addimage.pdf");
}
}
}
imports system.drawing
imports spire.pdf
imports spire.pdf.graphics
namespace addimagetopdf
class program
shared sub main(byval args() as string)
'创建一个pdfdocument对象
dim doc as pdfdocument = new pdfdocument()
'设置页边距
doc.pagesettings.setmargins(20)
'添加页面
dim page as pdfpagebase = doc.pages.add()
'加载图片
dim image as image = image.fromfile("c:\users\administrator\desktop\sample.jpg")
'获取图片的高度和宽度
dim width as single = image.physicaldimension.width
dim height as single = image.physicaldimension.height
'声明一个 pdfimage 变量
dim pdfimage as pdfimage
'如果图片宽度大于页面宽度
if width > page.canvas.clientsize.width then
'调整图片大小以适合页面宽度
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)
'将缩放后的图片加载到 pdfimage 对象
pdfimage = pdfimage.fromimage(scaledimage)
else
'将原始图片加载到 pdfimage 对象
pdfimage = pdfimage.fromimage(image)
end if
'在 (0, 0) 处绘制图片
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height)
'保存文档
doc.savetofile("addimage.pdf")
end sub
end class
end namespace
将图片转换为等高等宽的 pdf
以下是使用 spire.pdf for .net 将图片转换为等高等宽的 pdf 的步骤。
- 创建一个 pdfdocument 对象。
- 使用 pdfdocument.pagesettings.setmargins() 方法将页边距设置为零。
- 使用 image.fromfile() 方法加载图片,并获取图片的宽度和高度。
- 使用 pdfdocument.pages.add() 方法添加与图片同等大小的页面到 pdf。
- 基于图片创建一个 pdfimage 对象。
- 使用 pdfpagebase.canvas.drawimage() 方法从坐标 (0, 0) 在第一页上绘制 pdfimage 对象。
- 使用 pdfdocument.savetofile()方法将文档保存为 pdf 文件。
- c#
- vb.net
using system.drawing;
using spire.pdf;
using spire.pdf.graphics;
namespace convertimagetopdfwithsamesize
{
class program
{
static void main(string[] args)
{
//创建一个pdfdocument对象
pdfdocument doc = new pdfdocument();
//设置页边距为0
doc.pagesettings.setmargins(0);
//加载图片
image image = image.fromfile(@"c:\users\administrator\desktop\sample.jpg");
//获取图片高度和宽度
float width = image.physicaldimension.width;
float height = image.physicaldimension.height;
//添加与图片大小相同的页面
pdfpagebase page = doc.pages.add(new sizef(width, height));
//根据图片创建 pdfimage 对象
pdfimage pdfimage = pdfimage.fromimage(image);
//在页面的 (0, 0) 处绘制图片
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height);
//保存文档
doc.savetofile("convertpdfwithsamesize.pdf");
}
}
}
imports system.drawing
imports spire.pdf
imports spire.pdf.graphics
namespace convertimagetopdfwithsamesize
class program
shared sub main(byval args() as string)
'创建一个pdfdocument对象
dim doc as pdfdocument = new pdfdocument()
'设置页边距为0
doc.pagesettings.setmargins(0)
'加载图片
dim image as image = image.fromfile("c:\users\administrator\desktop\sample.jpg")
'获取图片高度和宽度
dim width as single = image.physicaldimension.width
dim height as single = image.physicaldimension.height
'添加与图片大小相同的页面
dim page as pdfpagebase = doc.pages.add(new sizef(width,height))
'根据图片创建 pdfimage 对象
dim pdfimage as pdfimage = pdfimage.fromimage(image)
'在页面的 (0, 0) 处绘制图片
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height)
'保存文档
doc.savetofile("convertpdfwithsamesize.pdf")
end sub
end class
end namespace
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。 获取有效期 30 天的临时许可证。