PDF控件Spire.PDF for .NET【转换】演示:将多个图像转换为单个 PDF

如果您想要将多个图像合并为一个文件以便于分发或存储,将它们转换为单个 PDF 文档是一个很好的解决方案。这一过程不仅节省空间,还确保所有图像都保存在一个文件中,方便共享或传输。在本文中,您将学习如何使用Spire.PDF for .NET 在 C# 和 VB.NET 中将多个图像合并到单个 PDF 文档中

Spire.Doc 是一款专门对 Word 文档进行操作的 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。 

E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式 (qun:767755948)

Spire.PDF for.net下载   Spire.PDF for java下载

安装适用于 .NET 的 Spire.PDF

首先,您需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过NuGet安装。

PM> Install-Package Spire.PDF
使用 C# 和 VB.NET 将多个图像合并为单个 PDF

为了将文件夹中的所有图像转换为 PDF,我们迭代每个图像,向 PDF 添加一个与图像大小相同的新页面,然后将图像绘制到新页面上。以下是详细步骤。

  • 创建一个PdfDocument对象。
  • 使用PdfDocument.PageSettings.SetMargins()方法将页边距设置为零。
  • 获取存储图像的文件夹。
  • 遍历文件夹中的每个图像文件,并获取特定图像的宽度和高度。
  • 使用PdfDocument.Pages.Add()方法将与图像具有相同宽度和高度的新页面添加到 PDF 文档中。
  • 使用PdfPageBase.Canvas.DrawImage()方法在页面上绘制图像。
  • 使用PdfDocument.SaveToFile()方法保存文档。

【C#】

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;namespace ConvertMultipleImagesIntoPdf
{
class Program
{
static void Main(string[] args)
{
//Create a PdfDocument object
PdfDocument doc = new PdfDocument();//Set the page margins to 0
doc.PageSettings.SetMargins(0);//Get the folder where the images are stored
DirectoryInfo folder = new DirectoryInfo(@"C:\Users\Administrator\Desktop\Images");//Iterate through the files in the folder
foreach (FileInfo file in folder.GetFiles())
{
//Load a particular image
Image image = Image.FromFile(file.FullName);//Get the image width and height
float width = image.PhysicalDimension.Width;
float height = image.PhysicalDimension.Height;//Add a page that has 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("CombinaImagesToPdf.pdf");
doc.Dispose();
}
}
}

【VB.NET】

Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.DrawingNamespace ConvertMultipleImagesIntoPdf
Class Program
Shared Sub Main(ByVal args() As String)
'Create a PdfDocument object
Dim doc As PdfDocument = New PdfDocument()'Set the page margins to 0
doc.PageSettings.SetMargins(0)'Get the folder where the images are stored
Dim folder As DirectoryInfo = New DirectoryInfo("C:\Users\Administrator\Desktop\Images")'Iterate through the files in the folder
Dim file As FileInfo
For Each file In folder.GetFiles()
'Load a particular image
Dim image As Image = Image.FromFile(file.FullName)'Get the image width and height
Dim width As single = image.PhysicalDimension.Width
Dim height As single = image.PhysicalDimension.Height'Add a page that has 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)
Next'Save to file
doc.SaveToFile("CombinaImagesToPdf.pdf")
doc.Dispose()
End Sub
End Class
End Namespace

C#/VB.NET:将多个图像转换为单个 PDF

以上便是如何在C#/VB.NET中将多个图像转换为单个 PDF,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/230258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

-bash: docker-compose: 未找到命令

-bash: docker-compose: 未找到命令 我在使用Docker搭建Nacos容器时遇到了这个问题:是没有安装 docker-compose工具 。 docker-compose的用处主要体现在以下几个方面: 快速搭建开发环境:使用docker-compose可以快速搭建起开发环境&#xff0…

一分钟轻松制作AI数字人播报视频

随着人工智能的快速发展,AI数字人播报成为了媒体和信息传播领域的一项创新技术。AI数字人播报是利用人工智能技术创建的一系列短视频,以新闻主播为中心,展示各种场景和情境能够以短视频的形式进行新闻的报道。这种创新的内容形式在社交媒体和…

Java刷题篇——单链表练习题上

206. 反转链表 - 力扣(LeetCode) 1. 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例2 输入:head [1,2] 输出&…

Spring Boot 3 + Vue 3 整合 WebSocket (STOMP协议) 实现广播和点对点实时消息

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

高可用接入层技术演化及集群概述

集群概述 集群的介绍及优势 集群:将多台服务器通过硬件或软件的方式组合起来,完成特定的任务,而这些服务器对外表现为一个整体。集群的优势 高可靠性:利用集群管理软件,当主服务器故障时,备份服务器能够自…

2023年国赛高教杯数学建模D题圈养湖羊的空间利用率解题全过程文档及程序

2023年国赛高教杯数学建模 D题 圈养湖羊的空间利用率 原题再现 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所…

代码随想录算法训练营第五十五天 _ 动态规划_392. 判断子序列、115.不同的子序列。

学习目标: 动态规划五部曲: ① 确定dp[i]的含义 ② 求递推公式 ③ dp数组如何初始化 ④ 确定遍历顺序 ⑤ 打印递归数组 ---- 调试 引用自代码随想录! 60天训练营打卡计划! 学习内容: 392. 判断子序列 这个题目就是 …

消息队列kafka详解:Kafka原理分析总结

一、概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark等都支持与Kafka集成。 Kaf…

SGPIO介紹

什么是SGPIO? Serial General Purpose Input Output (SGPIO) is a method to serialize general purpose IO signals. SGPIO defines the communication between an initiator (e.g. a host bus adapter) and a target (e.g. a backplaneholding disk drives). The …

最小窗口子串算法题——Java解答

题目:最小窗口子串 题目描述: 给你一个字符串 s 和一个字符串 t,返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""。 注意: 对于 t 中重复的字符&#xff…

Axure的交互与情形,事件,动作

交互样式 交互样式是指当用户与原型进行交互时,元素所呈现出的视觉效果。在Axure中,可以通过设置交互样式来调整元素在交互过程中的外观,例如改变颜色、大小、位置等。 交互事件 交互事件是指在用户与原型进行交互时触发的动作。在Axure中&…

一次应急响应记录

背景: 周五晚上,我健身完回到宿舍收到qq消息,原来是安全厂商在扫描资产时,发现一批openssh漏洞如下图: 其实我是一名小白,我的第一反应就是升级openssh版本。但是这里问题又来了,我们内网主机是…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程,希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

基于ssm在线作业管理系统的设计与实现论文

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此学生作业信息的…

Web Worker的快速理解与简单应用

Web Worker 是一种在浏览器环境中运行的脚本它在主线程之外运行,可以在后台执行计算密集型或需要长时间运行的任务,而不会阻塞主线程的执行。Web Worker 通过在独立的线程中执行,可以提高页面的性能和响应性。 实现流程: 主线程&a…

补题与总结:牛客小白月赛83(B~F)

文章目录 写在最前面的复盘B-小天的魔法(贪心 模拟 双指针)C-小天的 Minecraft(概率)D-小天的子序列(预处理 排列组合)E-小天的贪吃蛇(模拟)F-小天的 AB(结论题&#xff…

举个栗子!Tableau 技巧(261):自由切换图表的背景颜色

数据粉反馈了一个有趣的需求:Tableau 图表的背景颜色可以设置多个,然后按需切换么? 我们知道,图表的背景颜色对于可视化分析呈现来说非常重要。大部分情况下,我们会固定使用一种背景色。 如果确实需要切换图表背景颜…

K8s内容器拓扑图工具

1.背景:随着线上容器越来越多,需要一个可视化的方式展示各个容器之间的拓扑图。 2.需求:轻量级,部署方便。 3.部署 helm repo add groundcover https://helm.groundcover.com/ helm repo update helm install caretta --namespa…

代码随想录算法训练营第二十天 | 二叉搜索树

目录 力扣题目 力扣题目记录 654.最大二叉树 617.合并二叉树 用值 用指针 700.二叉搜索树中的搜索 递归 迭代 98.验证二叉搜索树 总结 力扣题目 用时:2h 1、654.最大二叉树 2、617.合并二叉树 3、700.二叉搜索树中的搜索 4、98.验证二叉搜索树 力扣…

JupyterNotebook VS JupyterLab 如果jupyter安装成功,点击jupyterlab即可进入lab环境

简介 JupyterNotebook 是一个款以网页为基础的交互计算环境,可以创建Jupyter的文档,支持多种语言,包括Python, Julia, R等等。一般来说,如果是使用R语言的话,使用Rstudio居多,使用Python的话,使…